diff --git a/modules/hm/helix.nix b/modules/hm/helix.nix index e56390a..b7a2845 100644 --- a/modules/hm/helix.nix +++ b/modules/hm/helix.nix @@ -79,11 +79,43 @@ character = "▏"; }; }; - keys.normal = { - "C-A-l" = ":format"; - "A-r" = ":reload"; - "C-A-r" = ":reload-all"; - }; + keys = + let + macro = pkgs.writeShellScript "macro" '' + mode="$1" + shift + + case "$mode" in + t) + # Block tag with newlines + echo "" + cat + echo "" + ;; + i) + # Inline tag (no newlines) + echo -n "" + cat + echo -n "" + ;; + *) + echo "Unknown macro mode: $mode" >&2 + exit 1 + ;; + esac + ''; + in + { + normal = { + "C-A-l" = ":format"; + "A-r" = ":reload"; + "C-A-r" = ":reload-all"; + "L" = { "i" = "@|${macro} isxxxc"; "t" = "@|${macro} tsxxxc"; }; + }; + select = { + "L" = { "i" = "@|${macro} isxxxc"; "t" = "@|${macro} tsxxxc"; }; + }; + }; }; themes = let @@ -103,56 +135,24 @@ { base16 = { "ui.menu" = transparent; - "ui.menu.selected" = { - modifiers = [ "reversed" ]; - }; - "ui.linenr" = { - fg = gray; - bg = dark-gray; - }; - "ui.popup" = { - modifiers = [ "reversed" ]; - }; - "ui.linenr.selected" = { - fg = white; - bg = black; - modifiers = [ "bold" ]; - }; - "ui.selection" = { - fg = black; - bg = blue; - }; - "ui.selection.primary" = { - modifiers = [ "reversed" ]; - }; - "comment" = { - fg = gray; - }; - "ui.statusline" = { - fg = white; - bg = dark-gray; - }; - "ui.statusline.inactive" = { - fg = dark-gray; - bg = white; - }; - "ui.help" = { - fg = dark-gray; - bg = white; - }; - "ui.cursor" = { - modifiers = [ "reversed" ]; - }; + "ui.menu.selected" = { modifiers = [ "reversed" ]; }; + "ui.linenr" = { fg = gray; bg = dark-gray; }; + "ui.popup" = { modifiers = [ "reversed" ]; }; + "ui.linenr.selected" = { fg = white; bg = black; modifiers = [ "bold" ]; }; + "ui.selection" = { fg = black; bg = blue; }; + "ui.selection.primary" = { modifiers = [ "reversed" ]; }; + "comment" = { fg = gray; }; + "ui.statusline" = { fg = white; bg = dark-gray; }; + "ui.statusline.inactive" = { fg = dark-gray; bg = white; }; + "ui.help" = { fg = dark-gray; bg = white; }; + "ui.cursor" = { modifiers = [ "reversed" ]; }; "variable" = red; "variable.builtin" = orange; "constant.numeric" = orange; "constant" = orange; "attributes" = yellow; "type" = yellow; - "ui.cursor.match" = { - fg = yellow; - modifiers = [ "underlined" ]; - }; + "ui.cursor.match" = { fg = yellow; modifiers = [ "underlined" ]; }; "string" = green; "variable.other.member" = red; "constant.character.escape" = cyan; @@ -165,12 +165,8 @@ "diff.plus" = green; "diff.delta" = yellow; "diff.minus" = red; - "diagnostic" = { - modifiers = [ "underlined" ]; - }; - "ui.gutter" = { - bg = black; - }; + "diagnostic" = { modifiers = [ "underlined" ]; }; + "ui.gutter" = { bg = black; }; "info" = blue; "hint" = dark-gray; "debug" = dark-gray;