Files
nixos/home-manager/development/helix.nix

90 lines
2.4 KiB
Nix

{ pkgs, ... }:
{
programs = {
helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "dracula";
};
extraPackages = with pkgs;[
marksman
shfmt
bash-language-server
superhtml
nixd
nixpkgs-fmt
biome
] ++ (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 = "${pkgs.shfmt}/bin/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" ]; };
}
];
};
};
};
}