diff --git a/modules/home/helix.nix b/modules/home/helix.nix index b4fef12..2792939 100644 --- a/modules/home/helix.nix +++ b/modules/home/helix.nix @@ -124,83 +124,23 @@ }; }; - languages = { - language-server.emmet-language-server = { - command = "emmet-language-server"; - args = ["--stdio"]; - }; - - language-server.vscode-css-language-server = { - command = "vscode-css-language-server"; - args = ["--stdio"]; - }; - - language = let - def = name: obj: {inherit name;} // obj; - in [ - (def "git-commit" { - rulers = [73]; - }) - (def "jjdescription" { - rulers = [73]; - }) - (def "less" { - scope = "source.less"; - file-types = ["less"]; - language-id = "less"; - grammar = "less"; - - comment-tokens = ["//"]; - block-comment-tokens = [ - { - start = "/*"; - end = "*/"; - } - ]; - - indent.tab-width = 2; - indent.unit = " "; - - language-servers = [ - "vscode-css-language-server" - "emmet-language-server" - ]; - }) - (def "html" { - language-servers = [ - "vscode-html-language-server" - "emmet-language-server" - ]; - }) - (def "jsx" { - language-servers = [ - "typescript-language-server" - "emmet-language-server" - ]; - }) - (def "markdown" { - rulers = [81]; - }) - (def "sql" { - indent.tab-width = 4; - indent.unit = " "; - }) - (def "tsx" { - language-servers = [ - "typescript-language-server" - "emmet-language-server" - ]; - }) - ]; - - grammar = [ - { - name = "less"; - source.git = "https://github.com/jimliang/tree-sitter-less"; - source.rev = "945f52c94250309073a96bbfbc5bcd57ff2bde49"; - } - ]; - }; + languages.language = let + def = name: obj: {inherit name;} // obj; + in [ + (def "git-commit" { + rulers = [73]; + }) + (def "jjdescription" { + rulers = [73]; + }) + (def "markdown" { + rulers = [81]; + }) + (def "sql" { + indent.tab-width = 4; + indent.unit = " "; + }) + ]; }; }; } diff --git a/modules/home/webdev-common.nix b/modules/home/webdev-common.nix index 085af9e..9111284 100644 --- a/modules/home/webdev-common.nix +++ b/modules/home/webdev-common.nix @@ -22,6 +22,7 @@ config = let webdev-common = config.modules.home.webdev-common; + helix = config.modules.home.helix; pnpmHome = "${config.home.homeDirectory}/.local/share/pnpm"; in lib.mkIf webdev-common.enable (lib.mkMerge [ @@ -45,7 +46,73 @@ home.sessionVariables.PNPM_HOME = pnpmHome; home.sessionPath = [pnpmHome]; }) - (lib.mkIf (config.modules.home.helix.enable && webdev-common.astro.enable) { + (lib.mkIf helix.enable { + programs.helix.languages.language-server.emmet-language-server = { + command = "emmet-language-server"; + args = ["--stdio"]; + }; + + programs.helix.languages.language-server.vscode-css-language-server = { + command = "vscode-css-language-server"; + args = ["--stdio"]; + }; + + programs.helix.languages.language = [ + { + name = "less"; + scope = "source.less"; + file-types = ["less"]; + language-id = "less"; + grammar = "less"; + + comment-tokens = ["//"]; + block-comment-tokens = [ + { + start = "/*"; + end = "*/"; + } + ]; + + indent.tab-width = 2; + indent.unit = " "; + + language-servers = [ + "vscode-css-language-server" + "emmet-language-server" + ]; + } + { + name = "html"; + language-servers = [ + "vscode-html-language-server" + "emmet-language-server" + ]; + } + { + name = "jsx"; + language-servers = [ + "typescript-language-server" + "emmet-language-server" + ]; + } + { + name = "tsx"; + language-servers = [ + "typescript-language-server" + "emmet-language-server" + ]; + } + ]; + + programs.helix.languages.grammar = [ + { + name = "less"; + source.git = "https://github.com/jimliang/tree-sitter-less"; + source.rev = "945f52c94250309073a96bbfbc5bcd57ff2bde49"; + } + ]; + }) + (lib.mkIf (helix.enable && webdev-common.astro.enable) { programs.helix.languages.language = [ { roots = ["package.json" "astro.config.mjs"];