nix/programs/neovim.nix (view raw)
1{ config
2, pkgs
3, self
4, lib
5, ...
6}:
7
8{
9 programs.neovim = {
10 enable = true;
11 withNodeJs = false;
12 vimAlias = true;
13 withPython3 = true;
14 extraPackages = with pkgs; [
15 nixpkgs-fmt
16 gotools
17 gopls
18 go
19 cargo
20 rust-analyzer
21 rustc
22 nodePackages.vscode-langservers-extracted
23 nodePackages.typescript-language-server
24 nodePackages.typescript
25 nodePackages.eslint
26 sumneko-lua-language-server
27 ];
28 extraConfig = ''
29 runtime _init.lua
30 '';
31 plugins = with pkgs.vimPlugins; [
32 packer-nvim
33
34 nvim-cmp
35 cmp-buffer
36 cmp_luasnip
37 cmp-nvim-lsp
38 cmp-treesitter
39 cmp-path
40
41
42 nvim-lspconfig
43 (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars))
44 luasnip
45 playground
46 vim-surround
47 targets-vim
48 vim-gitgutter
49 vim-rsi
50 nvim-treesitter-textobjects
51 conflict-marker-vim
52 vim-jsonnet
53 vim-pencil
54 ];
55 };
56}