{
programs.helix = {
enable = true;
settings = {
theme = "my";
editor = {
mouse = false;
trim-trailing-whitespace = true;
end-of-line-diagnostics = "hint";
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
indent-guides.enable = true;
inline-diagnostics.cursor-line = "hint";
gutters = [ "diagnostics" "spacer" ];
statusline.right = [ "diagnostics" "register" "position" ];
};
keys = let
common = {
g.o = "jump_backward";
g.O = "jump_forward";
# toggle gh and gs
g.h = "goto_first_nonwhitespace";
g.s = "goto_line_start";
};
in {
normal = common // {
"C-z" = [ ":write-all" "suspend" ];
};
select = common // { };
};
};
themes.my = let
green = "#07d101";
blue = "#00bfff";
cream = "#edf0e0";
pink = "#f584c6";
red = "#f85624";
dustypink = "#d8916e";
navy = "#0047ab";
gray = "#c0c0c0";
greenyellow = "#adff2f";
electriclime = "#ccff00";
darkgreen = "#228b22";
lightpink = "#ffb7c5";
gold = "#ffd700";
white = "#ffffff";
none = "none";
in rec {
inherits = "nvim-dark";
"ui.background" = none;
type = { fg = blue; modifiers = [ "bold" ]; };
"type.builtin" = type;
"type.enum.variant" = { fg = pink; };
constructor = type;
constant = pink;
"constant.builtin" = blue;
"constant.character" = lightpink;
"constant.character.escape" = pink;
"constant.numeric" = gold;
string = lightpink;
"string.regexp" = pink;
"string.special" = { fg = pink; underline.style = "line"; };
comment = gray;
variable = electriclime;
"variable.parameter" = { fg = variable; modifiers = [ "italic" ]; };
"variable.builtin" = blue;
"variable.other.member" = { fg = greenyellow; modifiers = [ "bold" ]; };
label = { fg = green; modifiers = [ "bold" ]; };
punctuation = cream;
keyword = { fg = white; modifiers = [ "bold" ]; };
operator = cream;
function = gold;
"function.builtin" = blue;
namespace = blue;
special = keyword;
error = red;
"markup.header" = variable;
"markup.header.marker" = keyword;
"markup.list" = { fg = variable; modifiers = [ "bold" ]; };
"markup.link.url" = pink;
"markup.link.text" = variable;
"markup.link.label" = label;
};
};
}