2024-10-27 11:23:20 +00:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: let
|
|
|
|
cfg = config.pim.neovim;
|
|
|
|
in {
|
|
|
|
options.pim.neovim.enable = lib.mkEnableOption "neovim";
|
|
|
|
|
|
|
|
config = lib.mkIf cfg.enable {
|
2024-12-17 19:43:10 +00:00
|
|
|
# Disable Stylix styling of Neovim,
|
|
|
|
# because we have a plugin for that.
|
|
|
|
stylix.targets.neovim.enable = false;
|
|
|
|
|
2023-10-08 14:57:57 +00:00
|
|
|
programs.neovim = {
|
|
|
|
enable = true;
|
|
|
|
viAlias = true;
|
|
|
|
vimAlias = true;
|
|
|
|
vimdiffAlias = true;
|
|
|
|
defaultEditor = true;
|
2023-10-30 20:37:23 +00:00
|
|
|
extraLuaConfig = builtins.readFile ./core.lua;
|
2023-10-13 09:13:15 +00:00
|
|
|
|
|
|
|
extraPackages = with pkgs; [
|
|
|
|
nil
|
2024-11-30 12:14:46 +00:00
|
|
|
pyright
|
2023-10-13 09:13:15 +00:00
|
|
|
gopls
|
|
|
|
terraform-ls
|
2024-06-04 19:21:38 +00:00
|
|
|
nixfmt-classic
|
2023-11-30 15:59:49 +00:00
|
|
|
stylua
|
|
|
|
black
|
2023-12-16 15:12:13 +00:00
|
|
|
nixpkgs-fmt
|
2023-10-13 09:13:15 +00:00
|
|
|
];
|
|
|
|
|
2023-10-08 14:57:57 +00:00
|
|
|
plugins = with pkgs.vimPlugins; [
|
2023-10-30 20:37:23 +00:00
|
|
|
{
|
|
|
|
plugin = nvim-lspconfig;
|
|
|
|
type = "lua";
|
|
|
|
config = builtins.readFile ./lspconfig.lua;
|
|
|
|
}
|
2023-10-08 14:57:57 +00:00
|
|
|
gruvbox-nvim
|
2023-10-30 20:37:23 +00:00
|
|
|
{
|
|
|
|
plugin = leap-nvim;
|
|
|
|
type = "lua";
|
|
|
|
config = builtins.readFile ./leap.lua;
|
|
|
|
}
|
|
|
|
{
|
|
|
|
plugin = telescope-nvim;
|
|
|
|
type = "lua";
|
|
|
|
config = builtins.readFile ./telescope.lua;
|
|
|
|
}
|
|
|
|
{
|
|
|
|
plugin = vim-commentary;
|
|
|
|
type = "lua";
|
2023-11-07 12:54:14 +00:00
|
|
|
config = builtins.readFile ./commentary.lua;
|
2023-10-30 20:37:23 +00:00
|
|
|
}
|
2023-10-08 14:57:57 +00:00
|
|
|
vim-sleuth
|
2023-10-30 20:37:23 +00:00
|
|
|
{
|
|
|
|
plugin = gitsigns-nvim;
|
|
|
|
type = "lua";
|
2023-11-10 10:33:41 +00:00
|
|
|
config = ''require("gitsigns").setup()'';
|
2023-10-30 20:37:23 +00:00
|
|
|
}
|
|
|
|
{
|
|
|
|
plugin = nvim-cmp;
|
|
|
|
type = "lua";
|
|
|
|
config = builtins.readFile ./cmp.lua;
|
|
|
|
}
|
2023-10-08 14:57:57 +00:00
|
|
|
cmp-nvim-lsp
|
|
|
|
friendly-snippets
|
|
|
|
neodev-nvim
|
2023-10-13 10:26:56 +00:00
|
|
|
luasnip
|
|
|
|
cmp_luasnip
|
2023-10-30 20:37:23 +00:00
|
|
|
{
|
|
|
|
plugin = nvim-treesitter.withAllGrammars;
|
|
|
|
type = "lua";
|
|
|
|
config = builtins.readFile ./treesitter.lua;
|
|
|
|
}
|
|
|
|
{
|
|
|
|
plugin = bufferline-nvim;
|
|
|
|
type = "lua";
|
|
|
|
config = builtins.readFile ./bufferline.lua;
|
|
|
|
}
|
2023-10-23 17:52:38 +00:00
|
|
|
nvim-web-devicons
|
2023-11-10 10:20:35 +00:00
|
|
|
lsp-format-nvim
|
2023-11-30 15:59:49 +00:00
|
|
|
{
|
2024-03-04 20:20:48 +00:00
|
|
|
plugin = pkgs.vimPlugins.none-ls-nvim;
|
2023-11-30 15:59:49 +00:00
|
|
|
type = "lua";
|
|
|
|
config = builtins.readFile ./none-ls.lua;
|
|
|
|
}
|
2023-10-08 14:57:57 +00:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.git.extraConfig.core.editor = "nvim";
|
|
|
|
};
|
|
|
|
}
|