dotfiles-nix/nix/users/base/neovim/default.nix
2023-10-18 12:22:36 +02:00

80 lines
1.5 KiB
Nix

{ inputs, pkgs, ... }:
{
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;
defaultEditor = true;
plugins = with pkgs.vimPlugins; [
# Colorschemes
{
plugin = catppuccin-nvim;
config = toLuaFile ./plugins/colorschemes/catppuccin.lua;
}
# LSP
{
plugin = nvim-lspconfig;
config = toLuaFile ./plugins/lsp.lua;
}
cmp-buffer
cmp-cmdline
cmp-nvim-lsp
cmp-nvim-lua
cmp-path
cmp_luasnip
luasnip
nvim-cmp
# The rest
{
plugin = indent-blankline-nvim;
config = toLuaFile ./plugins/indent.lua;
}
# HTML
# TODO: enable this when treesitter is installed
# {
# plugin = nvim-ts-autotag;
# config = toLuaFile ./plugins/autotag.lua;
# }
{
plugin = nvim-colorizer-lua;
config = toLuaFile ./plugins/colorizer.lua;
}
# GIT
{
plugin = gitsigns-nvim;
config = toLuaFile ./plugins/gitsigns.lua;
}
vim-fugitive
];
extraLuaConfig = ''
${builtins.readFile ./core/colors.lua}
${builtins.readFile ./core/options.lua}
'';
extraPackages = with pkgs; [
lua-language-server
nodePackages_latest.vscode-langservers-extracted
nixd
];
};
}