{ inputs, ... }: { lux.nvf = { homeManager = { pkgs, ... }: { imports = [ inputs.nvf.homeManagerModules.default ]; programs.nvf = { enable = true; settings.vim = { # extraPlugins.kanagawa = { # package = pkgs.vimPlugins.kanagawa-nvim; # setup = ''vim.cmd("colorscheme kanagawa")''; # }; augroups = [ { clear = true; name = "highlight-yank"; } ]; autocmds = [ { desc = "Highlight when yanking text"; event = [ "TextYankPost" ]; group = "highlight-yank"; callback = inputs.nixpkgs.lib.generators.mkLuaInline /* lua */ '' function() vim.hl.on_yank() end ''; } ]; diagnostics = { enable = true; config = { signs = true; underline = true; virtual_text = true; }; }; options = { cursorline = true; cursorlineopt = "both"; splitright = true; splitbelow = true; scrolloff = 5; number = true; relativenumber = false; signcolumn = "yes"; list = true; listchars = "tab:» ,trail:·,nbsp:␣"; updatetime = 250; timeoutlen = 300; undofile = true; confirm = true; inccommand = "split"; ignorecase = true; smartcase = true; }; startPlugins = [ pkgs.vimPlugins.kanagawa-nvim ]; luaConfigRC.theme-config = inputs.nvf.lib.nvim.dag.entryBefore [ "pluginConfigs" ] /* lua */ '' require('kanagawa').setup({ dimInactive = true, }) vim.cmd("colorscheme kanagawa") ''; extraPlugins.hmts = { package = pkgs.vimPlugins.hmts-nvim; }; languages = { nix = { enable = true; format.enable = true; treesitter.enable = true; extraDiagnostics.enable = true; lsp.enable = true; lsp.servers = [ "nixd" ]; format.type = [ "nixfmt" ]; }; qml = { enable = true; format.enable = true; lsp.enable = true; treesitter.enable = true; }; python = { enable = true; format.enable = true; lsp.enable = true; treesitter.enable = true; }; }; formatter.conform-nvim.enable = true; lsp = { enable = true; formatOnSave = true; inlayHints.enable = true; lspconfig.enable = true; lspkind.enable = true; trouble.enable = true; servers.nixd.settings = let flake = ''(builtins.getFlake "/home/kiri/.config/nixos")''; in { nixd = { formatting.command = [ "nixfmt" ]; nixpkgs.expr = "import ${flake}.inputs.nixpkgs {}"; options = { nixos.expr = "${flake}.nixosConfigurations.polaris.options"; home-manager.expr = "${flake}.nixosConfigurations.polaris.options.home-manager.users.type.getSubOptions []"; flake-parts.expr = "${flake}.debug.options"; }; }; }; }; projects.project-nvim = { enable = true; setupOpts = { manual_mode = false; }; }; utility.sleuth.enable = true; telescope = { enable = true; setupOpts = { defaults = { color_devicons = true; }; }; extensions = [ { name = "fzf"; packages = [ pkgs.vimPlugins.telescope-fzf-native-nvim ]; setup = { fzf = { fuzzy = true; }; }; } ]; }; mini = { ai.enable = true; surround.enable = true; files.enable = true; hipatterns = { enable = true; setupOpts = { highlighters = { fixme = { pattern = "%f[%w]()FIXME()%f[%W]"; group = "MiniHipatternsFixme"; }; hack = { pattern = "%f[%w]()HACK()%f[%W]"; group = "MiniHipatternsHack"; }; todo = { pattern = "%f[%w]()TODO()%f[%W]"; group = "MiniHipatternsTodo"; }; note = { pattern = "%f[%w]()NOTE()%f[%W]"; group = "MiniHipatternsNote"; }; hex_color = inputs.nixpkgs.lib.mkLuaInline /* lua */ "require('mini.hipatterns').gen_highlighter.hex_color()"; }; }; }; icons.enable = true; indentscope.enable = true; indentscope.setupOpts = { symbol = "│"; }; }; autopairs.nvim-autopairs.enable = true; ui = { colorful-menu-nvim.enable = true; }; luaConfigRC.mini-icons-mock = inputs.nvf.lib.nvim.dag.entryAfter [ "pluginConfigs" ] /* lua */ '' require('mini.icons').mock_nvim_web_devicons() ''; statusline.lualine.enable = true; binds.whichKey = { enable = true; }; autocomplete.blink-cmp = { enable = true; mappings = { confirm = ""; next = ""; previous = ""; }; setupOpts = { cmdline.keymap.preset = "inherit"; cmdline.completion.menu.auto_show = true; sources.default = [ "lsp" "path" "snippets" ]; signature.enabled = true; }; }; }; }; }; }; }