Files
cnix/home/extra/neovim/default.nix
2024-07-14 18:22:26 +02:00

63 lines
1.3 KiB
Nix

{pkgs, ...}: let
treesitterWithGrammars = pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [
p.bash
p.comment
p.css
p.dockerfile
p.fish
p.gitattributes
p.gitignore
p.go
p.gomod
p.gowork
p.hcl
p.javascript
p.jq
p.json5
p.json
p.lua
p.make
p.markdown
p.nix
p.python
p.rust
p.toml
p.typescript
p.vue
p.yaml
]);
treesitter-parsers = pkgs.symlinkJoin {
name = "treesitter-parsers";
paths = treesitterWithGrammars.dependencies;
};
in {
programs.neovim = {
enable = true;
defaultEditor = true;
package = pkgs.neovim-unwrapped;
vimAlias = true;
coc.enable = false;
withNodeJs = true;
#package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default;
plugins = [
treesitterWithGrammars
];
};
home.file."./.config/nvim/" = {
source = ./nvim;
recursive = true;
};
home.file."./.config/nvim/lua/cnst/init.lua".text = ''
require("cnst.set")
require("cnst.remap")
vim.opt.runtimepath:append("${treesitter-parsers}")
'';
# Treesitter is configured as a locally developed module in lazy.nvim
# we hardcode a symlink here so that we can refer to it in our lazy config
home.file."./.local/share/nvim/nix/nvim-treesitter/" = {
recursive = true;
source = treesitterWithGrammars;
};
}