From 284f4199ed6158192a96ff47b5cf7f6ea5233e64 Mon Sep 17 00:00:00 2001 From: Lillian-Violet Date: Sat, 27 Apr 2024 14:55:46 +0200 Subject: [PATCH] Let's copy Lotte's helix config <3 --- home-manager/package-configs/helix.nix | 84 ++++++++++++++++++++++++-- 1 file changed, 79 insertions(+), 5 deletions(-) diff --git a/home-manager/package-configs/helix.nix b/home-manager/package-configs/helix.nix index a33bbb3..1d1d8c5 100644 --- a/home-manager/package-configs/helix.nix +++ b/home-manager/package-configs/helix.nix @@ -1,14 +1,88 @@ { - inputs, - outputs, - lib, config, + lib, pkgs, ... }: { programs.helix = { enable = true; - catppuccin.enable = true; - catppuccin.flavour = "macchiato"; + defaultEditor = true; + + settings = { + theme = "catppuccin_macchiato"; + editor = { + line-number = "relative"; + lsp.display-messages = true; + cursor-shape = { + insert = "bar"; + normal = "block"; + select = "underline"; + }; + cursorline = true; + bufferline = "always"; + color-modes = true; + soft-wrap = { + enable = true; + max-wrap = 25; + wrap-indicator = ""; + }; + }; + }; + languages = { + language = [ + { + name = "python"; + language-id = "python"; + auto-format = true; + file-types = ["py"]; + language-servers = ["python-lsp"]; + formatter = { + command = "ruff"; + args = ["-q"]; + }; + } + { + name = "typst"; + language-id = "typst"; + auto-format = false; + file-types = ["typ"]; + language-servers = ["typst-lsp"]; + } + { + name = "rust"; + language-id = "rust"; + auto-format = true; + file-types = ["rs"]; + roots = ["Cargo.lock"]; + language-servers = ["rust-analyzer"]; + } + { + name = "nix"; + language-id = "nix"; + auto-format = true; + file-types = ["nix"]; + roots = ["flake.lock" "flake.nix"]; + language-servers = ["nil"]; + formatter = { + command = "nix"; + args = ["fmt"]; + }; + } + ]; + language-server = { + python-lsp = { + command = "pylsp"; + }; + typst-lsp = { + command = "typst-lsp"; + }; + rust-analyzer = { + command = "rust-analyzer"; + }; + nil = { + command = "nil"; + }; + }; + }; }; }