{ inputs, pkgs, config, ... }: { imports = [ inputs.nixvim.homeManagerModules.nixvim ]; programs.nixvim = { enable = true; defaultEditor = true; colorschemes = { kanagawa = { enable = true; }; }; globals = { mapleader = " "; maplocalleader = " "; }; opts = { number = true; relativenumber = true; mouse = "a"; showmode = false; laststatus = 3; swapfile = false; clipboard = { register = "unnamedplus"; }; breakindent = true; undofile = true; ignorecase = true; smartcase = true; signcolumn = "yes"; updatetime = 50; timeoutlen = 300; inccommand = "split"; cursorline = true; scrolloff = 10; hlsearch = true; }; keymaps = [ { mode = "n"; key = "fe"; action = "Oil"; } { mode = "n"; key = "ff"; action = "Pick files"; } { mode = "n"; key = "fg"; action = "Pick grep_live"; } { mode = "n"; key = "u"; action = "UndotreeToggle"; } ]; plugins = { web-devicons.enable = true; sleuth = { enable = true; }; treesitter = { enable = true; settings = { highlight = { enable = true; additional_vim_regex_highlighting = true; }; indent = { enable = true; }; autotag = { enable = true; }; }; }; harpoon = { enable = true; keymaps = { addFile = "a"; toggleQuickMenu = "e"; navNext = "k"; navPrev = "j"; }; }; mini = { enable = true; modules = { ai = { n_lines = 500; }; surround = {}; statusline = { use_icons = true; }; comment = {}; trailspace = {}; pick = {}; }; }; friendly-snippets = { enable = true; }; cmp = { enable = true; settings = { snippet = { expand = '' function(args) require('luasnip').lsp_expand(args.body) end ''; }; completion = { completeopt = "menu,menuone,noinsert"; }; mapping = { "" = "cmp.mapping.select_next_item()"; "" = "cmp.mapping.select_prev_item()"; "" = "cmp.mapping.scroll_docs(-4)"; "" = "cmp.mapping.scroll_docs(4)"; "" = "cmp.mapping.confirm { select = true }"; "" = "cmp.mapping.complete {}"; "" = '' cmp.mapping(function() if luasnip.expand_or_locally_jumpable() then luasnip.expand_or_jump() end end, { 'i', 's' }) ''; "" = '' cmp.mapping(function() if luasnip.locally_jumpable(-1) then luasnip.jump(-1) end end, { 'i', 's' }) ''; }; sources = [ { name = "luasnip"; } { name = "nvim_lsp"; } { name = "path"; } ]; }; }; oil = { enable = true; }; undotree = { enable = true; }; tmux-navigator = { enable = true; }; cmp-nvim-lsp = { enable = true; }; fidget = { enable = true; }; lsp = { enable = true; servers = { nixd = { enable = true; }; ts_ls = { enable = true; }; eslint = { enable = true; }; html = { enable = true; }; cssls = { enable = true; }; volar = { enable = true; tslsIntegration = true; }; }; keymaps = { diagnostic = { "[d" = "goto_next"; "]d" = "goto_prev"; "d" = "open_float"; }; lspBuf = { "K" = "hover"; "gd" = "definition"; "gr" = "references"; "rn" = "rename"; "ca" = "code_action"; "" = "signature_help"; }; }; }; }; }; }