From d74f3880ca43c09133bfcca42a74a12345598186 Mon Sep 17 00:00:00 2001 From: Martin Berg Alstad Date: Sat, 19 Apr 2025 19:37:12 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20[shared]=20=20Helix=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Support for more languages in Helix. C-f to format. Autosave. Added some lsp packages --- shared/home-manager/development/helix.nix | 105 +++++++++++++++++++++- 1 file changed, 101 insertions(+), 4 deletions(-) diff --git a/shared/home-manager/development/helix.nix b/shared/home-manager/development/helix.nix index 4eaf468..75b0f95 100644 --- a/shared/home-manager/development/helix.nix +++ b/shared/home-manager/development/helix.nix @@ -1,4 +1,9 @@ -{ pkgs, theme, ... }: +{ + pkgs, + lib, + theme, + ... +}: { catppuccin.helix = { @@ -11,23 +16,115 @@ helix = { enable = true; defaultEditor = true; + extraPackages = with pkgs; [ + # Markdown + marksman + markdown-oxide + # Html, css, Json, Eslint + vscode-langservers-extracted + # Yaml + ansible-language-server + yaml-language-server + ]; settings = { editor = { + auto-save = { + after-delay.enable = true; + focus-lost = true; + }; cursor-shape = { normal = "block"; insert = "bar"; select = "underline"; }; - lsp.display-messages = true; + lsp = { + display-inlay-hints = true; + display-messages = true; + }; + }; + keys.normal = { + C-f = ":format"; }; }; + languages.language = [ { - name = "nix"; + name = "css"; + formatter = { + command = "prettier"; + args = [ + "--stdin-filepath" + "file.css" + ]; + }; + auto-format = true; + } + { + name = "json"; + language-servers = [ + { + name = "vscode-json-language-server"; + except-features = [ "format" ]; + } + ]; + formatter = { + command = "prettier"; + args = [ + "--stdin-filepath" + "file.json" + ]; + }; + auto-format = true; + } + { + name = "jsonc"; + language-servers = [ + { + name = "vscode-json-language-server"; + except-features = [ "format" ]; + } + ]; + formatter = { + command = "prettier"; + args = [ + "--stdin-filepath" + "file.jsonc" + ]; + }; + file-types = [ + "jsonc" + ]; + auto-format = true; + } + { + name = "markdown"; + formatter = { + command = "prettier"; + args = [ + "--stdin-filepath" + "file.md" + ]; + }; + auto-format = true; + } + { + name = "nix"; + formatter.command = lib.getExe pkgs.nixfmt-rfc-style; + auto-format = true; + } + { + name = "yaml"; + formatter = { + command = "prettier"; + args = [ + "--stdin-filepath" + "file.yaml" + ]; + }; auto-format = true; - formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; } ]; + }; }; }