diff --git a/nix/progs/nvim/config.vim b/nix/progs/nvim/config.vim index 913de40..67533c9 100644 --- a/nix/progs/nvim/config.vim +++ b/nix/progs/nvim/config.vim @@ -1,2 +1,3 @@ lua require 'basic' +lua require 'plugins' lua require 'coc' diff --git a/nix/progs/nvim/default.nix b/nix/progs/nvim/default.nix index 10e6c4a..6179e49 100644 --- a/nix/progs/nvim/default.nix +++ b/nix/progs/nvim/default.nix @@ -12,7 +12,6 @@ let plugins = pkgs.vimPlugins // customPlugins; myVimPlugins = with plugins; [ - coc-nvim # LSP client + autocompletion plugin coc-tsserver # typescript LSP coc-eslint # eslint LSP coc-rust-analyzer # rust LSP @@ -39,11 +38,7 @@ let ]; additionalPackages = lspPackages ++ toolsPackages; - baseConfig = builtins.readFile ./config.vim; - pluginsConfig = builtins.readFile ./plugins.vim; - cocSettings = builtins.toJSON (import ./coc_settings.nix); - - vimConfig = baseConfig + pluginsConfig; + vimConfig = builtins.readFile ./config.vim; in { options.progs.nvim = { @@ -69,11 +64,14 @@ in plugins = myVimPlugins; viAlias = true; vimAlias = true; + coc = { + enable = true; + settings = ./coc_settings.nix; + }; }; xdg.configFile = { "nvim/lua".source = ./lua; - "nvim/coc-settings.json".text = cocSettings; }; home.sessionVariables = mkIf cfg.default { diff --git a/nix/progs/nvim/lua/plugins.lua b/nix/progs/nvim/lua/plugins.lua new file mode 100644 index 0000000..3551ea7 --- /dev/null +++ b/nix/progs/nvim/lua/plugins.lua @@ -0,0 +1,77 @@ +------------------------------------------------------------------------------- +-- +-- NerdTree +-- + +vim.g.NERDTreeDirArrowExpandable = '▸' +vim.g.NERDTreeDirArrowCollapsible = '▾' + +vim.g.NERDTreeMiniamlUI = 1 +vim.g.NERDTreeDirArrows = 1 + +-- Nerdtree git plugin symbols +vim.g.NERDTreeGitStatusIndicatorMapCustom = { + Modified = 'ᵐ', + Staged = 'ˢ', + Untracked = 'ᵘ', + Renamed = 'ʳ', + Unmerged = 'ᶴ', + Deleted = 'ˣ', + Dirty = '˜', + Clean = 'ᵅ', + Unknown = '?', +} + +vim.keymap.set('n', 'nt', ':NERDTreeToggle') +vim.keymap.set('n', 'nf', ':NERDTreeFind') + +------------------------------------------------------------------------------- +-- +-- NeoFormat +-- +vim.g.neoformat_try_node_exe = 1 +vim.g.neoformat_only_msg_on_error = 1 +vim.g.neoformat_enabled_markdown = {"denofmt"} + +local format_augroup = vim.api.nvim_create_augroup('format', {}) +vim.api.nvim_create_autocmd('BufWritePre', { + pattern = '*', + group = spell_check_augroup, + callback = 'try | undojoin | NeoFormat | catch /E790/ | NeoFormat | endtry' +}) + +------------------------------------------------------------------------------- +-- +-- GitGutter +-- +vim.g.gitgutter_sign_priority = 1 +vim.g.gitgutter_set_sign_backgrounds = 0 +vim.g.gitgutter_map_keys = 0 + +vim.keymap.set('n', 'ghp', ':GitGutterPreviewHunk') + + +------------------------------------------------------------------------------- +-- +-- TreeSitter +-- +require'nvim-treesitter.configs'.setup { + -- A list of parser names, or "all" + ensure_installed = { + "typescript", + "tsx", + "rust", + "haskell", + }, + + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + + highlight = { + enable = true, + }, + + indent = { + enable = true, + }, +} diff --git a/nix/progs/nvim/plugins.vim b/nix/progs/nvim/plugins.vim deleted file mode 100644 index 3e4bd3e..0000000 --- a/nix/progs/nvim/plugins.vim +++ /dev/null @@ -1,63 +0,0 @@ -" Nerdtree - -noremap nt :NERDTreeToggle -noremap nf :NERDTreeFind - -let g:NERDTreeDirArrowExpandable = '▸' -let g:NERDTreeDirArrowCollapsible = '▾' - -let g:NERDTreeMiniamlUI = 1 -let g:NERDTreeDirArrows = 1 - -" Nerdtree git plugin symbols -let g:NERDTreeGitStatusIndicatorMapCustom = { - \ "Modified" : "ᵐ", - \ "Staged" : "ˢ", - \ "Untracked" : "ᵘ", - \ "Renamed" : "ʳ", - \ "Unmerged" : "ᶴ", - \ "Deleted" : "ˣ", - \ "Dirty" : "˜", - \ "Clean" : "ᵅ", - \ "Unknown" : "?" - \ } - -" NeoFormat -let g:neoformat_try_node_exe = 1 -let g:neoformat_only_msg_on_error = 1 -let g:neoformat_enabled_markdown = ["denofmt"] -aug fmt - au! - au BufWritePre * try | undojoin | Neoformat | catch /E790/ | Neoformat | endtry -aug END - -" GitGutter -let g:gitgutter_sign_priority = 1 -let g:gitgutter_set_sign_backgrounds = 0 -let g:gitgutter_map_keys = 0 - -nnoremap ghp :GitGutterPreviewHunk - -" TreeSitter -lua << EOF -require'nvim-treesitter.configs'.setup { - -- A list of parser names, or "all" - ensure_installed = { - "typescript", - "tsx", - "rust", - "haskell", - }, - - -- Install parsers synchronously (only applied to `ensure_installed`) - sync_install = false, - - highlight = { - enable = true, - }, - - indent = { - enable = true, - }, -} -EOF