Adjust regex in gopls-def for when filepath contains a dash

When calling `:gopls definition`, the gopls LSP server returns the location of
the selected definition. Then, `gopls.kak` tries to parse this output to
feed the `:edit` command and open the file in Kakoune. To do this, it
uses `sed` to transform `<path>.go:<line>:<colstart>-<colend>` to `<path>.go
<line> <colstart>`. However, if the `<path>` contains a dash character,
the `sed` will fail and strip everything after this first dash, removing
the line and columns information.

Closes #4776
This commit is contained in:
Loric Brevet 2022-11-11 12:59:34 +01:00
parent 91d45a100a
commit 199b7ea165
No known key found for this signature in database
GPG Key ID: 6AB3DBD46F8FB159

View File

@ -69,7 +69,7 @@ define-command -hidden -params 1 gopls-cmd %{
define-command -hidden -params 0 gopls-def %{ define-command -hidden -params 0 gopls-def %{
evaluate-commands %sh{ evaluate-commands %sh{
jump=$( gopls definition "${kak_buffile}:${kak_cursor_line}:${kak_cursor_column}" 2> /dev/null \ jump=$( gopls definition "${kak_buffile}:${kak_cursor_line}:${kak_cursor_column}" 2> /dev/null \
|sed -e 's/-.*//; s/:/ /g; q' ) |sed -e 's/-[0-9]\+:.*//; s/:/ /g; q' )
if [ -n "${jump}" ]; then if [ -n "${jump}" ]; then
printf %s\\n "evaluate-commands -try-client '${kak_opt_jumpclient}' %{ printf %s\\n "evaluate-commands -try-client '${kak_opt_jumpclient}' %{
edit ${jump} edit ${jump}