146 lines
5.4 KiB
Nix
146 lines
5.4 KiB
Nix
{ pkgs, config, lib, ...}:
|
|
{
|
|
options.speccon18.hm.helix.enable = lib.mkEnableOption "enables specs custom helix configuration";
|
|
config = lib.mkIf config.speccon18.hm.helix.enable {
|
|
home.packages = with pkgs; [
|
|
nodePackages_latest.yaml-language-server
|
|
nodePackages_latest.bash-language-server
|
|
nodePackages_latest.vscode-langservers-extracted
|
|
nodePackages_latest.dockerfile-language-server-nodejs
|
|
nodePackages_latest.typescript
|
|
nodePackages_latest.typescript-language-server
|
|
nodePackages_latest.svelte-language-server
|
|
nodePackages_latest.vls
|
|
python311Packages.python-lsp-server
|
|
# rnix-lsp is archived need to update to fix CVE-2024-27297
|
|
rust-analyzer
|
|
taplo
|
|
];
|
|
programs.helix = {
|
|
enable = true;
|
|
settings = {
|
|
theme = "monokai_pro_octagon";
|
|
editor = {
|
|
line-number = "relative";
|
|
shell = ["zsh" "-c"];
|
|
completion-trigger-len = 0;
|
|
scroll-lines = 1;
|
|
scrolloff = 5;
|
|
cursorline = true;
|
|
cursor-shape = {
|
|
normal = "block";
|
|
insert = "bar";
|
|
select = "underline";
|
|
};
|
|
color-modes = true;
|
|
indent-guides.render = true;
|
|
file-picker.hidden = false;
|
|
auto-pairs = true;
|
|
lsp = {
|
|
enable = true;
|
|
display-messages = true;
|
|
auto-signature-help = true;
|
|
display-signature-help-docs = true;
|
|
snippets = true;
|
|
goto-reference-include-declaration = true;
|
|
};
|
|
statusline = {
|
|
mode = {
|
|
normal = "NORMAL";
|
|
insert = "INSERT";
|
|
select = "SELECT";
|
|
};
|
|
left = [ "mode" "separator" "spinner" "separator" "file-name" ];
|
|
right = [ "diagnostics" "position" "file-encoding" ];
|
|
};
|
|
};
|
|
|
|
};
|
|
themes = {
|
|
monokai_pro_octagon = let
|
|
red = "#ff657a";
|
|
orange = "#ff9b5e";
|
|
yellow = "#ffd76d";
|
|
green = "#bad761";
|
|
blue = "#9cd1bb";
|
|
purple = "#c39ac9";
|
|
base0 = "#161821";
|
|
base1 = "#1e1f2b";
|
|
base2 = "#282a3a";
|
|
base3 = "#3a3d4b";
|
|
base4 = "#535763";
|
|
base5 = "#696d77";
|
|
base6 = "#767b81";
|
|
base7 = "#b2b9bd";
|
|
base8 = "#eaf2f1";
|
|
base8x0c = "#303342";
|
|
in {
|
|
"ui.linenr.selected" = { bg = base3; };
|
|
"ui.text.focus" = { fg = yellow; modifiers = ["bold"]; };
|
|
"ui.menu" = { fg = base8; bg = base3; };
|
|
"ui.menu.selected" = { fg = base2; bg = yellow; };
|
|
"ui.virtual.whitespace" = base5;
|
|
"ui.virtual.ruler" = { bg = base1; };
|
|
"info" = base8;
|
|
"hint" = base8;
|
|
"ui.background" = {};
|
|
"ui.statusline.inactive" = { fg = base8; bg = base8x0c; };
|
|
"ui.statusline" = { fg = base8; bg = base4; };
|
|
"ui.statusline.normal" = { fg = base4; bg = blue; };
|
|
"ui.statusline.insert" = { fg = base4; bg = green; };
|
|
"ui.statusline.select" = { fg = base4; bg = purple; };
|
|
"ui.popup" = { bg = base3; };
|
|
"ui.window" = { bg = base3; };
|
|
"ui.help" = { fg = base8; bg = base3; };
|
|
"ui.selection" = { bg = base4; };
|
|
"ui.cursor.match" = { bg = base4; };
|
|
"ui.cursorline" = { bg = base1; };
|
|
"comment" = { fg = base5; modifiers = ["italic"]; };
|
|
"ui.linenr" = { fg = base5; };
|
|
"ui.cursor.primary" = { fg = base7; modifiers = ["reversed"]; };
|
|
"attribute" = blue;
|
|
"variable" = base8;
|
|
"constant" = orange;
|
|
"variable.builtin" = red;
|
|
"constant.builtin" = red;
|
|
"namespace" = base8;
|
|
"ui.text" = { fg = base8; };
|
|
"punctuation" = base6;
|
|
"type" = green;
|
|
"type.builtin" = { fg = red; };
|
|
"label" = base8;
|
|
"constructor" = blue;
|
|
"function" = green;
|
|
"function.macro" = { fg = blue; };
|
|
"function.builtin" = { fg = "cyan"; };
|
|
"operator" = red;
|
|
"variable.other.member" = base8;
|
|
"keyword" = { fg = red; };
|
|
"keyword.directive" = blue;
|
|
"variable.parameter" = "#f59762";
|
|
"error" = red;
|
|
"special" = "#f59762";
|
|
"module" = "#f59762";
|
|
"warning" = "orange";
|
|
"constant.character.escape" = { fg = base8; };
|
|
"string" = yellow;
|
|
"constant.numeric" = purple;
|
|
"diff.plus" = green;
|
|
"diff.delta" = "orange";
|
|
"diff.minus" = red;
|
|
"diagnostic.warning" = { underline = { color = "orange"; style = "curl"; }; };
|
|
"diagnostic.error" = { underline = { color = red; style = "curl"; }; };
|
|
"diagnostic.info" = { underline = { color = base8; style = "curl"; }; };
|
|
"diagnostic.hint" = { underline = { color = base8; style = "curl"; }; };
|
|
"markup.heading" = green;
|
|
"markup.bold" = { fg = "orange"; modifiers = ["bold"]; };
|
|
"markup.italic" = { fg = "orange"; modifiers = ["italic"]; };
|
|
"markup.strikethrough" = { modifiers = ["crossed_out"]; };
|
|
"markup.link.url" = { fg = "orange"; modifiers = ["underlined"]; };
|
|
"markup.link.text" = yellow;
|
|
"markup.quote" = green;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|