2023-09-15 02:03:19 +00:00
|
|
|
{pkgs, ...}: let
|
2023-09-15 17:14:50 +00:00
|
|
|
query = scm:
|
|
|
|
builtins.readFile (pkgs.fetchFromGitea {
|
|
|
|
domain = "git.jojodev.com";
|
|
|
|
owner = "jolheiser";
|
|
|
|
repo = "templ-helix";
|
|
|
|
rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
|
|
|
|
sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
|
|
|
|
}
|
|
|
|
+ "/queries/templ/${scm}.scm");
|
2023-09-15 02:03:19 +00:00
|
|
|
in {
|
2023-06-28 20:48:01 +00:00
|
|
|
programs.helix = {
|
|
|
|
enable = true;
|
|
|
|
defaultEditor = true;
|
|
|
|
settings = {
|
|
|
|
theme = "catppuccin_mocha_transparent";
|
|
|
|
editor = {
|
|
|
|
line-number = "relative";
|
|
|
|
mouse = false;
|
|
|
|
bufferline = "always";
|
|
|
|
color-modes = true;
|
|
|
|
cursor-shape = {
|
|
|
|
insert = "bar";
|
|
|
|
normal = "block";
|
|
|
|
select = "underline";
|
|
|
|
};
|
2023-07-06 19:32:19 +00:00
|
|
|
file-picker = {hidden = false;};
|
2023-06-28 20:48:01 +00:00
|
|
|
indent-guides = {
|
|
|
|
render = true;
|
|
|
|
skip-levels = 1;
|
|
|
|
};
|
2023-07-06 19:32:19 +00:00
|
|
|
soft-wrap = {enable = true;};
|
2023-06-28 20:48:01 +00:00
|
|
|
statusline = {
|
|
|
|
right = [
|
|
|
|
"version-control"
|
|
|
|
"diagnostics"
|
|
|
|
"selections"
|
|
|
|
"position"
|
|
|
|
"file-encoding"
|
|
|
|
];
|
|
|
|
};
|
2023-07-06 19:32:19 +00:00
|
|
|
lsp = {display-messages = true;};
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
keys = {
|
|
|
|
normal = {
|
|
|
|
space = {
|
|
|
|
q = ":quit";
|
|
|
|
Q = ":quit!";
|
|
|
|
w = ":write";
|
|
|
|
W = ":write!";
|
|
|
|
};
|
|
|
|
C-c = ":config-open";
|
|
|
|
C-r = ":config-reload";
|
|
|
|
"C-/" = "toggle_comments";
|
|
|
|
S-right = "goto_next_buffer";
|
|
|
|
S-left = "goto_previous_buffer";
|
|
|
|
C-b = ":buffer-close";
|
2023-07-06 19:32:19 +00:00
|
|
|
C-s = ["select_all" "select_regex"];
|
2023-06-28 20:48:01 +00:00
|
|
|
|
|
|
|
C-j = "shrink_selection";
|
|
|
|
C-k = "expand_selection";
|
|
|
|
C-l = "select_next_sibling";
|
|
|
|
C-a = "select_all";
|
2023-07-06 19:32:19 +00:00
|
|
|
C-u = ["half_page_up" "align_view_center"];
|
|
|
|
C-d = ["half_page_down" "align_view_center"];
|
2023-06-28 20:48:01 +00:00
|
|
|
|
2023-07-06 19:32:19 +00:00
|
|
|
"{" = ["goto_prev_paragraph" "collapse_selection"];
|
|
|
|
"}" = ["goto_next_paragraph" "collapse_selection"];
|
2023-06-28 20:48:01 +00:00
|
|
|
"0" = "goto_line_start";
|
|
|
|
"$" = "goto_line_end";
|
|
|
|
"^" = "goto_first_nonwhitespace";
|
|
|
|
G = "goto_file_end";
|
|
|
|
"%" = "match_brackets";
|
2023-07-06 19:32:19 +00:00
|
|
|
V = ["select_mode" "extend_to_line_bounds"];
|
|
|
|
C = ["collapse_selection" "extend_to_line_end" "change_selection"];
|
|
|
|
D = ["extend_to_line_end" "delete_selection"];
|
2023-06-28 20:48:01 +00:00
|
|
|
S = "surround_add";
|
|
|
|
|
|
|
|
d = {
|
2023-07-06 19:32:19 +00:00
|
|
|
d = ["extend_to_line_bounds" "delete_selection"];
|
|
|
|
t = ["extend_till_char"];
|
|
|
|
s = ["surround_delete"];
|
|
|
|
i = ["select_textobject_inner"];
|
|
|
|
a = ["select_textobject_around"];
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
x = "delete_selection";
|
|
|
|
p = "paste_clipboard_after";
|
|
|
|
P = "paste_clipboard_before";
|
|
|
|
y = [
|
|
|
|
"yank_main_selection_to_clipboard"
|
|
|
|
"normal_mode"
|
|
|
|
"flip_selections"
|
|
|
|
"collapse_selection"
|
|
|
|
];
|
|
|
|
Y = [
|
|
|
|
"extend_to_line_bounds"
|
|
|
|
"yank_main_selection_to_clipboard"
|
|
|
|
"goto_line_start"
|
|
|
|
"collapse_selection"
|
|
|
|
];
|
|
|
|
|
2023-07-06 19:32:19 +00:00
|
|
|
w = ["move_next_word_start" "move_char_right" "collapse_selection"];
|
|
|
|
e = ["move_next_word_end" "collapse_selection"];
|
|
|
|
b = ["move_prev_word_start" "collapse_selection"];
|
2023-06-28 20:48:01 +00:00
|
|
|
|
2023-07-06 19:32:19 +00:00
|
|
|
i = ["insert_mode" "collapse_selection"];
|
|
|
|
a = ["append_mode" "collapse_selection"];
|
2023-06-28 20:48:01 +00:00
|
|
|
|
2023-07-06 19:32:19 +00:00
|
|
|
esc = ["collapse_selection" "keep_primary_selection"];
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
2023-07-06 19:32:19 +00:00
|
|
|
insert = {esc = ["collapse_selection" "normal_mode"];};
|
2023-06-28 20:48:01 +00:00
|
|
|
select = {
|
|
|
|
space = {
|
|
|
|
j = {
|
|
|
|
e = ":pipe jq";
|
|
|
|
c = ":pipe jq -c";
|
|
|
|
};
|
|
|
|
};
|
2023-07-06 19:32:19 +00:00
|
|
|
"{" = ["extend_to_line_bounds" "goto_prev_paragraph"];
|
|
|
|
"}" = ["extend_to_line_bounds" "goto_next_paragraph"];
|
2023-06-28 20:48:01 +00:00
|
|
|
"0" = "goto_line_start";
|
|
|
|
"$" = "goto_line_end";
|
|
|
|
"^" = "goto_first_nonwhitespace";
|
|
|
|
G = "goto_file_end";
|
2023-07-06 19:32:19 +00:00
|
|
|
D = ["extend_to_line_bounds" "delete_selection" "normal_mode"];
|
|
|
|
C = ["goto_line_start" "extend_to_line_bounds" "change_selection"];
|
2023-06-28 20:48:01 +00:00
|
|
|
"%" = "match_brackets";
|
|
|
|
S = "surround_add";
|
|
|
|
|
|
|
|
i = "select_textobject_inner";
|
|
|
|
a = "select_textobject_around";
|
|
|
|
|
2023-07-06 19:32:19 +00:00
|
|
|
tab = ["insert_mode" "collapse_selection"];
|
|
|
|
C-a = ["append_mode" "collapse_selection"];
|
2023-06-28 20:48:01 +00:00
|
|
|
|
2023-07-06 19:32:19 +00:00
|
|
|
k = ["extend_line_up" "extend_to_line_bounds"];
|
|
|
|
j = ["extend_line_down" "extend_to_line_bounds"];
|
2023-06-28 20:48:01 +00:00
|
|
|
|
2023-07-06 19:32:19 +00:00
|
|
|
d = ["yank_main_selection_to_clipboard" "delete_selection"];
|
|
|
|
x = ["yank_main_selection_to_clipboard" "delete_selection"];
|
2023-06-28 20:48:01 +00:00
|
|
|
y = [
|
|
|
|
"yank_main_selection_to_clipboard"
|
|
|
|
"normal_mode"
|
|
|
|
"flip_selections"
|
|
|
|
"collapse_selection"
|
|
|
|
];
|
|
|
|
Y = [
|
|
|
|
"extend_to_line_bounds"
|
|
|
|
"yank_main_selection_to_clipboard"
|
|
|
|
"goto_line_start"
|
|
|
|
"collapse_selection"
|
|
|
|
"normal_mode"
|
|
|
|
];
|
|
|
|
p = "replace_selections_with_clipboard";
|
|
|
|
P = "paste_clipboard_before";
|
|
|
|
|
2023-07-06 19:32:19 +00:00
|
|
|
esc = ["collapse_selection" "keep_primary_selection" "normal_mode"];
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
languages = {
|
|
|
|
language = [
|
|
|
|
{
|
2023-08-20 03:30:34 +00:00
|
|
|
name = "go";
|
2023-06-28 20:48:01 +00:00
|
|
|
formatter = {
|
2023-08-20 03:30:34 +00:00
|
|
|
command = "gofumpt";
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
2023-08-20 03:30:34 +00:00
|
|
|
name = "lua";
|
2023-06-28 20:48:01 +00:00
|
|
|
formatter = {
|
2023-08-20 03:30:34 +00:00
|
|
|
command = "luafmt";
|
|
|
|
args = ["--stdin"];
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "python";
|
|
|
|
auto-format = true;
|
|
|
|
formatter = {
|
|
|
|
command = "black";
|
2023-07-06 19:32:19 +00:00
|
|
|
args = ["--quiet" "-"];
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "nix";
|
|
|
|
auto-format = true;
|
|
|
|
formatter = {
|
2023-07-06 19:32:19 +00:00
|
|
|
command = "alejandra";
|
|
|
|
args = ["-qq"];
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
}
|
2023-09-15 02:03:19 +00:00
|
|
|
{
|
|
|
|
name = "templ";
|
|
|
|
auto-format = true;
|
|
|
|
scope = "source.templ";
|
|
|
|
injection-regex = "templ";
|
|
|
|
file-types = ["templ"];
|
|
|
|
roots = ["go.mod"];
|
|
|
|
comment-token = "//";
|
|
|
|
language-server = {
|
|
|
|
command = "templ";
|
|
|
|
args = ["lsp"];
|
|
|
|
};
|
|
|
|
formatter = {
|
|
|
|
command = "templ";
|
|
|
|
args = ["fmt"];
|
|
|
|
};
|
|
|
|
}
|
|
|
|
];
|
|
|
|
grammar = [
|
|
|
|
{
|
|
|
|
name = "templ";
|
|
|
|
source = {
|
|
|
|
git = "https://github.com/vrischmann/tree-sitter-templ";
|
|
|
|
rev = "9f63037ad08a58050d0582ef1ae0009bd0fbf2f1";
|
|
|
|
};
|
|
|
|
}
|
2023-06-28 20:48:01 +00:00
|
|
|
];
|
|
|
|
};
|
|
|
|
themes = {
|
|
|
|
catppuccin_frappe_transparent = {
|
|
|
|
inherits = "catppuccin_frappe";
|
2023-07-06 19:32:19 +00:00
|
|
|
"ui.background" = {};
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
catppuccin_latte_transparent = {
|
|
|
|
inherits = "catppuccin_latte";
|
2023-07-06 19:32:19 +00:00
|
|
|
"ui.background" = {};
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
catppuccin_macchiato_transparent = {
|
|
|
|
inherits = "catppuccin_macchiato";
|
2023-07-06 19:32:19 +00:00
|
|
|
"ui.background" = {};
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
catppuccin_mocha_transparent = {
|
|
|
|
inherits = "catppuccin_mocha";
|
2023-07-06 19:32:19 +00:00
|
|
|
"ui.background" = {};
|
2023-06-28 20:48:01 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2023-09-15 02:03:19 +00:00
|
|
|
xdg.configFile = {
|
|
|
|
"helix/runtime/queries/templ/highlights.scm".text = query "highlights";
|
|
|
|
"helix/runtime/queries/templ/indents.scm".text = query "indents";
|
|
|
|
"helix/runtime/queries/templ/injections.scm".text = query "injections";
|
|
|
|
"helix/runtime/queries/templ/structure.scm".text = query "structure";
|
|
|
|
};
|
2023-06-28 20:48:01 +00:00
|
|
|
}
|