97 lines
2 KiB
Nix
Executable file
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
|
|
];
|
|
};
|
|
};
|
|
}
|
|
|