another reorg; add options for full or minimal helix install
This commit is contained in:
@@ -1,89 +1,102 @@
|
||||
{ pkgs, ... }:
|
||||
{ lib, config, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
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"; }
|
||||
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
|
||||
] ++ (with nodePackages;[
|
||||
vscode-langservers-extracted
|
||||
typescript-language-server
|
||||
]);
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "typescript-language-server";
|
||||
except-features = [ "format" ];
|
||||
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" ]; };
|
||||
}
|
||||
];
|
||||
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" ]; };
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
})];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user