Files
dotfiles/.config/helix/config.toml
2025-07-12 14:31:23 +03:00

185 lines
4.4 KiB
TOML

theme = "custom" # monokai_soda, kaolin-valley-dark, material_deep_ocean, carbonfox
[editor]
# no you don't
mouse = false
middle-click-paste = false
scroll-lines = 0
shell = ["fish", "-c"]
line-number = "relative"
cursorline = true
continue-comments = false # annoying
auto-completion = true # TODO: is it annoying?
completion-replace = true # why is it not default
auto-format = true
auto-info = true # TODO: idle-timeout?
# true-color = true
# undercurl = true
rulers = [80, 100]
bufferline = "multiple" # never, always, multiple
color-modes = false # mode indicator color
insert-final-newline = true # POSIX lines finish with \n
popup-border = "all" # popup, menu, all, none
jump-label-alphabet = "tneiouykhsrafwvd"
end-of-line-diagnostics = "hint" # disable, error, warning, info, hint
[editor.inline-diagnostics]
cursor-line = "warning"
other-lines = "error"
prefix-len = 1
max-diagnostics = 5 # 10
[editor.statusline]
mode = { normal = "N", insert = "I", select = "S" }
left = [
"mode",
"spinner",
"version-control",
"file-name",
"read-only-indicator",
"file-modification-indicator",
"file-type",
"file-line-ending",
"file-encoding",
]
right = [
"register",
"diagnostics",
"workspace-diagnostics",
"selections",
"primary-selection-length",
"position",
"position-percentage",
"total-line-numbers",
]
[editor.lsp]
display-progress-messages = true # looks cool
auto-signature-help = true
display-inlay-hints = false # meh
[editor.cursor-shape]
normal = "block"
insert = "bar"
select = "underline"
[editor.file-picker]
hidden = true
[editor.whitespace.render]
tab = "all"
nbsp = "all"
nnbsp = "all"
space = "none"
newline = "none"
[editor.whitespace.characters]
tab = '󰌒'
nbsp = '⍽'
nnbsp = '␣'
space = '🞄'
newline = ''
[editor.indent-guides]
render = true
character = "┆" # "╎", "▏", "┆", "┊", "⸽"
skip-levels = 1
[editor.gutters]
layout = ["diff", "diagnostics", "line-numbers", "spacer"] # TODO: don't like
line-numbers.min-width = 1
[editor.soft-wrap]
enable = true
max-wrap = 20 # increase to reduce forced wrapping
max-indent-retain = 24 # 40
wrap-indicator = "↪"
[keys.insert]
C-space = "signature_help"
S-tab = "move_parent_node_start"
[keys.select]
x = "extend_line"
# a = ["append_mode", "collapse_selection"]
tab = "extend_parent_node_end"
S-tab = "extend_parent_node_start"
";" = ["collapse_selection", "normal_mode"]
V = ["extend_to_line_bounds", "trim_selections"]
D = ["ensure_selections_forward", "extend_to_line_end"]
[keys.normal]
x = "extend_line"
"=" = ":format"
"A-=" = "format_selections"
V = ["extend_to_line_bounds", "trim_selections"]
D = ["ensure_selections_forward", "extend_to_line_end"]
L = "goto_next_buffer"
H = "goto_previous_buffer"
C-space = "signature_help"
tab = "move_parent_node_end"
S-tab = "move_parent_node_start"
# C-q = "wclose"
C-k = "jump_view_up"
C-h = "jump_view_left"
C-j = "jump_view_down"
C-l = "jump_view_right"
A-j = ["extend_to_line_bounds", "delete_selection", "paste_after"]
A-k = [
"extend_to_line_bounds",
"delete_selection",
"move_line_up",
"paste_before",
]
A-J = ["extend_to_line_bounds", "yank", "paste_after"]
A-K = ["extend_to_line_bounds", "yank", "paste_before"]
[keys.normal.space]
'.' = ":config-reload"
e = ":reload"
E = ":reload-all"
q = ":buffer-close"
Q = ":buffer-close-all"
o = ":buffer-close-others"
n = "file_picker_in_current_buffer_directory"
# Toggle
[keys.normal.space.t]
f = ":toggle auto-format"
c = ":toggle cursorline"
w = ":toggle soft-wrap.enable"
n = ":toggle line-number absolute relative"
b = ":toggle bufferline never multiple"
r = ":set-option rulers []"
R = ":set-option rulers [80,100]"
g = ":toggle indent-guides.render"
i = ":toggle lsp.display-inlay-hints"
e = ":toggle end-of-line-diagnostics disable hint"
d = ":toggle inline-diagnostics.other-lines disable error"
D = ":toggle inline-diagnostics.cursor-line disable warning"
z = [ # TODO: not work
":set-option cursorline true",
":set-option rulers [100]",
":set-option soft-wrap.enable false",
":set-option line-number relative",
':set-option gutters.layout ["line-numbers","spacer"]',
":set-option bufferline never",
":set-option indent-guides.render true",
":set-option lsp.display-inlay-hints false",
":set-option end-of-line-diagnostics disable",
":set-option inline-diagnostics.other-lines disable",
":set-option inline-diagnostics.cursor-line disable",
]