From 067d1bbf129aff3ea0016820216583246a8aeb89 Mon Sep 17 00:00:00 2001 From: Jelle Spreeuwenberg Date: Sat, 25 Jul 2026 22:16:38 +0200 Subject: [PATCH] feat: editor updates --- modules/capabilities/helix.nix | 74 +++++++++++++++++++++---- modules/capabilities/neovim/default.nix | 26 ++++++++- 2 files changed, 88 insertions(+), 12 deletions(-) diff --git a/modules/capabilities/helix.nix b/modules/capabilities/helix.nix index 60694b6..7a96421 100644 --- a/modules/capabilities/helix.nix +++ b/modules/capabilities/helix.nix @@ -1,18 +1,70 @@ { ... }: { - flake.modules.homeManager.helix = { pkgs, ... }: { - programs.helix = { - enable = true; - extraPackages = [ pkgs.svelte-language-server ]; + flake.modules.homeManager.helix = + { pkgs, ... }: + let + svelteLanguageServer = pkgs.svelte-language-server.overrideAttrs ( + finalAttrs: _: { + version = "0.18.3"; - settings = { - theme = "kanagawa"; - editor.cursor-shape = { - insert = "bar"; - normal = "block"; - select = "underline"; + src = pkgs.fetchFromGitHub { + owner = "sveltejs"; + repo = "language-tools"; + tag = "svelte-language-server@${finalAttrs.version}"; + hash = "sha256-FTOkJPXbsG6R53yr4n0/IR2lzFCovrdV0+epOi07lBQ="; + }; + + pnpmDeps = pkgs.fetchPnpmDeps { + inherit (finalAttrs) + pname + version + src + pnpmWorkspaces + ; + pnpm = pkgs.pnpm_10; + fetcherVersion = 3; + hash = "sha256-fY3hrCkr/soJk1gp39/jec8lT2ZJI27xRBCZi006oWA="; + }; + } + ); + in + { + programs.helix = { + enable = true; + extraPackages = with pkgs; [ + svelteLanguageServer + nixd + nixfmt + oxfmt + ]; + + languages = { + language = [ + { + name = "svelte"; + formatter = { + command = "oxfmt"; + args = [ "--stdin-filepath=%{buffer_name}" ]; + }; + auto-format = true; + } + { + name = "nix"; + auto-format = true; + } + ]; + }; + + settings = { + theme = "kanagawa"; + editor = { + cursor-shape = { + insert = "bar"; + normal = "block"; + select = "underline"; + }; + }; }; }; }; - }; } diff --git a/modules/capabilities/neovim/default.nix b/modules/capabilities/neovim/default.nix index da37974..0621e9c 100644 --- a/modules/capabilities/neovim/default.nix +++ b/modules/capabilities/neovim/default.nix @@ -20,6 +20,30 @@ in }: let nvimTreesitter = pkgs.vimPlugins.nvim-treesitter; + svelteLanguageServer = pkgs.svelte-language-server.overrideAttrs ( + finalAttrs: _: { + version = "0.18.3"; + + src = pkgs.fetchFromGitHub { + owner = "sveltejs"; + repo = "language-tools"; + tag = "svelte-language-server@${finalAttrs.version}"; + hash = "sha256-FTOkJPXbsG6R53yr4n0/IR2lzFCovrdV0+epOi07lBQ="; + }; + + pnpmDeps = pkgs.fetchPnpmDeps { + inherit (finalAttrs) + pname + version + src + pnpmWorkspaces + ; + pnpm = pkgs.pnpm_10; + fetcherVersion = 3; + hash = "sha256-fY3hrCkr/soJk1gp39/jec8lT2ZJI27xRBCZi006oWA="; + }; + } + ); svelteGrammar = nvimTreesitter.builtGrammars.svelte.overrideAttrs (_: { version = "0.0.0+rev=c2457b9"; src = pkgs.fetchFromGitHub { @@ -80,7 +104,7 @@ in oxlint oxfmt emmet-language-server - svelte-language-server + svelteLanguageServer ]; specs = {