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 = false;
23 vimAlias = true;
24 withPython3 = true;
25 extraPackages = with pkgs; [
26 gotools
27 gopls
28 go
29 nodePackages.vscode-langservers-extracted
30 sumneko-lua-language-server
31 ];
32 extraConfig = ''
33 runtime _init.lua
34 '';
35 plugins = with pkgs.vimPlugins; [
36 packer-nvim
37
38 nvim-cmp
39 cmp-buffer
40 cmp_luasnip
41 cmp-nvim-lsp
42 cmp-treesitter
43 cmp-path
44
45
46 nvim-lspconfig
47 (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars))
48 luasnip
49 playground
50 vim-surround
51 targets-vim
52 vim-gitgutter
53 vim-rsi
54 nvim-treesitter-textobjects
55 conflict-marker-vim
56 tabout
57 vim-jsonnet
58 vim-pencil
59 ];
60 };
61}