{ pkgs, ... }: { programs.nixvim = { extraPackages = with pkgs; [ fd ]; enable = true; viAlias = true; vimAlias = true; clipboard.register = [ "unnamed" "unnamedplus" ]; performance = { byteCompileLua = { enable = true; configs = true; initLua = false; nvimRuntime = true; plugins = true; }; }; # extraFiles = { # "queries/nix/injections.scm".text = lib.mkForce '' # (string_literal # (string_fragment) @lua # (#match? @lua ".*") # ) # ''; # }; colorscheme = "catppuccin"; colorschemes.catppuccin = { enable = true; #lazyLoad.enable = true; settings = { transparent_background = false; term_colors = false; styles = { conditionals = null; }; custom_highlights = # lua '' function(colors) return { Comment = { fg = "#f4b8e4", style = { "italic" } }, ["@punctuation.comment"] = { fg = "#f4b8e4", style = { "italic" } }, ["@variable"] = { fg = "#82eaf0" }, ["@operator"] = { fg = "#EBA0AC" }, ["@meta.block.paradox"] = { fg = "#EBA0AC" }, ["@comment.shebang"] = { fg = "#ef9f76", style = { "italic", "bold" } }, ["@punctuation.comment.shebang"] = { fg = "#ef9f76", style = { "italic", "bold" } }, ["@string.special.shell"] = { fg = "#82e5f0" }, ["@property.ts"] = { fg = "#32d5e7" }, } end ''; }; }; plugins = { aerial.enable = true; direnv.enable = true; web-devicons.enable = true; glow.enable = true; gitblame.enable = true; git-conflict.enable = true; nix.enable = true; nix-develop.enable = true; image.enable = true; which-key.enable = true; neocord.enable = false; lazydev.enable = true; neoconf.enable = true; colorizer = { enable = true; settings.user_default_options = { names = false; }; }; comment.enable = true; dotnet.enable = true; sqlite-lua.enable = true; }; userCommands = { ViewInit = { desc = "Open the Neovim init.lua file"; command = "lua vim.cmd('view '.. InitPath)"; }; }; extraConfigLua = # lua '' InitPath = debug.getinfo(1, "S").source:sub(2) print("Neovim init file location: " .. InitPath) ''; extraConfigVim = '' set number " enable number lines set relativenumber " enable relative number lines ''; }; }