nixos/modules/home-manager/editors/helix.nix
2026-01-11 01:42:54 +00:00

97 lines
2 KiB
Nix
Executable file

{ lib
, config
, pkgs
, inputs
, ...
}:
let
cfg = config.custom.editors.helix;
in
{
options.custom.editors.helix = {
enable = lib.mkEnableOption "Whether to enable the Helix editor.";
};
config = lib.mkIf cfg.enable {
programs.helix = {
enable = true;
defaultEditor = (config.custom.editors.defaultEditor == "helix");
settings = {
theme = "term16_dark";
editor = {
line-number = "relative";
};
};
languages = {
language-server = {
nixd = {
command = "nixd";
args = [ "--semantic-tokens=true" ];
config.nixd = let
host = "evergarden";
flake = "(builtins.getFlake (toString ${inputs.self.outPath}))";
nixosOptions = "${flake}.nixosConfigurations.${host}.options";
homeManagerOptions = "${nixosOptions}.home-manager.users.type.getSubOptions []";
in {
nixpkgs.expr = "import ${flake}.inputs.nixpkgs { }";
options = {
nixos.expr = nixosOptions;
home-manager.expr = homeManagerOptions;
};
};
};
rust = {
command = "rust-analyzer";
};
qml = {
command = "qmlls";
args = [ ];
};
dockerfile = {
command = "docker-language-server";
};
};
language = [
{
name = "css";
auto-format = false;
}
];
};
extraPackages = with pkgs; [
nixd
kdePackages.qtdeclarative
just-lsp
yaml-language-server
tombi
docker-compose-language-service
docker-language-server
rust-analyzer
clang-tools
ruff
intelephense
vscode-langservers-extracted
typescript-language-server
kotlin-language-server
jdt-language-server
marksman
];
};
};
}