From f1224c8cf80edc2d1e63cdd8e81b00329ab94cf4 Mon Sep 17 00:00:00 2001 From: Emile Clark-Boman Date: Sat, 31 Jan 2026 10:57:59 +1000 Subject: [PATCH] add helix js/ts lsp --- homes/modules/editor/helix.nix | 84 +++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 36 deletions(-) diff --git a/homes/modules/editor/helix.nix b/homes/modules/editor/helix.nix index 3d831c1..80ea265 100755 --- a/homes/modules/editor/helix.nix +++ b/homes/modules/editor/helix.nix @@ -4,50 +4,48 @@ ... }: let lsps = { - bash-language-server = - { - pkg = pkgs.bash-language-server; - cmd = "bash-language-server"; - }; + bash-language-server = { + pkg = pkgs.bash-language-server; + cmd = "bash-language-server"; + }; - clangd = - { - pkg = pkgs.clang-tools; - cmd = "clangd"; - }; + clangd = { + pkg = pkgs.clang-tools; + cmd = "clangd"; + }; - haskell-language-server = - { - pkg = pkgs.haskell-language-server; - cmd = "haskell-language-server-wrapper"; - }; + haskell-language-server = { + pkg = pkgs.haskell-language-server; + cmd = "haskell-language-server-wrapper"; + }; # TODO: once upgraded past Nix-24.07 this line won't be necessary (I think) # helix will support nixd by default # SOURCE: https://github.com/nix-community/nixd/blob/main/nixd/docs/editor-setup.md#Helix - nixd = - { - pkg = pkgs.nixd; - cmd = "nixd"; - }; + nixd = { + pkg = pkgs.nixd; + cmd = "nixd"; + }; - OmniSharp = - { - pkg = pkgs.omnisharp-roslyn; - cmd = "OmniSharp"; - }; + OmniSharp = { + pkg = pkgs.omnisharp-roslyn; + cmd = "OmniSharp"; + }; - rust-analyzer = - { - pkg = pkgs.rust-analyzer; - cmd = "rust-analyzer"; - }; + rust-analyzer = { + pkg = pkgs.rust-analyzer; + cmd = "rust-analyzer"; + }; - ty = - { - pkg = pkgs-unstable.ty; - cmd = "ty"; - }; + ty = { + pkg = pkgs-unstable.ty; + cmd = "ty"; + }; + + typescript-language-server = { + pkg = pkgs.typescript-language-server; + cmd = "typescript-language-server"; + }; }; in { home.packages = @@ -224,11 +222,25 @@ in { # formatter.command = "${pkgs.omnisharp-roslyn}/bin/OmniSharp"; # language-servers = ["OmniSharp"]; } + { + name = "javascript"; + file-types = ["js"]; + indent = { + tab-width = 2; + unit = " "; + }; + block-comment-tokens = { + start = "/*"; + end = "*/"; + }; + auto-format = true; + language-servers = ["typescript-language-server"]; + } ]; language-server = lsps - |> builtins.mapAttrs (_: lsp: { command = "${lsp.pkg}/bin/${lsp.cmd}"; }); + |> builtins.mapAttrs (_: lsp: {command = "${lsp.pkg}/bin/${lsp.cmd}";}); }; }; }