Files
nixos/home-manager/development/helix.nix
worble ed349bd4e6 yazi: manager -> mgr
helix: add ruff for python
2025-06-19 22:36:42 +01:00

106 lines
3.0 KiB
Nix

{ lib, config, pkgs, ... }:
with lib;
{
options.helix = {
fullInstall = mkOption {
type = lib.types.nullOr lib.types.bool;
default = false;
};
};
config = {
programs = {
helix = mkMerge [{
enable = true;
defaultEditor = true;
settings = {
theme = "dracula";
};
extraPackages = with pkgs;[ gcc ];
}
(mkIf config.helix.fullInstall {
extraPackages = with pkgs;[
marksman
shfmt
bash-language-server
superhtml
nixd
nixpkgs-fmt
biome
omnisharp-roslyn
netcoredbg
ruff
] ++ (with nodePackages;[
vscode-langservers-extracted
typescript-language-server
]);
languages = {
language = [
{
name = "nix";
language-servers = [ "nixd" "nil" ];
}
{
name = "html";
language-servers = [ "superhtml" "vscode-html-language-server" ];
}
{
name = "bash";
formatter = { command = "shfmt"; };
}
{
name = "javascript";
language-servers = [
{ name = "biome"; }
{
name = "typescript-language-server";
except-features = [ "format" ];
}
];
auto-format = true;
formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.js" ]; };
}
{
name = "typescript";
language-servers = [
{ name = "biome"; }
{
name = "typescript-language-server";
except-features = [ "format" ];
}
];
auto-format = true;
formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.ts" ]; };
}
{
name = "jsx";
language-servers = [
{ name = "biome"; }
{
name = "typescript-language-server";
except-features = [ "format" ];
}
];
auto-format = true;
formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.jsx" ]; };
}
{
name = "tsx";
language-servers = [
{ name = "biome"; }
{
name = "typescript-language-server";
except-features = [ "format" ];
}
];
auto-format = true;
formatter = { command = "biome"; args = [ "format" "--stdin-file-path" "a.tsx" ]; };
}
];
};
})];
};
};
}