nix/programs/neovim.nix (view raw)
1{ config
2, pkgs
3, self
4, lib
5, ...
6}:
7
8let
9 tabout = pkgs.vimUtils.buildVimPlugin {
10 name = "tabout.nvim";
11 src = pkgs.fetchFromGitHub {
12 owner = "abecodes";
13 repo = "tabout.nvim";
14 rev = "be655cc7ce0f5d6d24eeaf8b36e82693fd2facca";
15 sha256 = "sha256-wB9HIS0HW1DExgQ/is8/ejpH9FVYfH4UpS9HA6pgYK4=";
16 };
17 };
18in
19{
20 programs.neovim = {
21 enable = true;
22 withNodeJs = true;
23 vimAlias = true;
24 withPython3 = true;
25 extraPackages = with pkgs; [
26 gotools
27 gopls
28 go
29 nodePackages.vscode-langservers-extracted
30 nodePackages.typescript-language-server
31 nodePackages.typescript
32 nodePackages.eslint
33 sumneko-lua-language-server
34 ];
35 extraConfig = ''
36 runtime _init.lua
37 '';
38 plugins = with pkgs.vimPlugins; [
39 packer-nvim
40
41 nvim-cmp
42 cmp-buffer
43 cmp_luasnip
44 cmp-nvim-lsp
45 cmp-treesitter
46 cmp-path
47
48
49 nvim-lspconfig
50 (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars))
51 luasnip
52 playground
53 vim-surround
54 targets-vim
55 vim-gitgutter
56 vim-rsi
57 nvim-treesitter-textobjects
58 conflict-marker-vim
59 tabout
60 vim-jsonnet
61 vim-pencil
62 ];
63 };
64}