{ inputs, pkgs, ... }: { imports = [ inputs.nixvim.homeManagerModules.nixvim ]; programs.nixvim = { enable = true; options = { number = true; }; colorschemes.tokyonight.enable = true; autoCmd = [ { event = "VimEnter"; command = "Neotree"; } ]; keymaps = [ # Simple save Ctrl + S { action = "w"; key = ""; options.silent = true; } # Vsplit { action = "vsplit"; key = ""; options.silent = true; } # [H]split { action = "split"; key = ""; options.silent = true; } # Toggleterm Ctrl + ` { action = "ToggleTerm"; key = ""; options.silent = true; } ]; plugins = { neo-tree = { enable = true; closeIfLastWindow = true; buffers.followCurrentFile.leaveDirsOpen = true; }; lightline.enable = true; toggleterm.enable = true; #rainbow-delimiters.enable = true; treesitter.enable = true; barbar.enable = true; gitgutter.enable = true; persistence.enable = true; nvim-cmp.enable = true; cmp-nvim-lsp.enable = true; cmp_luasnip.enable = true; luasnip.enable = true; #lsp = { # enable = true; # servers = { # nil_ls.enable = true; # rust-analyzer.enable = true; # rust-analyzer.installRustc = false; # use rustc in nix shells, maybe? # rust-analyzer.installCargo = false; # tsserver.enable = true; # htmx.enable = true; # html.enable = true; # }; #}; }; extraPlugins = with pkgs.vimPlugins; [ vim-sleuth ]; }; }