config/users/natalie/vim/languages.nix

73 lines
2.1 KiB
Nix

{flake, ...}: {
vim = {
lsp.servers.nixd.settings = {
nixd.nixpkgs.expr = "import '${flake.inputs.nixpkgs}' { }";
};
languages = {
enableDAP = true;
haskell.enable = true;
lua.enable = true;
python.enable = true;
python.format.type = "ruff";
# markdown.extensions.markview-nvim = {
# enable = true;
# setupOpts = {
# };
# };
nix = {
lsp = {
server = "nixd";
options = {
nixos = {
expr = "(let
pkgs = import '${flake.inputs.nixpkgs}' {};
inherit (pkgs) lib;
in (lib.evalModules {
modules = import '${flake.inputs.nixpkgs}/nixos/modules/module-list.nix';
check = false;
})).options";
};
nix_darwin = {
expr = "(let
pkgs = import ''${flake.inputs.nixpkgs}' {};
inherit (pkgs) lib;
in (lib.evalModules {
modules = import '${flake.inputs.darwin}/modules/module-list.nix';
check = false;
})).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";
};
};
};
};
};
formatter.conform-nvim = {
enable = true;
setupOpts = {
formatters_by_ft = {
fish = ["fish_indent"];
tex = ["latexindent"];
};
};
};
diagnostics.nvim-lint = {
enable = true;
linters_by_ft = {
nix = ["statix"];
tex = ["chktex"];
haskell = ["hlint"];
};
};
};
}