2024-12-29 00:34:39 +01:00
|
|
|
# Neovim configuration for Nix
|
|
|
|
{
|
2025-01-12 17:38:51 +01:00
|
|
|
catppuccin.nvim.enable = true;
|
2024-12-29 21:49:16 +01:00
|
|
|
|
2024-12-29 00:34:39 +01:00
|
|
|
programs.nixvim = {
|
|
|
|
enable = true;
|
|
|
|
clipboard.providers.wl-copy.enable = true;
|
2025-01-12 17:38:51 +01:00
|
|
|
colorschemes.catppuccin.enable = true;
|
|
|
|
defaultEditor = true;
|
|
|
|
vimdiffAlias = true; # Alias vimdiff to nvim -d
|
2024-12-29 00:34:39 +01:00
|
|
|
|
|
|
|
opts = {
|
|
|
|
number = true; # Show line numbers
|
|
|
|
relativenumber = true; # Show relative line numbers
|
|
|
|
|
|
|
|
shiftwidth = 2; # Tab width should be 2
|
|
|
|
};
|
|
|
|
|
|
|
|
plugins = {
|
2025-01-12 17:38:51 +01:00
|
|
|
bufferline.enable = false;
|
2024-12-29 00:34:39 +01:00
|
|
|
|
|
|
|
# Formatters
|
|
|
|
conform-nvim = {
|
|
|
|
enable = true;
|
|
|
|
# TODO use nix fmt on save
|
|
|
|
settings = { };
|
|
|
|
};
|
|
|
|
|
|
|
|
lsp = {
|
|
|
|
enable = true;
|
|
|
|
servers = {
|
|
|
|
nixd.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
lualine.enable = true;
|
|
|
|
luasnip.enable = true;
|
|
|
|
|
|
|
|
# Completions
|
|
|
|
cmp = {
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
autoEnableSources = true;
|
|
|
|
|
|
|
|
# TODO complete on <tab>
|
|
|
|
settings = {
|
|
|
|
sources = [
|
|
|
|
{ name = "nvim-lsp"; }
|
|
|
|
{ name = "path"; }
|
|
|
|
{ name = "buffer"; }
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
treesitter.enable = true;
|
|
|
|
web-devicons.enable = true;
|
|
|
|
};
|
2025-01-12 17:38:51 +01:00
|
|
|
|
|
|
|
extraConfigLua = ''
|
|
|
|
-- Translucent background
|
|
|
|
vim.cmd [[
|
|
|
|
highlight Normal guibg=none
|
|
|
|
highlight NonText guibg=none
|
|
|
|
highlight Normal ctermbg=none
|
|
|
|
highlight NonText ctermbg=none
|
|
|
|
]]
|
|
|
|
'';
|
2024-12-29 00:34:39 +01:00
|
|
|
};
|
|
|
|
}
|