Files
nixos/home-manager/development/helix.nix
2025-01-14 14:17:24 +00:00

118 lines
3.5 KiB
Nix

{ pkgs, ... }:
{
programs = {
helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "dracula";
};
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" ]; };
}
];
language-server = with pkgs;{
bash-language-server = {
command = "${bash-language-server}/bin/bash-language-server";
args = [ "start" ];
};
superhtml = {
command = "${superhtml}/bin/superhtml";
args = [ "lsp" ];
};
nixd = {
command = "${nixd}/bin/nixd";
config.nil = {
formatting.command = [ "${nixpkgs-fmt}/bin/nixpkgs-fmt" ];
};
};
typescript-language-server = with nodePackages; {
command = "${typescript-language-server}/bin/typescript-language-server";
args = [ "--stdio" "--tsserver-path=${typescript}/lib/node_modules/typescript/lib" ];
};
vscode-css-language-server = {
command = "${vscode-langservers-extracted}/bin/vscode-css-language-server";
args = [ "--stdio" ];
};
vscode-json-language-server = {
command = "${vscode-langservers-extracted}/bin/vscode-json-language-server";
args = [ "--stdio" ];
};
vscode-markdown-language-server = {
command = "${vscode-langservers-extracted}/bin/vscode-markdown-language-server";
args = [ "--stdio" ];
};
biome = {
command = "${biome}/bin/biome";
args = [ "lsp-proxy" ];
};
};
};
};
};
}