dotfiles-nix/nix/users/base/neovim/default.nix

67 lines
1.2 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;
}
{
plugin = nvim-ts-autotag;
config = toLuaFile ./plugins/autotag.lua;
}
{
plugin = nvim-colorizer-lua;
config = toLuaFile ./plugins/colorizer.lua;
}
];
extraLuaConfig = ''
vim.cmd("runtime! core/*.lua")
'';
extraPackages = with pkgs; [
lua-language-server
nodePackages_latest.vscode-langservers-extracted
nixd
];
};
}