Initial commit for kakrc
This commit is contained in:
commit
a8745a54ec
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
plugins/
|
||||||
122
kakrc
Normal file
122
kakrc
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
# Load plug.kak
|
||||||
|
source "%val{config}/plugins/plug.kak/rc/plug.kak"
|
||||||
|
plug "andreyorst/plug.kak" noload
|
||||||
|
# plug kak-lsp
|
||||||
|
plug "kak-lsp/kak-lsp" do %{
|
||||||
|
cargo build --release --locked
|
||||||
|
cargo install --force --path .
|
||||||
|
} config %{
|
||||||
|
|
||||||
|
# uncomment to enable debugging
|
||||||
|
# eval %sh{echo ${kak_opt_lsp_cmd} >> /tmp/kak-lsp.log}
|
||||||
|
# set global lsp_cmd "kak-lsp -s %val{session} -vvv --log /tmp/kak-lsp.log"
|
||||||
|
|
||||||
|
# this is not necessary; the `lsp-enable-window` will take care of it
|
||||||
|
# eval %sh{${kak_opt_lsp_cmd} --kakoune -s $kak_session}
|
||||||
|
|
||||||
|
set global lsp_diagnostic_line_error_sign '║'
|
||||||
|
set global lsp_diagnostic_line_warning_sign '┊'
|
||||||
|
|
||||||
|
define-command ne -docstring 'go to next error/warning from lsp' %{ lsp-find-error --include-warnings }
|
||||||
|
define-command pe -docstring 'go to previous error/warning from lsp' %{ lsp-find-error --previous --include-warnings }
|
||||||
|
define-command ee -docstring 'go to current error/warning from lsp' %{ lsp-find-error --include-warnings; lsp-find-error --previous --include-warnings }
|
||||||
|
|
||||||
|
define-command lsp-restart -docstring 'restart lsp server' %{ lsp-stop; lsp-start }
|
||||||
|
hook global WinSetOption filetype=(c|cpp|cc|rust|javascript|typescript) %{
|
||||||
|
set-option window lsp_auto_highlight_references true
|
||||||
|
set-option window lsp_hover_anchor false
|
||||||
|
lsp-auto-hover-enable
|
||||||
|
echo -debug "Enabling LSP for filtetype %opt{filetype}"
|
||||||
|
lsp-enable-window
|
||||||
|
}
|
||||||
|
|
||||||
|
hook global WinSetOption filetype=(rust) %{
|
||||||
|
set window lsp_server_configuration rust.clippy_preference="on"
|
||||||
|
}
|
||||||
|
|
||||||
|
hook global WinSetOption filetype=rust %{
|
||||||
|
hook window BufWritePre .* %{
|
||||||
|
evaluate-commands %sh{
|
||||||
|
test -f rustfmt.toml && printf lsp-formatting-sync
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hook global KakEnd .* lsp-exit
|
||||||
|
}
|
||||||
|
# Substitute c-n with tab
|
||||||
|
hook global InsertCompletionShow .* %{
|
||||||
|
try %{
|
||||||
|
execute-keys -draft 'h<a-K>\h<ret>'
|
||||||
|
map window insert <tab> <c-n>
|
||||||
|
map window insert <s-tab> <c-p>
|
||||||
|
hook -once -always window InsertCompletionHide .* %{
|
||||||
|
map window insert <tab> <tab>
|
||||||
|
map window insert <s-tab> <s-tab>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# enable auto pair closing
|
||||||
|
enable-auto-pairs
|
||||||
|
# yaml linter
|
||||||
|
hook global WinSetOption filetype=yaml %{
|
||||||
|
# set-option window lintcmd "yamllint -f parsable"
|
||||||
|
set-option window lintcmd %{
|
||||||
|
run() {
|
||||||
|
# change [message-type] to message-type:
|
||||||
|
yamllint -f parsable "$1" | sed 's/ \[\(.*\)\] / \1: /'
|
||||||
|
} && run }
|
||||||
|
}
|
||||||
|
# yaml formatter
|
||||||
|
hook global WinSetOption filetype=yaml %{
|
||||||
|
set window formatcmd 'prettier --parser yaml'
|
||||||
|
}
|
||||||
|
# C linter
|
||||||
|
hook global WinSetOption filetype=c %{
|
||||||
|
set-option window lintcmd "cppcheck --language=c --enable=warning,style,information --template='{file}:{line}:{column}: {severity}: {message}' --suppress='*:*.h' 2>&1"
|
||||||
|
}
|
||||||
|
# C formatter
|
||||||
|
hook global BufSetOption filetype=c %{
|
||||||
|
set-option buffer formatcmd 'astyle'
|
||||||
|
}
|
||||||
|
|
||||||
|
set global indentwidth 4
|
||||||
|
set global tabstop 4
|
||||||
|
add-highlighter global/ number-lines
|
||||||
|
add-highlighter global/ wrap
|
||||||
|
|
||||||
|
# system clipboard usermode
|
||||||
|
map global user y '<a-|>xclip -in -selection clipboard >&- 2>&-<ret>' \
|
||||||
|
-docstring 'Copy selected text to system clipboard'
|
||||||
|
map global user P '!xclip -out -selection clipboard<ret>' \
|
||||||
|
-docstring 'Paste system clipboard before'
|
||||||
|
map global user p '<a-!>xclip -out -selection clipboard<ret>' \
|
||||||
|
-docstring 'Paste system clipboard after'
|
||||||
|
map global user R '|xclip -out -selection clipboard<ret>' \
|
||||||
|
-docstring 'Replace selection from system clipboard'
|
||||||
|
|
||||||
|
## TESTING: copy and paste from TMUX
|
||||||
|
#if [ -n "$DISPLAY" ]; then
|
||||||
|
## printf %s "$kak_main_reg_dquote" | xsel --input --clipboard
|
||||||
|
#elif [ -n "$TMUX" ]; then
|
||||||
|
# map global user y '<a-|>tmux set-buffer --<ret>'
|
||||||
|
#fi
|
||||||
|
## Enable different options depending if we are inside TMUX or not
|
||||||
|
#try %{
|
||||||
|
# evaluate-commands %sh{ [ $tmux ] || echo "fail" }
|
||||||
|
# try %{
|
||||||
|
# hook global registermodified '"' %{ nop %sh{
|
||||||
|
# tmux set-buffer -- "$kak_main_reg_dquote"
|
||||||
|
# }}
|
||||||
|
# map global user p '!tmux show-buffer<ret>'
|
||||||
|
# map global user p '<a-!>tmux show-buffer<ret>'
|
||||||
|
# map global user r '|tmux show-buffer<ret>'
|
||||||
|
# }
|
||||||
|
#} catch %{
|
||||||
|
# try %{
|
||||||
|
# map global user y '<a-|>xclip -in -selection clipboard >&- 2>&-<ret>'
|
||||||
|
# map global user p '!xclip -out -selection clipboard<ret>'
|
||||||
|
# map global user p '<a-!>xclip -out -selection clipboard<ret>'
|
||||||
|
# map global user r '|xclip -out -selection clipboard<ret>'
|
||||||
|
# }
|
||||||
|
#}
|
||||||
Loading…
x
Reference in New Issue
Block a user