Very basic question, I am trying to use kak-lsp with LanguageServer.jl, and am getting this error:
*** This is the debug buffer, where debug info will be written ***
/home/peterj/.config/kak/kakrc:no such command: 'plug'
/usr/share/kak/kakrc:29:1: 'evaluate-commands' 116:1: 'source' no such command: 'plug'
error while parsing kakrc:
1:1: 'source' 29:1: 'evaluate-commands' 116:1: 'source' no such command: 'plug'
I find the kakoune plugin system really confusing so I have no idea what to do with this.
The Kakoune plugin system is really easy: any .kak
files anywhere inside ~/.config/kak/autoload
will be loaded at startup. So you can stick your own .kak
files in there, or download a plugin and copy it in there, or straight-up git clone
a plugin directly into that directory and it should all work.
However, some people like to automate even these simple steps, so there’s a third-party plugin called plug.kak to help with downloading plugin files in the right place. This plugin adds a new :plug
command you can stick in your kakrc
(or any other plugin) to tell it to download plugins.
Since your *debug*
buffer mentions “no such command: ‘plug’” I suspect you’ve tried to follow the plug.kak installation instructions without having plug.kak installed.
I suggest you follow the kak-lsp instructions for pre-built binaries. Once you can run kak-lsp
in a terminal (to verify it’s installed correctly), follow the instructions under Usage to make language-server functionality available in Kakoune.
If you have any more problems, feel free to post more questions!
Thanks, the LanguageServer.jl (for Julia) tutorial is written assuming plug.kak, so I kept fiddling with getting that to work.
I ended up getting it to work by adding
source "/home/peterj/.config/kak/plugins/plug.kak/rc/plug.kak"
to the beginning of my kakrc
. Not the nicest solution but it works at least!
Sorry, nevermind!
The error goes away when I remove require-module plug
from my kakrc
.
kak-lsp
appears to be working, but I cannot get other plugins to work. I was fiddling around with other plugins to get better syntax highlighting for Julia.
Here is my kakrc
:
source "/home/peterj/.config/kak/plugins/plug.kak/rc/plug.kak"
eval %sh{kak-lsp --kakoune -s $kak_session}
lsp-enable
# Yank
hook global NormalKey '[ydc]' %{
nop %sh{
(printf '%s' "$kak_main_reg_dquote" | xclip -filter | xclip -selection clipboard) < /dev/null > /dev/null 2>&1 &
}
}
# Paste
map global user p -docstring 'Paste (After)' '<a-!>xclip -out -selection clipboard<ret>'
map global user P -docstring 'Paste (Before)' '!xclip -out -selection clipboard<ret>'
map global user R -docstring 'Replace' '|xclip -out -selection clipboard<ret>'
plug "jdugan6240/powerline.kak" defer powerline %{
#Configure powerline.kak as desired
powerline-theme gruvbox
} config %{
powerline-start
}
plug "kak-lsp/kak-lsp" do %{
cargo build --release --locked
cargo install --force --path .
} config %{
# uncomment to enable debugging
set global lsp_diagnostic_line_error_sign '║'
set global lsp_diagnostic_line_warning_sign '┊'
set global lsp_hover_max_lines 40
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|julia) %{
set-option window lsp_hover_anchor false
lsp-auto-hover-enable
echo -debug "Enabling LSP for filtetype %opt{filetype}"
lsp-enable-window
}
hook global KakEnd .* lsp-exit
}
Hi pcjentsch, powerline.kak maintainer here.
It’s odd that powerline.kak doesn’t seem to be working, as your kakrc looks fine. Did you run :plug-install
after you edited your kakrc and restarted Kakoune?
I did, yep.
For some reason, everything seems to be working now?
I’m not sure what caused that honestly… but thanks!
If I had to guess, I’d say that you may have forgotten to source the powerline.kak files after running :plug-install
. plug.kak won’t source the files right away once that function call is made - you need to reload your kakrc, which is usually done by restarting Kakoune.
In any case, I’m happy it worked, and welcome to the Kakoune community.
2 Likes