{ config, pkgs, lib, inputs, ... }: let colors = config.colorScheme.colors; in { imports = [ inputs.nixvim.homeManagerModules.nixvim ]; programs.nixvim = { enable = true; globals = { mapleader = ","; }; colorschemes.gruvbox = { enable = true; transparentBg = true; }; autoCmd = [ { event = [ "VimEnter" ]; pattern = [ "*" ]; command = "hi! Normal ctermbg=NONE guibg=NONE"; } { event = [ "BufWinLeave" ] ; pattern = [ "*" ]; command = "silent! mkview"; } { event = [ "BufWinEnter" ] ; pattern = [ "*" ]; command = "silent! loadview"; } ]; options = { number = true; relativenumber = true; ignorecase = true; smartcase = true; tabstop = 2; shiftwidth = 2; expandtab = true; autoindent = true; listchars = "tab:!·,trail:·"; }; plugins = { intellitab.enable = true; airline = { enable = true; powerline = true; theme = "base16_gruvbox_dark_medium"; }; lsp.servers = { clangd.enable = true; rnix-lsp.enable = true; bashls.enable = true; }; comment-nvim.enable = true; fugitive.enable = true; lsp = { enable = true; keymaps.lspBuf = { K = "hover"; gD = "references"; gd = "definition"; gi = "implementation"; gt = "type_definition"; }; }; nvim-autopairs.enable = true; lspkind = { enable = true; cmp = { enable = true; }; }; cmp-treesitter.enable = true; luasnip = { enable = true; fromVscode = [ { paths = inputs.friendly-snippets.outPath; } ]; }; cmp_luasnip.enable = true; cmp-cmdline.enable = true; nvim-cmp = { enable = true; sources = [ { name = "nvim_lsp"; } { name = "luasnip";} { name = "path"; } { name = "buffer"; } { name = "grammar"; } ]; mappingPresets = [ "insert" ]; mapping = { "" = "cmp.mapping.confirm({ select = true })"; "" = "cmp.mapping.scroll_docs(-4)"; "" = "cmp.mapping.scroll_docs(4)"; "" = "cmp.mapping.complete()"; "" = "cmp.mapping.abort()"; }; window.completion = { border = "single"; scrollbar = true; winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None"; }; window.documentation = { border = "single"; maxHeight = "math.floor(40 * (40 / vim.o.lines))"; winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None"; }; }; nvim-colorizer.enable = true; nvim-lightbulb.enable = true; neo-tree.enable = true; telescope = { enable = true; keymaps = { "c" = "git_files"; "v" = "live_grep"; }; }; treesitter = { enable = true; indent = true; }; }; maps = { normal."" = { silent = true; action = "NeoTreeFocusToggle"; }; normal."" = { silent = true; action = "nohlsearch"; }; }; }; }