From ba1a3fe07e3af0c56527b1f8123371e2cd4519d3 Mon Sep 17 00:00:00 2001 From: Emile Clark-Boman Date: Thu, 29 Jan 2026 14:39:59 +1000 Subject: [PATCH] helix module remove redudancy --- homes/modules/editor/helix.nix | 117 ++++++++++++++++++++------------- hosts/lolcathost/default.nix | 8 +-- hosts/myputer/default.nix | 15 ----- 3 files changed, 74 insertions(+), 66 deletions(-) diff --git a/homes/modules/editor/helix.nix b/homes/modules/editor/helix.nix index 30dad17..81f7959 100755 --- a/homes/modules/editor/helix.nix +++ b/homes/modules/editor/helix.nix @@ -1,5 +1,55 @@ -{pkgs, ...}: { - # read https://docs.helix-editor.com/editor.html +{ + pkgs, + pkgs-unstable, + ... +}: let + lsps = let + mkLsp = pkg: path: {inherit pkg path;}; + in { + bash-language-server = + mkLsp + pkgs.bash-language-server + "/bin/bash-language-server"; + + clangd = + mkLsp + pkgs.clang-tools + "/bin/clangd"; + + haskell-language-server = + mkLsp + pkgs.haskell-language-server + "/bin/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 = + mkLsp + pkgs.nixd + "/bin/nixd"; + + OmniSharp = + mkLsp + pkgs.omnisharp-roslyn + "/bin/OmniSharp"; + + rust-analyzer = + mkLsp + pkgs.rust-analyzer + "/bin/rust-analyzer"; + + ty = + mkLsp + pkgs.ty + "/bin/ty"; + }; +in { + environment.systemPackages = + lsps + |> map (lsp: lsp.pkg); + + # REF: https://docs.helix-editor.com/editor.html programs.helix = { enable = true; settings = { @@ -128,11 +178,12 @@ }; auto-format = false; # my python is beautiful ^_^ rulers = [80]; + language-servers = ["ty"]; } { name = "c"; file-types = ["c" "h"]; # use .hpp for C++ - auto-format = false; + auto-format = true; formatter.command = "${pkgs.clang-tools}/bin/clang-format"; language-servers = ["clangd"]; } @@ -152,49 +203,27 @@ formatter.command = "${pkgs.rustfmt}/bin/rustfmt"; language-servers = ["rust-analyzer"]; } - # { - # name = "c-sharp"; - # source = "source.cs"; - # file-types = ["cs"]; - # indent = { - # tab-width = 4; - # unit = " "; - # }; - # block-comment-tokens = { - # start = "/*"; - # end = "*/"; - # }; - # # auto-format = false; - # # formatter.command = "${pkgs.omnisharp-roslyn}/bin/OmniSharp"; - # # language-servers = ["OmniSharp"]; - # } + { + name = "c-sharp"; + source = "source.cs"; + file-types = ["cs"]; + indent = { + tab-width = 4; + unit = " "; + }; + block-comment-tokens = { + start = "/*"; + end = "*/"; + }; + # auto-format = false; + # formatter.command = "${pkgs.omnisharp-roslyn}/bin/OmniSharp"; + # language-servers = ["OmniSharp"]; + } ]; - language-server = { - # use nixd as default nix lsp (I haven't tried nil yet) - # NOTE: nixd will be supported by default after nix 24.07 - # SOURCE: https://github.com/nix-community/nixd/blob/main/nixd/docs/editor-setup.md#Helix - nixd = { - command = "${pkgs.nixd}/bin/nixd"; - }; - # clangd for C - clangd = { - command = "${pkgs.clang-tools}/bin/clangd"; - }; - - haskell-language-server = { - command = "${pkgs.haskell-language-server}/bin/haskell-language-server-wrapper"; - }; - - rust-analyzer = { - command = "${pkgs.rust-analyzer}/bin/rust-analyzer"; - }; - - # C# language services - OmniSharp = { - command = "${pkgs.omnisharp-roslyn}/bin/OmniSharp"; - }; - }; + language-server = + lsps + |> builtins.mapAttrs (_: lsp: "${lsp.pkg}${lsp.path}"); }; }; } diff --git a/hosts/lolcathost/default.nix b/hosts/lolcathost/default.nix index f3c5943..4119d78 100755 --- a/hosts/lolcathost/default.nix +++ b/hosts/lolcathost/default.nix @@ -296,13 +296,12 @@ in { # C Family gcc clang - clang-tools + # Rust cargo rustc rustfmt - rust-analyzer # Go go # Nim @@ -311,14 +310,9 @@ in { # Haskell ghc ghcid - haskell-language-server ormolu # Nix - # 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 # lsp for nix nix-prefetch-git nix-index nix-unit diff --git a/hosts/myputer/default.nix b/hosts/myputer/default.nix index aecd7ce..60098b1 100755 --- a/hosts/myputer/default.nix +++ b/hosts/myputer/default.nix @@ -307,19 +307,9 @@ in { # Haskell ghc ghcid - haskell-language-server ormolu # Java - # jdk17 - # (jre8.overrideAttrs - # (oldAttrs: { - # enableJavaFX = true; - # })) - # (jdk8.overrideAttrs - # (oldAttrs: { - # enableJavaFX = true; - # })) visualvm # Python @@ -357,11 +347,6 @@ in { tesseract # for my work with Agribit - # 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 # lsp for nix # DEBUG - # Pretty necessary git git-filter-repo