error messages
basbebe opened this issue · 2 comments
Hi!
Using kakoune-smooth-scroll
, I teg a lot of error messages like:
Error: 1:2: 'smooth-scroll-execute-keys' 3:5: 'evaluate-commands' 2:9: 'execute-keys' nothing left to undo
Also, I think it interferes with plug-kak's update
function in plug-list mode (U
).
Is my configuration off?
kakrc
# Plugins
# source custom plugins
source "~/git/pandoc.kak/rc/pandoc.kak"
# source plug.kak script
source "%val{config}/plugins/plug.kak/rc/plug.kak"
# call plug.kak with `plug' command
plug "robertmeta/plug.kak" noload config %{
# configure plug.kak here
}
plug "ul/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
}
plug 'delapouite/kakoune-buffers' %{
# Suggested hook
hook global WinDisplay .* info-buffers
# Suggested mappings
map global user b ':enter-buffers-mode<ret>' -docstring 'buffers…'
map global user B ':enter-user-mode -lock buffers<ret>' -docstring 'buffers (lock)…'
# Suggested aliases
alias global bd delete-buffer
alias global bf buffer-first
alias global bl buffer-last
alias global bo buffer-only
alias global bo! buffer-only-force
}
plug "jdugan6240/powerline.kak" defer powerline %{
# set-option global powerline_format 'git bufname filetype mode_info line_column position'
# powerline-toggle line_column off
powerline-separator triangle
powerline-theme gruvbox
} config %{
powerline-start
}
plug "caksoylar/kakoune-smooth-scroll" config %{
hook global WinCreate .* %{ hook -once window WinDisplay .* smooth-scroll-enable }
}
plug "alexherbo2/prelude.kak"
plug "alexherbo2/connect.kak" %{
require-module connect
require-module connect-nnn
}
plug 'alexherbo2/palette.kak'
plug 'occivink/kakoune-sudo-write '
plug 'evanrelf/number-toggle.kak' %{
set-option global number_toggle_params -hlcursor
}
plug 'alexherbo2/surround.kak' %{
require-module surround
## Quoting
map -docstring 'Surround' global normal q ': enter-user-mode surround<ret>'
map -docstring 'Surround insert' global normal Q ': surround-enter-insert-mode<ret>'
## Move macros to ^
map -docstring 'Play macro' global normal ^ q
map -docstring 'Record macro' global normal <a-^> Q
}
plug 'alexherbo2/auto-pairs.kak' %{
require-module auto-pairs
hook global WinCreate .* %{ auto-pairs-enable }
}
plug 'laelath/kakoune-show-matching-insert'
plug 'alexherbo2/snippets.kak'
plug "jbomanson/search-doc.kak" config %{
require-module search-doc
}
plug "andreyorst/smarttab.kak" defer smarttab %{
# when `backspace' is pressed, 4 spaces are deleted at once
set-option global softtabstop 4
} config %{
# these languages will use `expandtab' behavior
hook global WinSetOption filetype=.* expandtab
# these languages will use `noexpandtab' behavior
hook global WinSetOption filetype=(makefile|gas) noexpandtab
# these languages will use `smarttab' behavior
hook global WinSetOption filetype=(c|cpp|java) smarttab
}
plug "andreyorst/fzf.kak"
# Key Mappings
## quick safe
map global user w -docstring 'safe file' ':w<ret>'
## edit kakrc
map global user <,> -docstring 'edit kakrc' ':e "%val{config}/kakrc"<ret>'
map global user <a-,> -docstring 'source kakrc' ':source "%val{config}/kakrc"<ret>'
map global user <a-<> -docstring 'source current buffer' ':source "%val{buffile}<ret>'
## jj to escape
hook global InsertChar j %{ try %{
exec -draft hH <a-k>jj<ret> d
exec <esc>
}}
## comments
map global user c -docstring '(un-)comment line' ':comment-line<ret>'
map global user C -docstring '(un-)comment block' ':comment-block<ret>'
## Mac Clipboard
hook global NormalKey y|d|c %{ nop %sh{
printf %s "$kak_main_reg_dquote" | pbcopy
}}
map global user P -docstring 'Paste above' '!pbpaste<ret>'
map global user p -docstring 'Paste below' '<a-!>pbpaste<ret>'
map global user R -docstring 'Replace' '|pbpaste<ret>'
# general Configuration
##verbose autoinfo
set-option -add global autoinfo normal
## case insensitive search by default
map global normal / "/(?i)"
# Pandoc
set-option global pandoc_options "-d default"
# Appearance
colorscheme gruvbox
add-highlighter global/ number-lines -relative -hlcursor
add-highlighter global/ show-whitespaces
add-highlighter global/ line '%val{cursor_line}' default,rgb:3c3735
add-highlighter global/ column 81 default,red
add-highlighter global/ wrap -indent -word -marker ' … '
Hi, thanks for the report. I think there are two issues here:
U
mapping (used by default bykakoune-smooth-scroll
) clashes with the custom mapping byplug.kak
in the*plug*
buffer- Regular error messages that result from mapped keys are displayed with a
smooth-scroll
preamble
About 1: Currently Kakoune has no way to map recursively, so any two mappings to the same key (for example by smooth-scroll
or plug.kak
) have to override one another. You can solve this in one of two ways:
- Remove
U
from the global list of mapped keys forsmooth-scroll
:set-option global scroll_keys_normal <c-f> <c-b> <c-d> <c-u> <pageup> <pagedown> ( ) m M <a-semicolon> <percent> n <a-n> N <a-N> u <a-u> <a-U> # U disabled
- Do not enable
smooth-scroll
for "special" buffers (that start and end with*
):hook global WinCreate .* %{ hook -once window WinDisplay [^*].* smooth-scroll-enable }
I like the second approach better since you rarely need smooth scrolling for special buffers that are usually short, and more prone to breaking with overlapping mappings. I will probably replace the example configuration in the README with the one above. If you want to be more specific to exclude the *plug*
buffer only, you can also use
hook global WinCreate .* %{ hook -once window (?!\*plug\*).* smooth-scroll-enable }
About 2., the issue is that any errors that result from mapped keys, like pressing u
when there is no change to undo, will display with an error message that mentions smooth-scroll
, exactly like the one you pasted. The reason is that the key goes through the mappings we define for smooth scrolling and whenever an error happens in Kakoune as a result of that key, it will print the whole "stack trace". It is a cosmetic issue and I don't think there is anything to do about that unfortunately.
However do let me know if this happens unexpectedly, and not as a direct result of you pressing a key that would normally result in such a message. In that case I can investigate if this has anything to do with the plugin or its interaction with other plugins.
Thanks for the clarification!
I'll try
hook global WinCreate .* %{ hook -once window WinDisplay [^*].* smooth-scroll-enable }