nix_files/commons/programs/neovim.nix
2025-02-27 21:10:46 +01:00

101 lines
2.2 KiB
Nix

{ inputs, pkgs, ... }: {
imports = [ inputs.nvf.homeManagerModules.default ];
programs.nvf = {
enable = true;
settings = {
vim = {
useSystemClipboard = true;
lineNumberMode = "number";
theme = {
enable = true;
name = "dracula";
};
options = {
# 2-space tabstop
tabstop = 2;
softtabstop = 2;
shiftwidth = 2;
expandtab = true;
autoindent = true;
smartindent = true;
breakindent = true;
};
statusline.lualine.enable = true;
telescope.enable = true;
autocomplete.nvim-cmp.enable = true;
languages = {
enableLSP = true;
enableTreesitter = true;
# Who needs a resume when you can just look at enabled neovim LSP config
nix.enable = true;
ts.enable = true;
markdown.enable = true;
bash.enable = true;
css.enable = true;
html.enable = true;
svelte.enable = true;
python.enable = true;
tailwind.enable = true;
};
notes.obsidian = {
enable = true;
setupOpts = {
workspaces = [
{
name = "Obsidian-Brain";
path = "~/Documents/Obsidian-Brain";
}
];
};
};
filetree.nvimTree = {
enable = true;
openOnSetup = false;
mappings = {
toggle = "<leader>e";
findFile = "<leader>ef";
};
setupOpts = {
tab.sync.close = true;
actions.open_file.quit_on_open = true;
};
};
comments.comment-nvim = {
enable = true;
mappings = {
toggleCurrentLine = "<leader>/";
};
};
visuals = {
fidget-nvim.enable = true;
};
terminal.toggleterm = {
enable = true;
mappings.open = "<M-h>";
setupOpts.winbar.enabled = false;
};
utility.images = {
image-nvim = {
enable = true;
setupOpts = {
backend = "kitty";
};
};
};
};
};
};
}