2023-11-01 16:27:35 +01:00
|
|
|
{ inputs
|
|
|
|
, lib
|
|
|
|
, config
|
|
|
|
, pkgs
|
|
|
|
, ...
|
2023-10-31 12:20:02 +01:00
|
|
|
}:
|
|
|
|
|
|
|
|
{
|
2023-11-01 16:27:35 +01:00
|
|
|
programs.neovim =
|
|
|
|
let
|
|
|
|
toLua = str: "lua << EOF\n${str}\nEOF\n";
|
|
|
|
toLuaFile = file: "lua << EOF\n${builtins.readFile file}\nEOF\n";
|
|
|
|
in
|
|
|
|
{
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
viAlias = true;
|
|
|
|
vimAlias = true;
|
|
|
|
vimdiffAlias = true;
|
|
|
|
|
|
|
|
extraPackages = with pkgs; [
|
|
|
|
lua-language-server
|
|
|
|
rnix-lsp
|
|
|
|
|
|
|
|
ripgrep
|
|
|
|
wl-clipboard
|
|
|
|
];
|
|
|
|
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
|
|
{
|
|
|
|
plugin = which-key-nvim;
|
|
|
|
config = toLua "require('which-key').setup()";
|
|
|
|
}
|
|
|
|
|
|
|
|
neodev-nvim
|
|
|
|
plenary-nvim
|
|
|
|
|
|
|
|
telescope-nvim
|
|
|
|
telescope-ui-select-nvim
|
|
|
|
|
|
|
|
FTerm-nvim
|
|
|
|
|
|
|
|
neogit
|
|
|
|
|
|
|
|
harpoon
|
|
|
|
|
|
|
|
{
|
|
|
|
plugin = undotree-nvim;
|
|
|
|
config = toLua "require('undotree').setup()";
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
plugin = comment-nvim;
|
|
|
|
config = toLua "require('Comment').setup()";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
plugin = todo-comments-nvim;
|
|
|
|
config = toLua "require('todo-comments').setup()";
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
plugin = neoconf-nvim;
|
|
|
|
config = toLua "require('neoconf').setup()";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
plugin = catppuccin-nvim;
|
|
|
|
config = "colorscheme catppuccin-mocha";
|
|
|
|
}
|
|
|
|
|
|
|
|
cmp-nvim-lsp
|
|
|
|
cmp-nvim-lsp-signature-help
|
|
|
|
cmp-buffer
|
|
|
|
cmp-path
|
|
|
|
cmp-cmdline
|
|
|
|
cmp-git
|
|
|
|
cmp-calc
|
|
|
|
cmp_luasnip
|
|
|
|
luasnip
|
|
|
|
friendly-snippets
|
|
|
|
{
|
|
|
|
plugin = nvim-cmp;
|
|
|
|
config = toLuaFile ./plugin/cmp.lua;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
plugin = nvim-lspconfig;
|
|
|
|
config = toLuaFile ./plugin/lsp.lua;
|
|
|
|
}
|
|
|
|
rust-tools-nvim
|
|
|
|
{
|
|
|
|
plugin = fidget-nvim;
|
|
|
|
config = toLua "require('fidget').setup({})";
|
|
|
|
}
|
|
|
|
|
|
|
|
rainbow-delimiters-nvim
|
|
|
|
|
|
|
|
{
|
|
|
|
plugin = (nvim-treesitter.withPlugins (p: [
|
|
|
|
p.tree-sitter-nix
|
|
|
|
p.tree-sitter-vim
|
|
|
|
p.tree-sitter-bash
|
|
|
|
p.tree-sitter-lua
|
|
|
|
p.tree-sitter-python
|
|
|
|
p.tree-sitter-json
|
|
|
|
p.tree-sitter-yaml
|
|
|
|
p.tree-sitter-rust
|
|
|
|
p.tree-sitter-javascript
|
|
|
|
p.tree-sitter-typescript
|
|
|
|
p.tree-sitter-c
|
|
|
|
p.tree-sitter-cpp
|
|
|
|
]));
|
|
|
|
config = toLuaFile ./plugin/treesitter.lua;
|
|
|
|
}
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
extraLuaConfig = ''
|
|
|
|
${builtins.readFile ./options.lua}
|
|
|
|
${builtins.readFile ./keymaps.lua}
|
|
|
|
'';
|
|
|
|
|
|
|
|
};
|
2023-10-31 12:20:02 +01:00
|
|
|
}
|