pantheon/packages/nvf.nix
2025-03-04 13:01:11 +08:00

158 lines
3.3 KiB
Nix

_: {
config.vim = {
theme = {
enable = true;
name = "catppuccin";
style = "mocha";
};
viAlias = true;
vimAlias = true;
options = {
# Indentation
expandtab = true;
shiftwidth = 2;
tabstop = 2;
shiftround = true;
smarttab = true;
smartindent = true;
# Visual Settings
cursorline = true;
# signcolumn = "no";
};
syntaxHighlighting = true;
# Built-Ins
autopairs.nvim-autopairs.enable = true;
binds.whichKey.enable = true;
comments.comment-nvim.enable = true;
formatter.conform-nvim.enable = true;
dashboard.alpha.enable = true;
# session.nvim-session-manager.enable = true;
# Auto-completion
autocomplete.blink-cmp = {
enable = true;
setupOpts = {
# signature = { enabled = true }
signature.enabled = true;
};
};
# Filetree
filetree.nvimTree = {
enable = true;
mappings.toggle = "t";
openOnSetup = false;
setupOpts = {
git = {
enable = true;
};
hijack_cursor = true;
view.side = "right";
disable_netrw = true;
hijack_netrw = true;
};
# TODO:
# - allow me to move files around with vim bindings
};
# SyntaxHighlighting
treesitter.fold = true;
# Fuzzy Finding
fzf-lua = {
enable = true;
profile = "default";
};
telescope = {
enable = true;
};
# Git Integration
git = {
enable = true;
git-conflict.enable = true;
gitsigns.enable = true;
vim-fugitive.enable = true;
};
# Languages
languages = {
# Global Defaults
enableDAP = true;
enableExtraDiagnostics = true;
enableFormat = true;
enableLSP = true;
enableTreesitter = true;
# Specific Languages
bash.enable = true;
clang.enable = true;
csharp.enable = true;
css.enable = true;
go.enable = true;
html.enable = true;
java.enable = true;
lua.enable = true;
markdown.enable = true;
nix.enable = true;
python.enable = true;
rust.enable = true;
ts.enable = true;
# yaml.enable = true;
# Markdown
markdown.extensions.render-markdown-nvim.enable = true;
# Nix
nix.lsp.options = {
settings.nix.flake.autoArchive = true;
};
# Rust
rust.crates.enable = true;
# Typescript
ts.extensions.ts-error-translator.enable = true;
};
lsp = {
enable = true;
formatOnSave = true;
lightbulb.enable = true;
# lspSignature.enable = true;
lspconfig.enable = true;
lspkind.enable = true;
# lsplines.enable = true;
null-ls.enable = true;
nvim-docs-view.enable = true;
otter-nvim.enable = true;
trouble.enable = true;
};
mini = {
# animate.enable = true;
statusline.enable = true;
surround.enable = true;
};
utility = {
leetcode-nvim.enable = true;
preview.glow.enable = true;
yanky-nvim.enable = true;
yazi-nvim.enable = true;
vim-wakatime.enable = true;
};
visuals = {
fidget-nvim.enable = true;
indent-blankline.enable = true;
nvim-web-devicons.enable = true;
rainbow-delimiters.enable = true;
};
};
}