Files
dotfiles/.config/helix/config.toml
2025-06-30 18:25:32 +03:00

132 lines
2.8 KiB
TOML

theme = "ao"
[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 = "none" # 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",
"total-line-numbers",
]
[editor.lsp]
display-progress-messages = true # looks cool
display-inlay-hints = true # feels good
[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 = 0
[editor.soft-wrap]
enable = true
max-wrap = 20 # increase to reduce forced wrapping
max-indent-retain = 0 # 40
wrap-indicator = "↪"
[keys.insert]
S-tab = "move_parent_node_start"
[keys.select]
tab = "extend_parent_node_end"
S-tab = "extend_parent_node_start"
[keys.normal]
tab = "move_parent_node_end"
S-tab = "move_parent_node_start"
"=" = ":format"
"A-=" = "format_selections"
D = ["extend_to_line_end", "delete_selection"]
C-k = "jump_view_up"
C-h = "jump_view_left"
C-j = "jump_view_down"
C-l = "jump_view_right"
L = "goto_next_buffer"
H = "goto_previous_buffer"
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."+"]
c = ":config-reload"