{ pkgs, inputs, ... }: { imports = [ inputs.nixneovim.nixosModules.default ]; programs.nixneovim = { enable = true; extraConfigLua = '' vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()" vim.opt.foldtext = "v:lua.vim.treesitter.foldtext()" ''; options = { number = true; relativenumber = true; }; plugins = { lspconfig = { enable = true; servers = { rust-analyzer.enable = true; nil.enable = true; }; }; treesitter = { enable = true; indent = true; }; }; colorschemes = { catppuccin = { enable = true; flavour = "mocha"; }; }; mappings = { normal = { "ff" = "require'telescope.builtin'.find_files"; "gg" = "require'telescope.builtin'.live_grep"; ";" = "require'telescope.builtin'.buffers"; "" = "''"; "vff" = "'vertical Gdiffsplit'"; "" = "vim.lsp.buf.definition"; "gi" = "vim.lsp.buf.implementation"; "a" = "vim.lsp.buf.code_action"; "F" = "function() vim.lsp.buf.format({ async = true }) end"; }; }; }; }