_: { 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 autocomplete.blink-cmp.enable = true; autocomplete.blink-cmp.setupOpts.signature.enabled = true; 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; # 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; }; }; }