{ config, pkgs, lib, ... }: { programs.nixvim = { enable = true; defaultEditor = true; opts = { termguicolors = true; number = true; relativenumber = true; ignorecase = true; smartcase = true; mouse = "a"; tabstop = 4; shiftwidth = 4; }; clipboard.register = [ "unnamedplus" "unnamed" ]; globals = { doom_one_cursor_coloring = true; doom_one_terminal_colors = true; doom_one_italic_comments = false; doom_one_enable_treesitter = true; }; colorscheme = "doom-one"; extraPlugins = with pkgs.vimPlugins; [ doom-one-nvim ]; globals.mapleader = ""; autoCmd = [ { event = [ "TermOpen" ]; command = "setlocal nonumber norelativenumber"; } ]; keymaps = [ { key = " n"; action = ""; mode = "t"; } ]; plugins = { autoclose.enable = true; comment.enable = true; cursorline.enable = true; direnv.enable = true; fidget.enable = true; fzf-lua.enable = true; gitsigns.enable = true; nix.enable = true; lsp-format.enable = true; # nvim-autopairs.enable = true; surround.enable = true; todo-comments.enable = true; treesitter-context.enable = false; treesitter.enable = true; ts-autotag.enable = true; ts-context-commentstring.enable = true; #nvim-jdtls.enable = true; lsp = { enable = true; servers = { clangd.enable = true; hls.enable = true; lua-ls.enable = true; nil_ls = { enable = true; extraOptions = { settings.nil.formatting.command = [ "nixpkgs-fmt" ]; }; }; nimls.enable = true; pyright.enable = true; rust-analyzer = { enable = true; installRustc = false; installCargo = false; }; }; }; }; extraConfigLua = '' vim.cmd [[cabbrev wq execute "Format sync" wq]] vim.cmd [[cabbrev x execute "Format sync" x]] ''; }; }