203 lines
5.4 KiB
Nix
203 lines
5.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
palette-hex = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.palette;
|
|
palette-shex = pkgs.lib.nix-rice.palette.toRGBShortHex pkgs.rice.palette;
|
|
in {
|
|
config.programs.helix = {
|
|
enable = true;
|
|
themes = with palette-hex; {
|
|
nix-rice = {
|
|
"attribute" = bright.cyan;
|
|
"keyword" = {fg = normal.red;};
|
|
"keyword.directive" = normal.red;
|
|
"namespace" = bright.cyan;
|
|
"punctuation" = bright.yellow;
|
|
"punctuation.delimiter" = bright.yellow;
|
|
"operator" = bright.magenta;
|
|
"special" = normal.magenta;
|
|
"variable.other.member" = bright.blue;
|
|
"variable" = util.fg;
|
|
"variable.builtin" = bright.yellow;
|
|
"variable.parameter" = bright.white;
|
|
"type" = normal.yellow;
|
|
"type.builtin" = normal.yellow;
|
|
"constructor" = {
|
|
fg = bright.magenta;
|
|
modifiers = ["bold"];
|
|
};
|
|
"function" = {
|
|
fg = normal.green;
|
|
modifiers = ["bold"];
|
|
};
|
|
"function.macro" = bright.cyan;
|
|
"function.builtin" = normal.yellow;
|
|
"tag" = normal.red;
|
|
"comment" = {
|
|
fg = normal.magenta;
|
|
modifiers = ["italic"];
|
|
};
|
|
"constant" = {fg = bright.magenta;};
|
|
"constant.builtin" = {
|
|
fg = bright.magenta;
|
|
modifiers = ["bold"];
|
|
};
|
|
"string" = normal.green;
|
|
"constant.numeric" = bright.magenta;
|
|
"constant.character.escape" = {
|
|
fg = bright.white;
|
|
modifiers = ["bold"];
|
|
};
|
|
"label" = bright.cyan;
|
|
"module" = bright.cyan;
|
|
"diff.plus" = bright.green;
|
|
"diff.delta" = bright.yellow;
|
|
"diff.minus" = bright.red;
|
|
"warning" = bright.yellow;
|
|
"error" = bright.red;
|
|
"info" = bright.cyan;
|
|
"hint" = bright.blue;
|
|
"ui.background" = {bg = util.bg;};
|
|
"ui.linenr" = {fg = normal.cyan;};
|
|
"ui.linenr.selected" = {
|
|
fg = normal.yellow;
|
|
modifiers = ["bold"];
|
|
};
|
|
"ui.cursorline" = {bg = normal.black;};
|
|
"ui.statusline" = {
|
|
fg = util.fg;
|
|
bg = bright.black;
|
|
};
|
|
"ui.statusline.normal" = {
|
|
fg = util.fg;
|
|
bg = bright.black;
|
|
};
|
|
"ui.statusline.insert" = {
|
|
fg = util.fg;
|
|
bg = normal.blue;
|
|
};
|
|
"ui.statusline.select" = {
|
|
fg = util.fg;
|
|
bg = bright.yellow;
|
|
};
|
|
"ui.statusline.inactive" = {
|
|
fg = normal.white;
|
|
bg = normal.black;
|
|
};
|
|
"ui.popup" = {bg = normal.black;};
|
|
"ui.window" = {bg = normal.black;};
|
|
"ui.help" = {
|
|
bg = normal.black;
|
|
fg = util.fg;
|
|
};
|
|
"ui.text" = {fg = util.fg;};
|
|
"ui.text.focus" = {fg = util.fg;};
|
|
"ui.selection" = {
|
|
# modifiers = ["reversed"];
|
|
bg = bright.yellow;
|
|
};
|
|
"ui.selection.primary" = {modifiers = ["reversed"];};
|
|
# "ui.selection.primary" = { bg = bright.cyan; };
|
|
"ui.cursor.primary" = {
|
|
bg = normal.white;
|
|
fg = normal.black;
|
|
};
|
|
"ui.cursor.match" = {bg = bright.cyan;};
|
|
"ui.menu" = {
|
|
fg = util.fg;
|
|
bg = bright.black;
|
|
};
|
|
"ui.menu.selected" = {
|
|
fg = bright.black;
|
|
bg = bright.blue;
|
|
modifiers = ["bold"];
|
|
};
|
|
"ui.virtual.whitespace" = bright.black;
|
|
"ui.virtual.ruler" = {bg = normal.black;};
|
|
"ui.virtual.inlay-hint" = {fg = normal.magenta;};
|
|
"diagnostic.warning" = {
|
|
underline = {
|
|
color = bright.yellow;
|
|
style = "curl";
|
|
};
|
|
};
|
|
"diagnostic.error" = {
|
|
underline = {
|
|
color = bright.red;
|
|
style = "curl";
|
|
};
|
|
};
|
|
"diagnostic.info" = {
|
|
underline = {
|
|
color = bright.cyan;
|
|
style = "curl";
|
|
};
|
|
};
|
|
"diagnostic.hint" = {
|
|
underline = {
|
|
color = bright.blue;
|
|
style = "curl";
|
|
};
|
|
};
|
|
"markup.heading" = bright.cyan;
|
|
"markup.bold" = {modifiers = ["bold"];};
|
|
"markup.italic" = {modifiers = ["italic"];};
|
|
"markup.strikethrough" = {modifiers = ["crossed_out"];};
|
|
"markup.link.url" = {
|
|
fg = bright.green;
|
|
modifiers = ["underlined"];
|
|
};
|
|
"markup.link.text" = bright.red;
|
|
"markup.raw" = bright.red;
|
|
};
|
|
};
|
|
|
|
settings = {
|
|
theme = "nix-rice";
|
|
editor.lsp.display-messages = true;
|
|
};
|
|
|
|
languages = {
|
|
language = [
|
|
{
|
|
name = "rust";
|
|
language-servers = ["rust-analyzer"];
|
|
}
|
|
{
|
|
name = "nix";
|
|
language-servers = ["nixd"];
|
|
file-types = ["nix"];
|
|
auto-format = true;
|
|
formatter = {
|
|
command = "alejandra";
|
|
};
|
|
}
|
|
];
|
|
|
|
language-server = {
|
|
nixd = {
|
|
command = "nixd";
|
|
};
|
|
|
|
rust-analyzer = {
|
|
config = {
|
|
cargo = {
|
|
buildScripts = {
|
|
enable = true;
|
|
};
|
|
};
|
|
procMacro = {
|
|
enable = true;
|
|
};
|
|
check = {
|
|
command = "clippy";
|
|
};
|
|
};
|
|
};
|
|
}; #language-server
|
|
}; #languages
|
|
}; #helix config
|
|
}
|