59 lines
1.0 KiB
Nix
59 lines
1.0 KiB
Nix
|
# Neovim configuration for Nix
|
||
|
{ ... }:
|
||
|
|
||
|
{
|
||
|
programs.nixvim = {
|
||
|
enable = true;
|
||
|
|
||
|
clipboard.providers.wl-copy.enable = true;
|
||
|
|
||
|
opts = {
|
||
|
number = true; # Show line numbers
|
||
|
relativenumber = true; # Show relative line numbers
|
||
|
|
||
|
shiftwidth = 2; # Tab width should be 2
|
||
|
};
|
||
|
|
||
|
plugins = {
|
||
|
bufferline.enable = true;
|
||
|
|
||
|
# 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;
|
||
|
};
|
||
|
};
|
||
|
}
|