105 lines
2.3 KiB
Nix
105 lines
2.3 KiB
Nix
|
{
|
||
|
config,
|
||
|
lib,
|
||
|
...
|
||
|
}: {
|
||
|
options = {
|
||
|
crony.neovim.enable = lib.mkEnableOption "Enable neovim and apply a good config.";
|
||
|
};
|
||
|
|
||
|
config = lib.mkIf config.crony.neovim.enable {
|
||
|
# Setup neovim
|
||
|
programs.nvf = {
|
||
|
enable = true;
|
||
|
settings = {
|
||
|
vim = {
|
||
|
# Enable the aliases, I love them
|
||
|
viAlias = true;
|
||
|
vimAlias = true;
|
||
|
|
||
|
# Changing some basic settings
|
||
|
options = {
|
||
|
tabstop = 2;
|
||
|
shiftwidth = 2;
|
||
|
updatetime = 50;
|
||
|
};
|
||
|
|
||
|
# Enable the undo file
|
||
|
undoFile = {
|
||
|
enable = true;
|
||
|
};
|
||
|
|
||
|
binds = {
|
||
|
# Setup whichkey
|
||
|
whichKey.enable = true;
|
||
|
};
|
||
|
|
||
|
# Enable gitsings
|
||
|
git.gitsigns = {
|
||
|
enable = true;
|
||
|
};
|
||
|
|
||
|
# Enable lsp
|
||
|
lsp = {
|
||
|
enable = true;
|
||
|
lspkind.enable = true;
|
||
|
};
|
||
|
|
||
|
# Setup the theme
|
||
|
theme = {
|
||
|
enable = true;
|
||
|
name = "gruvbox";
|
||
|
style = "dark";
|
||
|
};
|
||
|
|
||
|
# Setup lsp's and languages
|
||
|
languages = {
|
||
|
enableLSP = true;
|
||
|
enableTreesitter = true;
|
||
|
enableFormat = true;
|
||
|
|
||
|
nix = {
|
||
|
enable = true;
|
||
|
};
|
||
|
bash.enable = true;
|
||
|
go.enable = true;
|
||
|
markdown = {
|
||
|
enable = true;
|
||
|
extensions.render-markdown-nvim.enable = true;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
# Enable mini modules ( mini is amazing )
|
||
|
mini = {
|
||
|
statusline.enable = true;
|
||
|
comment.enable = true;
|
||
|
notify.enable = true;
|
||
|
surround.enable = true;
|
||
|
diff.enable = true;
|
||
|
pairs.enable = true;
|
||
|
indentscope.enable = true;
|
||
|
bufremove.enable = true;
|
||
|
git.enable = true;
|
||
|
};
|
||
|
|
||
|
# Use telescope
|
||
|
telescope.enable = true;
|
||
|
|
||
|
# Enable autocompletion
|
||
|
autocomplete.nvim-cmp = {
|
||
|
enable = true;
|
||
|
|
||
|
mappings = {
|
||
|
close = null;
|
||
|
complete = null;
|
||
|
confirm = "<C-l>";
|
||
|
next = "<C-j>";
|
||
|
previous = "<C-k>";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|