254 lines
6.4 KiB
TOML
254 lines
6.4 KiB
TOML
theme = "custom" # monokai_soda, kaolin-valley-dark, material_deep_ocean, carbonfox
|
|
|
|
[editor]
|
|
# mouse = false
|
|
# middle-click-paste = false
|
|
# scroll-lines = 0
|
|
|
|
shell = ["fish", "-c"]
|
|
line-number = "relative"
|
|
cursorline = true
|
|
continue-comments = true # doc comments
|
|
auto-completion = true
|
|
completion-replace = false # STOP deleting stuff
|
|
auto-format = true
|
|
auto-info = true # TODO: idle-timeout?
|
|
# true-color = true
|
|
# undercurl = true
|
|
# terminal-background-color = 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",
|
|
"file-name",
|
|
"read-only-indicator",
|
|
"file-modification-indicator",
|
|
"file-type",
|
|
"file-line-ending",
|
|
"file-encoding",
|
|
]
|
|
right = [
|
|
"spinner",
|
|
"spacer",
|
|
"diagnostics",
|
|
"workspace-diagnostics",
|
|
"version-control",
|
|
"register",
|
|
"selections",
|
|
"primary-selection-length",
|
|
"position",
|
|
"position-percentage",
|
|
"total-line-numbers",
|
|
]
|
|
|
|
[editor.lsp]
|
|
display-progress-messages = true # looks cool
|
|
auto-signature-help = false
|
|
# auto-document-highlight = false
|
|
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]
|
|
tab = "completion"
|
|
S-tab = "insert_tab"
|
|
# A-tab = "move_parent_node_end"
|
|
C-space = "signature_help"
|
|
C-backspace = "delete_word_backward"
|
|
|
|
A-o = "open_below"
|
|
A-O = "open_above"
|
|
A-e = "move_parent_node_end"
|
|
A-b = "move_parent_node_start"
|
|
|
|
C-p = [
|
|
':insert-output set p (wl-paste -t text/html 2>/dev/null); and printf "%%s" "$p" | html2text -b0 | head -c -1; or wl-paste --no-newline 2>/dev/null',
|
|
"append_mode",
|
|
"collapse_selection",
|
|
]
|
|
|
|
|
|
[keys.select]
|
|
";" = ["collapse_selection", "normal_mode"]
|
|
# a = ["collapse_selection", "append_mode"]
|
|
|
|
X = "extend_line_above"
|
|
# V = ["extend_to_line_bounds", "trim_selections"]
|
|
D = ["ensure_selections_forward", "extend_to_line_end"]
|
|
V = [
|
|
"save_selection",
|
|
"collapse_selection",
|
|
"normal_mode",
|
|
"goto_line_start",
|
|
"extend_to_line_end_newline",
|
|
"delete_selection",
|
|
"jump_backward",
|
|
"select_mode",
|
|
]
|
|
|
|
C-y = "yank_joined"
|
|
C-space = "signature_help"
|
|
C-backspace = "delete_word_backward"
|
|
|
|
tab = "expand_selection"
|
|
S-tab = "shrink_selection"
|
|
# A-tab = "insert_tab"
|
|
# tab = "extend_parent_node_end"
|
|
# S-tab = "extend_parent_node_start"
|
|
|
|
L = "goto_next_buffer"
|
|
H = "goto_previous_buffer"
|
|
C-l = "@:e<space><C-r>%<ret>:bc<ret>:<up><up><ret>" # move buffer to the end
|
|
C-g = ":reset-diff-change"
|
|
|
|
C-p = ':insert-output set p (wl-paste -t text/html 2>/dev/null); and printf "%%s" "$p" | html2text -b0; or wl-paste --no-newline 2>/dev/null'
|
|
|
|
# C-k = "jump_view_up"
|
|
# C-h = "jump_view_left"
|
|
# C-j = "jump_view_down"
|
|
# C-l = "jump_view_right"
|
|
|
|
|
|
[keys.normal]
|
|
"=" = ":format"
|
|
"A-=" = "format_selections"
|
|
# a = ["collapse_selection", "append_mode"]
|
|
|
|
X = "extend_line_above"
|
|
# V = ["extend_to_line_bounds", "trim_selections"]
|
|
D = ["ensure_selections_forward", "extend_to_line_end"]
|
|
V = ["goto_line_start", "extend_to_line_end_newline", "delete_selection"]
|
|
|
|
C-y = "yank_joined"
|
|
C-space = "signature_help"
|
|
|
|
tab = "expand_selection"
|
|
S-tab = "shrink_selection"
|
|
# A-tab = "insert_tab"
|
|
# tab = "move_parent_node_end"
|
|
# S-tab = "move_parent_node_start"
|
|
|
|
L = "goto_next_buffer"
|
|
H = "goto_previous_buffer"
|
|
C-l = "@:e<space><C-r>%<ret>:bc<ret>:<up><up><ret>" # move buffer to the end
|
|
C-g = ":reset-diff-change"
|
|
|
|
C-p = ':insert-output set p (wl-paste -t text/html 2>/dev/null); and printf "%%s" "$p" | html2text -b0; or wl-paste --no-newline 2>/dev/null'
|
|
|
|
# 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 = [
|
|
"save_selection",
|
|
"extend_to_line_bounds",
|
|
"yank",
|
|
"paste_before",
|
|
"jump_backward",
|
|
]
|
|
|
|
[keys.normal.space]
|
|
'.' = ":config-reload"
|
|
i = ":reload"
|
|
I = ":reload-all"
|
|
q = ":buffer-close"
|
|
Q = ":buffer-close-all"
|
|
o = ":buffer-close-others"
|
|
n = "file_picker_in_current_buffer_directory"
|
|
ret = "insert_newline"
|
|
|
|
# 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 = ":toggle rulers [] [80,100]"
|
|
g = ":toggle indent-guides.render"
|
|
e = ":toggle end-of-line-diagnostics disable hint"
|
|
d = ":toggle inline-diagnostics.cursor-line disable warning"
|
|
D = ":toggle inline-diagnostics.other-lines disable error"
|
|
s = ":toggle lsp.auto-signature-help"
|
|
h = ":toggle lsp.auto-document-highlight"
|
|
i = ":toggle lsp.display-inlay-hints"
|
|
l = ":lsp-stop"
|
|
L = ":lsp-restart"
|
|
A-l = ":run-shell-command systemctl --user restart lspmux.service"
|
|
|
|
# t = [":toggle cursorline", ":toggle line-number absolute relative"]
|
|
# https://github.com/helix-editor/helix/issues/13187
|
|
# t = [ # 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",
|
|
# ]
|