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 tree-sitter-grammars.tree-sitter-bash
29 tree-sitter-grammars.tree-sitter-yaml
30 tree-sitter-grammars.tree-sitter-go
31 tree-sitter-grammars.tree-sitter-make
32 tree-sitter-grammars.tree-sitter-markdown
33 tree-sitter-grammars.tree-sitter-lua
34 tree-sitter-grammars.tree-sitter-html
35 tree-sitter-grammars.tree-sitter-vim
36 tree-sitter-grammars.tree-sitter-nix
37 ];
38 extraConfig = ''
39 runtime _init.lua
40 '';
41 plugins = with pkgs.vimPlugins; [
42 packer-nvim
43
44 nvim-cmp
45 cmp-buffer
46 cmp_luasnip
47 cmp-nvim-lsp
48 cmp-treesitter
49 cmp-path
50
51
52 nvim-lspconfig
53 luasnip
54 playground
55 vim-surround
56 targets-vim
57 vim-gitgutter
58 vim-rsi
59 nvim-treesitter-textobjects
60 conflict-marker-vim
61 vim-jsonnet
62 vim-pencil
63 ];
64 };
65}