dotfiles/.config/helix/config.toml

253 lines
5.7 KiB
TOML

theme = "ashen"
[editor]
line-number = "relative"
undercurl = true
# true-color = true
# Not sure if I should enable this by default...
# maybe it's better to just get used to using the clipboards separately?
# Wouldn't be a bad idea to encorporate two clipboards into my workflow,
# especially for stuff like swapping selections and stuff...
# default-yank-register = '+'
cursorline = true
bufferline = "multiple"
color-modes = true
scrolloff = 2
jump-label-alphabet = "tnseriplfuwydhcxoaqz"
# minimum severity to show
end-of-line-diagnostics = "disable"
# rulers = [120]
[editor.whitespace.render]
tab = "all"
space = "none"
newline = "all"
[editor.whitespace.characters]
newline = ""
tab = ""
# tabpad = "·"
tabpad = " "
[editor.cursor-shape]
insert = "bar"
normal = "block"
# select = "underline"
[editor.statusline]
mode.normal = "NRM"
[editor.lsp]
display-inlay-hints = true
display-messages = true
# TODO: disable auto signature help
# and set a binding for it instead
auto-signature-help = true
[editor.inline-diagnostics]
cursor-line = "disable"
other-lines = "disable"
[editor.indent-guides]
render = true
# character = "|"
skip-levels = 1
[editor.soft-wrap]
enable = true
wrap-indicator = ""
[keys.insert]
C-k = "signature_help"
[keys.normal]
# Treesitter selections
# Left <-> Right: Sibling nodes
# Up <-> Down: Parent/Child nodes
A-S-n= "move_parent_node_end"
A-S-e= "move_parent_node_start"
A-a = "select_all_siblings"
A-m = "select_prev_sibling"
A-n = "shrink_selection"
A-e = "expand_selection"
A-i = "select_next_sibling"
"{" = "rotate_selections_backward"
"}" = "rotate_selections_forward"
"A-{" = "rotate_selection_contents_backward"
"A-}" = "rotate_selection_contents_forward"
C-f = "jump_forward"
a = "append_mode_same_line"
tab = "trim_selections"
C-k = "signature_help"
C-g = [":new", ":insert-output lazygit", ":buffer-close!", ":redraw"]
"\\" = ":format"
"+" = ":reflow"
ret = "goto_word"
m = "move_same_line_char_left"
i = "move_same_line_char_right"
n = "move_visual_line_down"
e = "move_visual_line_up"
h = "insert_mode"
H = "insert_at_line_start"
L = "move_next_long_word_end"
j = ["search_next", "align_view_center"]
J = ["search_prev", "align_view_center"]
N = "join_selections"
A-N = "join_selections_space"
C-q = ":qa"
C-Q = ":qa!"
C-m = "jump_view_left"
M = ":bp"
I = ":bn"
C-n = "jump_view_down"
C-e = "jump_view_up"
C-i = "jump_view_right"
X = "extend_line_above"
# A-x = "toggle_line_select"
D = "kill_to_line_end"
A-d = "kill_to_line_start"
# Sub-word Movement
w = "move_next_word_start"
C-w = "move_next_sub_word_start"
b = "move_prev_word_start"
C-b = "move_prev_sub_word_start"
l = "move_next_word_end"
C-l = "move_next_sub_word_end"
A-l = "move_prev_sub_word_start"
# Navigation
C-d = ["page_cursor_half_down", "align_view_center"]
C-u = ["page_cursor_half_up", "align_view_center"]
[keys.normal."["]
x = "extend_line_above"
[keys.normal.space]
x = ":bc"
# UI settings and stuff
[keys.normal.space.u]
# Toggle Cursor Always Centered
z = ':toggle scrolloff 2 99'
D = ':toggle end-of-line-diagnostics hint disable'
d = ':toggle inline-diagnostics.cursor-line disable hint'
w = ':toggle soft-wrap.enable'
s = ':set soft-wrap.wrap-at-text-width true'
S = ':set soft-wrap.wrap-at-text-width false'
k = ":toggle lsp.auto-signature-help"
h = ':toggle lsp.display-inlay-hints'
[keys.select.g]
m = "extend_to_line_start"
i = "extend_to_line_end"
I = "extend_to_line_end_newline"
l = "goto_file_end"
L = "goto_last_line"
[keys.select]
# Treesitter selections
# Left <-> Right: Sibling nodes
# Up <-> Down: Parent/Child nodes
A-S-n= "move_parent_node_end"
A-S-e= "move_parent_node_start"
A-a = "select_all_siblings"
A-m = "select_prev_sibling"
A-n = "shrink_selection"
A-e = "expand_selection"
A-i = "select_next_sibling"
X = "extend_line_above"
ret = "extend_to_word"
m = "extend_same_line_char_left"
i = "extend_same_line_char_right"
n = "extend_visual_line_down"
e = "extend_visual_line_up"
j = ["extend_search_next", "align_view_center"]
J = ["extend_search_prev", "align_view_center"]
C-l = "extend_next_sub_word_end"
l = "extend_next_word_end"
C-w = "extend_next_sub_word_start"
C-b = "extend_prev_sub_word_start"
L = "extend_next_long_word_end"
A-l = "extend_prev_sub_word_start"
[keys.normal.k]
m = "match_brackets"
k = "match_brackets"
s = "surround_add"
r = "surround_replace"
d = "surround_delete"
a = "select_textobject_around"
i = "select_textobject_inner"
[keys.select.k]
m = "match_brackets"
k = "match_brackets"
s = "surround_add"
r = "surround_replace"
d = "surround_delete"
a = "select_textobject_around"
i = "select_textobject_inner"
# [keys.normal."C-w"]
# m = "jump_view_left"
# C-m = "jump_view_left"
# n = "jump_view_down"
# C-n = "jump_view_down"
# i = "jump_view_right"
# C-i = "jump_view_right"
# e = "jump_view_up"
# C-e = "jump_view_up"
# M = "swap_view_left"
# N = "swap_view_down"
# E = "swap_view_up"
# I = "swap_view_right"
# d = "wclose"
# V = ":vsplit-new"
# S = ":hsplit-new"
# h = "no_op"
# j = "no_op"
# k = "no_op"
# l = "no_op"
# H = "no_op"
# J = "no_op"
# K = "no_op"
# L = "no_op"
# Window Mode
[keys.normal.space.w]
m = "jump_view_left"
C-m = "jump_view_left"
n = "jump_view_down"
C-n = "jump_view_down"
i = "jump_view_right"
C-i = "jump_view_right"
e = "jump_view_up"
C-e = "jump_view_up"
M = "swap_view_left"
N = "swap_view_down"
E = "swap_view_up"
I = "swap_view_right"
d = "wclose"
V = ":vsplit-new"
S = ":hsplit-new"
h = "no_op"
j = "no_op"
k = "no_op"
l = "no_op"
H = "no_op"
J = "no_op"
K = "no_op"
L = "no_op"
[keys.normal.g]
z = "goto_window_center"
m = "goto_first_nonwhitespace"
i = "goto_line_end"
I = "goto_line_end_newline"
n = "move_line_down"
e = "move_line_up"
l = "goto_file_end"
L = "goto_last_line"
[keys.normal.backspace]
d = "delete_selection_noyank"
c = "change_selection_noyank"