config/users/natalie/vim/languages.nix

185 lines
4.8 KiB
Nix
Raw Normal View History

2025-05-20 21:30:54 -07:00
{
flake,
2025-05-21 10:44:59 -07:00
user,
host,
2025-05-20 21:30:54 -07:00
pkgs,
...
2025-05-21 15:25:56 -07:00
}:
{
2025-05-19 21:42:58 -07:00
vim = {
2025-05-20 21:30:54 -07:00
extraPackages = with pkgs; [
python312Packages.pylatexenc
2025-06-12 15:14:43 -07:00
nixd
2025-05-20 21:30:54 -07:00
];
lsp = {
2025-06-12 15:14:43 -07:00
servers = {
nil = {
settings.nil.nix.flake = {
autoArchive = true;
autoEvalInputs = true;
2025-05-21 10:44:59 -07:00
};
};
2025-06-12 15:14:43 -07:00
nixd = {
settings.nixd = {
nixpkgs.expr = ''import "${flake.inputs.nixpkgs}" { }'';
options =
{
home-manager = {
expr = ''(let pkgs = import "${flake.inputs.nixpkgs}" { }; lib = import "${flake.inputs.home-manager}/modules/lib/stdlib-extended.nix" pkgs.lib; in (lib.evalModules { modules = (import "${flake.inputs.home-manager}/modules/modules.nix") { inherit lib pkgs;check = false;}; })).options'';
# (builtins.getFlake "${flakePath}").${darwin}Configurations.${hostname}.options.home-manager.users.type.getSubOptions [ ]'';
};
}
// pkgs.lib.optionalAttrs host.darwin {
nix-darwin = {
expr = ''(let pkgs = import "${flake.inputs.nixpkgs}" { }; in (pkgs.lib.evalModules { modules = (import "${flake.inputs.darwin}/modules/module-list.nix"); check = false;})).options'';
# (builtins.getFlake "${flakePath}").darwinConfigurations.${hostname}.options'';
};
}
// pkgs.lib.optionalAttrs host.linux {
nixos = {
expr = ''(let pkgs = import "${flake.inputs.nixpkgs}" { }; in (pkgs.lib.evalModules { modules = (import "${flake.inputs.nixpkgs}/nixos/modules/module-list.nix"); check = false;})).options'';
# (builtins.getFlake "${flakePath}").nixosConfigurations.${hostname}.options'';
};
};
2025-05-20 21:30:54 -07:00
};
2025-06-12 15:14:43 -07:00
};
2025-05-21 10:44:59 -07:00
};
2025-05-19 21:42:58 -07:00
};
languages = {
python.format.type = "ruff";
2025-05-21 10:44:59 -07:00
markdown = {
2025-05-20 21:30:54 -07:00
enable = true;
2025-05-21 10:44:59 -07:00
extensions.render-markdown-nvim = {
enable = true;
};
2025-05-19 21:42:58 -07:00
};
2025-07-04 21:30:20 -07:00
nix.format.enable = true;
2025-05-19 21:42:58 -07:00
};
2025-05-21 10:44:59 -07:00
2025-05-19 21:42:58 -07:00
formatter.conform-nvim = {
enable = true;
setupOpts = {
formatters_by_ft = {
2025-05-21 15:25:56 -07:00
fish = [ "fish_indent" ];
tex = [ "latexindent" ];
2025-05-19 21:42:58 -07:00
};
};
};
2025-05-21 15:25:56 -07:00
diagnostics = {
2025-05-19 21:42:58 -07:00
enable = true;
2025-05-21 15:25:56 -07:00
config = {
virtual_text = {
format = pkgs.lib.generators.mkLuaInline ''
function(diagnostic)
return string.format("%s (%s)", diagnostic.message, diagnostic.source)
end
'';
};
};
nvim-lint = {
enable = true;
linters_by_ft = {
nix = [ "statix" ];
tex = [ "chktex" ];
haskell = [ "hlint" ];
};
2025-05-27 19:56:17 -07:00
linters = {
chktex = {
ignore_exitcode = true;
};
};
2025-05-19 21:42:58 -07:00
};
};
2025-05-20 21:30:54 -07:00
treesitter = {
enable = true;
fold = true;
addDefaultGrammars = true;
highlight = {
additionalVimRegexHighlighting = true;
};
2025-05-21 10:44:59 -07:00
grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
markdown_inline
markdown
];
2025-05-20 21:30:54 -07:00
highlight.enable = true;
2025-05-21 10:44:59 -07:00
indent.enable = false;
2025-05-20 21:30:54 -07:00
};
visuals = {
fidget-nvim = {
setupOpts = {
logger.level = "trace";
};
};
};
2025-05-21 11:55:34 -07:00
ui = {
nvim-ufo = {
enable = true;
};
};
2025-05-20 21:30:54 -07:00
autocomplete.blink-cmp = {
enable = true;
2025-05-21 10:44:59 -07:00
mappings = {
close = null;
complete = null;
confirm = null;
next = null;
previous = null;
scrollDocsDown = null;
scrollDocsUp = null;
};
2025-05-20 21:30:54 -07:00
setupOpts = {
2025-05-21 10:44:59 -07:00
keymap = {
preset = "super-tab";
};
2025-05-20 21:30:54 -07:00
completion = {
ghost_text.enabled = false;
list.selection.preselect = true;
2025-05-21 10:44:59 -07:00
trigger = {
show_in_snippet = true;
};
accept.auto_brackets.enabled = true;
};
signature = {
enabled = true;
2025-05-20 21:30:54 -07:00
};
};
};
2025-06-12 15:14:43 -07:00
lazy.plugins."blink.pairs" = {
enabled = true;
package = pkgs.vimPlugins.blink-pairs;
setupModule = "blink.pairs";
setupOpts = {
mappings = {
# -- you can call require("blink.pairs.mappings").enable() and require("blink.pairs.mappings").disable() to enable/disable mappings at runtime
enabled = true;
# -- see the defaults: https://github.com/Saghen/blink.pairs/blob/main/lua/blink/pairs/config/mappings.lua#L10
pairs = [ ];
};
highlights = {
enabled = true;
groups = [
"BlinkPairsOrange"
"BlinkPairsPurple"
"BlinkPairsBlue"
];
matchparen = {
enabled = true;
group = "MatchParen";
};
};
debug = false;
};
};
2025-05-19 21:42:58 -07:00
};
}