home/dotfiles/kakrc

147 lines
4.0 KiB
Plaintext
Raw Normal View History

2024-06-12 22:09:20 +02:00
add-highlighter global/show-ws show-whitespaces -tabpad ' '
2023-10-12 22:51:18 +02:00
2024-06-12 22:09:20 +02:00
face global Whitespace rgb:3c3836+f
2023-10-12 22:51:18 +02:00
add-highlighter global/ show-matching
set global indentwidth 4
hook global WinSetOption filetype=(verilog|nix|vhdl) %{
set buffer tabstop 2
set buffer indentwidth 2
}
2023-11-12 12:43:16 +01:00
set-option global ignored_files "^(\..*|.*\.(o|so|a)|__pycache__)$"
2023-10-12 22:51:18 +02:00
## == keybinds ==
map global normal 'J' "Jx"
map global normal 'K' "Kx"
# tabs
map global insert '<tab>' '<a-;><a-gt>'
map global insert '<s-tab>' '<a-;><a-lt>'
define-command W w
# Commenting
map global normal '#' ':comment-line<ret>'
map global user '#' ':comment-block<ret>' -docstring 'Block comment'
# Clipboard commands
map global normal '<a-y>' '|pbcopy<ret>u:echo "Copied text to clipboard"<ret>'
map global normal '<c-v>' '!pbpaste<ret>'
# Buffer user mode
map global user 'b' ':enter-user-mode buffers<ret>' -docstring 'buffer mode'
map global user 'B' ':enter-user-mode -lock buffers<ret>' -docstring 'buffer mode (lock)'
## == plugin configuration ==
# Custom function surround
define-command -hidden surround-function %{
prompt 'function: ' %{
execute-keys "<a-:><a-;>Z;ha%val{text}(<esc><a-;>L<a-z>ua)<esc>"
}
}
define-command -hidden surround-tag %{
prompt 'tag: ' %{
execute-keys "<a-:><a-;>Z;ha<lt>%val{text}<gt><esc><a-;>L<a-z>ua<lt>/%val{text}<gt><esc>"
}
}
define-command -hidden surround-Tag %{
prompt 'tag: ' %{
execute-keys "xZ<a-:><a-;>gih<a-h>yz<gt>xZO<c-r>""<lt>%val{text}<gt><esc>zo<c-r>""<lt>%val{text}<gt><esc>z"
}
}
2023-11-12 12:43:16 +01:00
define-command -hidden surround-space %{
execute-keys "i <esc>Ha <esc>"
2023-10-12 22:51:18 +02:00
}
map global mirror 'f' ':surround-function<ret>' -docstring 'function'
2023-11-12 12:43:16 +01:00
map global mirror 't' ':surround-tag<ret>mjau' -docstring 'tag'
map global mirror 'T' ':surround-Tag<ret>' -docstring 'tag, break line'
map global mirror ' ' ':surround-space<ret>' -docstring 'spaces'
2023-10-12 22:51:18 +02:00
map global normal ö ':enter-user-mode mirror<ret>' -docstring 'mirror mode'
# LSP stuff
map global normal 'Å' ':lsp-enable<ret>' -docstring 'Enable LSP'
map global normal 'å' ':enter-user-mode lsp<ret>' -docstring 'LSP mode'
map global lsp 'R' ':lsp-rename-prompt<ret>' -docstring 'Rename symbol'
define-command lsp-clear-references %{
set-option window lsp_references # empty
}
map global lsp '"' ':lsp-clear-references<ret>' -docstring "Clear references"
face global Reference white,rgb:550055
face global ReferenceBind white,rgb:552200
2023-12-11 20:06:17 +01:00
2023-12-21 14:16:29 +01:00
2023-10-12 22:51:18 +02:00
#TODO
# map global user '&' ':qhl-word<ret>' -docstring "Highlight current word"
# map global user '"' ':unqhl<ret>' -docstring "Remove highlight"
## == Colors ==
2023-11-12 12:43:16 +01:00
## Highlight whitespace at end of line
add-highlighter global/ regex '^.*[^ ]( +)$' 1:black,red
add-highlighter global/ number-lines -relative -hlcursor
2023-10-12 22:51:18 +02:00
define-command update-cursor-style %{
evaluate-commands %sh{
if [ $(echo "$kak_selection" | wc -c) -eq 2 ] ; then
echo 'face buffer PrimaryCursor white,+uiF'
else
echo 'face buffer PrimaryCursor white,rgb:b05fde+uiF'
fi
}
}
hook global NormalKey .* %{
update-cursor-style
}
hook global WinCreate .* %{
update-cursor-style
}
2024-06-04 16:17:28 +02:00
face global Default ,default
face global StatusLine ,default
face global BufferPadding ,default
2023-10-12 22:51:18 +02:00
face global PrimaryCursorEol PrimaryCursor
face global SecondaryCursorEol SecondaryCursor
face global operator blue
face global type rgb:aa66ee+b
2024-03-23 20:28:38 +01:00
face global comment rgb:928374+f # gruvbox-dark inverts the comments which looks bad
2023-10-12 22:51:18 +02:00
face global MenuBackground rgb:eecc44+i
face global MenuForeground blue+bi
face global Information rgb:44ccee+b
face global MatchingChar ,rgb:665c54+bF
2024-06-12 22:09:20 +02:00
# for LSP
face global DiagnosticInfo DiagnosticError
2024-05-17 21:23:47 +02:00
2023-10-12 22:51:18 +02:00
## Filetype formatting
hook global BufSetOption filetype=rust %{
set-option buffer formatcmd 'rustfmt'
hook buffer -group rust-inlay-hints BufReload .* rust-analyzer-inlay-hints
hook buffer -group rust-inlay-hints NormalIdle .* rust-analyzer-inlay-hints
}
hook global WinSetOption filetype=python %{
set-option window formatcmd 'black -q -'
}
2024-06-03 00:16:57 +02:00
hook global BufCreate .*\.gleam %{
set-option buffer filetype gleam
}