diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/bash/default.nix b/bash/default.nix index 81e59f1..2ff59d2 100644 --- a/bash/default.nix +++ b/bash/default.nix @@ -8,6 +8,7 @@ }; profileExtra = '' set -o vi + bind "set show-mode-in-prompt on" [ ! -z $TMUX ] || tmux a || tmux neofetch ''; diff --git a/iterm2/config/com.googlecode.iterm2.plist b/iterm2/config/com.googlecode.iterm2.plist index d84d1cd..a12cb78 100644 --- a/iterm2/config/com.googlecode.iterm2.plist +++ b/iterm2/config/com.googlecode.iterm2.plist @@ -1392,7 +1392,7 @@ Minimum Contrast 0.4030938720703125 Mouse Reporting - + Name Default Non Ascii Font diff --git a/nvim/config/lua/base.lua b/nvim/config/lua/base.lua index 380d813..56e3d65 100644 --- a/nvim/config/lua/base.lua +++ b/nvim/config/lua/base.lua @@ -9,6 +9,9 @@ vim.cmd('colorscheme nord') vim.keymap.set("n", "", "", {silent = true}) vim.g.mapleader = " " +-- Set Timeout +vim.opt.timeoutlen = 250 + -- Disable NetRW vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 diff --git a/nvim/config/lua/init.lua b/nvim/config/lua/init.lua index 656738b..7bff725 100644 --- a/nvim/config/lua/init.lua +++ b/nvim/config/lua/init.lua @@ -7,8 +7,11 @@ require('leap-config') require('lsp-config') require('lsp-lines-config') require('lualine-config') -require('null-ls-config') require('noice-config') +require('null-ls-config') require('numb-config') +require('silicon-config') require('telescope-config') +require('toggleterm-config') require('ts-config') +require('which-key-config') diff --git a/nvim/config/lua/lsp-config.lua b/nvim/config/lua/lsp-config.lua index b2dd5a7..00c3fc8 100644 --- a/nvim/config/lua/lsp-config.lua +++ b/nvim/config/lua/lsp-config.lua @@ -2,25 +2,16 @@ local nix_vars = require("nix-vars") local nvim_lsp = require('lspconfig') local on_attach = function(client, bufnr) - -- Mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions local bufopts = {noremap = true, silent = true, buffer = bufnr} - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) - vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, - bufopts) - vim.keymap.set('n', 'wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, bufopts) - vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) - vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) - vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) - vim.keymap.set('n', 'f', + vim.keymap.set('n', 'lD', vim.lsp.buf.declaration, bufopts) + vim.keymap.set('n', 'ld', vim.lsp.buf.definition, bufopts) + vim.keymap.set('n', 'li', vim.lsp.buf.implementation, bufopts) + vim.keymap.set('n', 'ln', vim.lsp.buf.rename, bufopts) + vim.keymap.set('n', 'lr', vim.lsp.buf.references, bufopts) + vim.keymap.set('n', 'lt', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', 'lf', function() vim.lsp.buf.format {async = true} end, bufopts) end diff --git a/nvim/config/lua/silicon-config.lua b/nvim/config/lua/silicon-config.lua new file mode 100644 index 0000000..82a442f --- /dev/null +++ b/nvim/config/lua/silicon-config.lua @@ -0,0 +1,10 @@ +local silicon = require('silicon') +silicon.setup({}) + +vim.keymap.set('v', 'ss', function() silicon.visualise_api({}) end) +vim.keymap.set('v', 'sb', + function() silicon.visualise_api({show_buf = true}) end) +vim.keymap.set('n', 'sv', + function() silicon.visualise_api({visible = true}) end) +vim.keymap.set('n', 'sb', + function() silicon.visualise_api({show_buf = true}) end) diff --git a/nvim/config/lua/toggleterm-config.lua b/nvim/config/lua/toggleterm-config.lua new file mode 100644 index 0000000..91bc05e --- /dev/null +++ b/nvim/config/lua/toggleterm-config.lua @@ -0,0 +1,11 @@ +require("toggleterm").setup({open_mapping = [[]]}) + +-- Duplicate C-w & Esc Behavior +function _G.set_terminal_keymaps() + local opts = {buffer = 0} + vim.opt.signcolumn = "no" + vim.keymap.set('t', '', [[]], opts) + vim.keymap.set('t', '', [[]], opts) +end + +vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') diff --git a/nvim/config/lua/which-key-config.lua b/nvim/config/lua/which-key-config.lua new file mode 100644 index 0000000..54f1699 --- /dev/null +++ b/nvim/config/lua/which-key-config.lua @@ -0,0 +1,36 @@ +local wk = require("which-key") + +wk.setup({}) + +wk.register({ + K = {"Definition Hover"}, + [""] = {"Signature Help"}, + [""] = { + q = {"Show Diagnostics"}, + e = {"Show Line Diagnostics"}, + f = { + name = "Find - Telescope", + f = {"Telescope find_files", "Find File"}, + g = {"Telescope live_grep", "Live Grep"}, + b = {"Telescope buffers", "Find Buffer"}, + h = {"Telescope help_tags", "Help Tags"} + }, + l = { + name = "LSP", + D = {"Declaration"}, + d = {"Definition"}, + f = {"Format"}, + i = {"Implementation"}, + n = {"Rename"}, + r = {"References"}, + t = {"Type Definition"} + }, + s = { + name = "Screenshot", + mode = {'v', 'n'}, + b = {"Buffer Screenshot", mode = {'v', 'n'}}, + s = {"Selected Screenshot", mode = 'v'}, + v = {"Visual Screenshot", mode = 'n'} + } + } +}) diff --git a/nvim/default.nix b/nvim/default.nix index 25e54da..ac7fa7d 100644 --- a/nvim/default.nix +++ b/nvim/default.nix @@ -39,14 +39,16 @@ in nvim-autopairs # Automatically Close Pairs (),[],{} telescope-fzf-native-nvim # Faster Telescope telescope-nvim # Fuzzy Finder + toggleterm-nvim # Terminal Helper vim-nix # Nix Helpers + which-key-nvim # Shortcut Helper # ------------------ # --- Theme / UI --- # ------------------ - nord-nvim # Theme lualine-nvim # Bottom Line noice-nvim # UI Tweaks + nord-nvim # Theme nvim-web-devicons # Dev Icons # ------------------ @@ -63,6 +65,23 @@ in ) ) + # ------------------ + # ----- Silicon ---- + # ------------------ + ( + pkgs.vimUtils.buildVimPluginFrom2Nix { + pname = "silicon.lua"; + version = "2022-12-03"; + src = pkgs.fetchFromGitHub { + owner = "0oAstro"; + repo = "silicon.lua"; + rev = "8db5682c9c13d6de584551c4b2b9982709f05610"; + sha256 = "0148l59wrffmfw4xya0l1ys277hgrm41wspgp0ns2dddsr11mwav"; + }; + meta.homepage = "https://github.com/0oAstro/silicon.lua/"; + } + ) + ]; extraPackages = with pkgs; [ @@ -83,6 +102,9 @@ in nodePackages.prettier sqlfluff + # Silicon + silicon + ]; extraConfig = ":luafile ~/.config/nvim/lua/init.lua"; diff --git a/readline/default.nix b/readline/default.nix index a7be5bf..e3f2580 100644 --- a/readline/default.nix +++ b/readline/default.nix @@ -4,12 +4,9 @@ programs.readline = { enable = true; extraConfig = '' - # Show Prompt - set show-mode-in-prompt on - # Approximate VIM Dracula Colors - set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 INS \1\e[38;5;231;48;5;238m\2\1\e[0m\2 - set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 CMD \1\e[38;5;148;48;5;238m\2\1\e[0m\2 + set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 I \1\e[38;5;231;48;5;238m\2\1\e[0m\2 + set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 C \1\e[38;5;148;48;5;238m\2\1\e[0m\2 ''; };