From 76c76e9e7cc6812d34112c6f479e796dcd795645 Mon Sep 17 00:00:00 2001 From: maralorn Date: Wed, 7 Dec 2022 17:20:15 +0100 Subject: [PATCH] Eigene helix config --- home-manager/roles/default.nix | 1 + home-manager/roles/helix.nix | 86 +++++++++++++++++++++++++++ home-manager/roles/neovim/default.nix | 81 +------------------------ 3 files changed, 88 insertions(+), 80 deletions(-) create mode 100644 home-manager/roles/helix.nix diff --git a/home-manager/roles/default.nix b/home-manager/roles/default.nix index 438f13e8..5233f003 100644 --- a/home-manager/roles/default.nix +++ b/home-manager/roles/default.nix @@ -11,6 +11,7 @@ ./unlock.nix ./mpclient.nix ./neovim + ./helix.nix ./nvd.nix ]; nixpkgs.overlays = import ../../overlays {inherit lib;}; diff --git a/home-manager/roles/helix.nix b/home-manager/roles/helix.nix new file mode 100644 index 00000000..40cf60c2 --- /dev/null +++ b/home-manager/roles/helix.nix @@ -0,0 +1,86 @@ +{ + pkgs, + config, + ... +}: let + language-servers = { + inherit + (pkgs.nodePackages) + typescript-language-server + vscode-json-languageserver-bin + vscode-html-languageserver-bin + vscode-css-languageserver-bin + ; + inherit (pkgs.python3Packages) python-lsp-server; + inherit + (pkgs) + rust-analyzer + taplo + # toml + + nil + # nix + + texlab + # latex + + lean + yaml-language-server + languagetool + ; + }; +in { + home = { + packages = builtins.attrValues language-servers; + sessionVariables = { + EDITOR = "hx"; + VISUAL = "hx"; + }; + }; + programs.helix = { + enable = true; + settings = { + theme = "catppuccin_latte"; + keys = let + common_keys = { + "C-s" = ":w"; + "C-f" = ":format"; + "C-r" = ":reflow"; + }; + in { + normal = common_keys; + insert = + common_keys + // { + up = ["normal_mode" "move_line_up"]; + down = ["normal_mode" "move_line_down"]; + left = ["normal_mode" "move_char_left"]; + right = ["normal_mode" "move_char_right"]; + }; + }; + editor = { + whitespace.render = { + space = "all"; + tab = "all"; + }; + lsp.display-messages = true; + indent-guides.render = true; + cursorline = true; + color-modes = true; + }; + }; + languages = [ + { + name = "haskell"; + config.languageServerHaskell.formattingProvider = "fourmolu"; + } + { + name = "nix"; + formatter = { + command = "alejandra"; + args = ["-q"]; + }; + } + ]; + }; +} diff --git a/home-manager/roles/neovim/default.nix b/home-manager/roles/neovim/default.nix index 61225821..a2e57fc0 100644 --- a/home-manager/roles/neovim/default.nix +++ b/home-manager/roles/neovim/default.nix @@ -3,7 +3,6 @@ config, ... }: let - list = builtins.attrValues; cocSettings = { "diagnostic.maxWindowHeight" = 60; "diagnostic.virtualText" = true; @@ -21,85 +20,14 @@ explorer.icon.enableNerdfont = true; explorer.file.child.template = "[git | 2] [selection | clip | 1] [indent][icon | 1] [diagnosticError & 1][diagnosticWarning & 1][filename omitCenter 1][modified][readonly] [linkIcon & 1][link growRight 1 omitCenter 5][size]"; }; - language-servers = { - inherit - (pkgs.nodePackages) - typescript-language-server - vscode-json-languageserver-bin - vscode-html-languageserver-bin - vscode-css-languageserver-bin - ; - inherit (pkgs.python3Packages) python-lsp-server; - inherit - (pkgs) - rust-analyzer - taplo - # toml - - nil - # nix - - texlab - # latex - - lean - yaml-language-server - ; - }; in { imports = [./spelling.nix]; - programs.helix = { - enable = true; - settings = { - theme = "catppuccin_latte"; - keys = let - common_keys = { - "C-s" = ":w"; - "C-f" = ":format"; - "C-r" = ":reflow"; - }; - in { - normal = common_keys; - insert = - common_keys - // { - up = ["normal_mode" "move_line_up"]; - down = ["normal_mode" "move_line_down"]; - left = ["normal_mode" "move_char_left"]; - right = ["normal_mode" "move_char_right"]; - }; - }; - editor = { - whitespace.render = { - space = "all"; - tab = "all"; - }; - lsp.display-messages = true; - indent-guides.render = true; - cursorline = true; # Not in released helix - color-modes = true; # Not in released helix - }; - }; - languages = [ - { - name = "haskell"; - config.languageServerHaskell.formattingProvider = "fourmolu"; - } - { - name = "nix"; - formatter = { - command = "alejandra"; - args = ["-q"]; - }; - } - ]; - }; programs.neovim = { enable = true; vimAlias = true; vimdiffAlias = true; extraConfig = builtins.readFile ./vimrc; - plugins = list { + plugins = builtins.attrValues { inherit (pkgs.vimPlugins) # coc-tabnine (TODO: Why doesn‘t it work?) @@ -190,11 +118,4 @@ in { }; }; xdg.configFile."nvim/coc-settings.json".text = builtins.toJSON cocSettings; - home = { - packages = [pkgs.languagetool] ++ builtins.attrValues language-servers; - sessionVariables = { - EDITOR = "nvim"; - VISUAL = "nvim"; - }; - }; }