nixconf/modules/home/core/neovim.nix

94 lines
2.2 KiB
Nix

{
pkgs,
...
}:
{
config = {
programs.neovim = {
enable = true;
withNodeJs = true;
withPython3 = true;
defaultEditor = true;
vimAlias = true;
viAlias = true;
vimdiffAlias = true;
extraPackages = with pkgs; [
biome nil rust-analyzer clang-tools
ripgrep universal-ctags nixpkgs-fmt
] ++ (with python3Packages; [
python-lsp-server python-lsp-black
]);
plugins = with pkgs.vimPlugins; [
vim-fish
vim-nix
telescope-nvim
{
plugin = telescope-zoxide;
type = "lua";
config = "require('telescope').load_extension('zoxide')";
}
{
plugin = lualine-nvim;
type = "lua";
config = ''
require('lualine').setup {
options = {
theme = 'material',
globalstatus = true,
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {{'filename', path = 3}},
lualine_x = {'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
},
}
'';
}
{
plugin = nvim-notify;
type = "lua";
config = "vim.notify = require('notify')";
}
nvim-lspconfig
{
plugin = which-key-nvim;
type = "lua";
config = ''
require('which-key').setup({
triggers = { "<leader>", "g", "<c-r>" }
})
'';
}
committia
fugitive
{
plugin = gitsigns-nvim;
type = "lua";
config = "require('gitsigns').setup()";
}
gitlinker-nvim
nvim-web-devicons
{
plugin = neo-tree-nvim;
config = "let g:neo_tree_remove_legacy_commands = 1";
}
{
plugin = rainbow;
config = "let g:rainbow_active = 1";
}
{
plugin = tokyonight-nvim;
config = "colorscheme tokyonight-moon";
}
];
extraLuaConfig = (builtins.readFile ./nvim.lua);
};
};
}