another reorg; add options for full or minimal helix install

This commit is contained in:
2025-02-08 17:27:13 +00:00
parent ea4e20e990
commit 99768f0b4a
25 changed files with 265 additions and 394 deletions

View File

@@ -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" ]; };
}
];
};
};
})];
};
};
}

View File

@@ -2,6 +2,10 @@
with lib;
{
imports = [
./development/helix.nix
];
options.terminal = {
nixUpdateLocation = mkOption {
type = lib.types.nullOr lib.types.str;