idiosyn/home/config/nil/editor.nix

105 lines
2.2 KiB
Nix
Raw Normal View History

2024-11-29 20:43:16 +01:00
{ ... }: { config, lib, pkgs, ... }@args:
let
osConfig = args.osConfig or { };
in {
programs.helix = {
enable = true;
defaultEditor = true;
2024-11-29 20:43:16 +01:00
extraPackages = lib.mkIf (osConfig.hardware.graphics.enable or false)
(with pkgs; [
bash-language-server
clang-tools
cmake-language-server
dot-language-server
elixir-ls
lldb
markdown-oxide
nil
python3Packages.python-lsp-server
taplo
texlab
typescript-language-server
yaml-language-server
]);
2024-10-03 17:40:41 +02:00
catppuccin.useItalics = true;
settings = {
2024-09-28 13:00:07 +02:00
editor = {
rulers = [ 80 120 ];
2024-09-28 13:39:19 +02:00
indent-guides = {
render = true;
character = "";
};
2024-09-28 13:00:07 +02:00
auto-pairs = {
"(" = ")";
"[" = "]";
"{" = "}";
"\"" = "\"";
"'" = "'";
"`" = "`";
2024-09-28 13:00:07 +02:00
"" = "";
"" = "";
"" = "";
"" = "";
};
2024-09-28 13:00:07 +02:00
whitespace = {
render = {
nbsp = "all";
nnbsp = "all";
};
2024-09-28 13:00:07 +02:00
characters = {
nbsp = "";
nnbsp = "";
};
};
};
2024-09-28 13:17:45 +02:00
keys = {
normal = {
minus = "command_mode";
2024-09-28 13:17:45 +02:00
r = "move_char_left";
n = "move_visual_line_down";
t = "move_visual_line_up";
h = "move_char_right";
2024-09-28 13:17:45 +02:00
p = "move_prev_word_start";
w = "move_next_word_start";
l = "move_next_word_end";
P = "move_prev_long_word_start";
W = "move_next_long_word_start";
L = "move_next_long_word_end";
2024-09-28 13:17:45 +02:00
z = "replace";
Z = "replace_with_yanked";
2024-09-28 13:17:45 +02:00
s = "paste_after";
S = "paste_before";
2024-09-28 13:17:45 +02:00
x = "extend_line_below";
X = "extend_to_line_bounds";
A-X = "shrink_to_line_bounds";
2024-09-28 13:17:45 +02:00
e = "change_selection";
A-e = "change_selection_noyank";
2024-09-28 13:17:45 +02:00
N = "join_selections";
A-N = "join_selections_space";
2024-09-28 13:17:45 +02:00
";" = "search_next";
":" = "search_prev";
};
insert = {
"C-i" = "smart_tab";
"C-S-i" = "insert_tab";
};
};
};
};
}