mawww / kakoune

mawww's experiment for a better code editor
http://kakoune.org
The Unlicense
9.7k stars 705 forks source link

[BUG] setting a face to itself in kakrc causes hang #5182

Closed moeishome closed 1 month ago

moeishome commented 1 month ago

Version of Kakoune

v2024.05.18

Reproducer

include the line face global SecondaryCursor SecondaryCursor in kakrc, save, then attempt to run kak.

Outcome

kak makes shell accept input (but does not stop on for example) and hangs at cli until term emulator is closed.

Expectations

probably an error handle, though obviously including the line was unintentional in the first place as i had meant to type SecondaryCursor PrimaryCursor.

Additional information

os -- void linux term -- alacritty, in tmux

should be noted that i am using chezmoi -- however, i am 99.9% sure these are not related as checking the ~/.config/kak/kakrc with vi shows nothing out of the ordinary besides the included line (i.e. no weird go includes were left in there or something else) and removing the line fixed the issue.

i am also using kak-lsp but uninstalled it to see if itd affect the hang and it did not. fixing the line caused it to disappear immediately.

otherwise, thanks for making kakoune !

Screwtapello commented 1 month ago

This command does not reproduce the issue:

kak -n -e 'set-face global SecondaryCursor SecondaryCursor'

How is SecondaryCursor defined in whatever colour scheme you're using?

moeishome commented 1 month ago

the exact line was face global SecondaryCursor SecondaryCursor, the full kakrc is here. ive made minimal changes to it beyond fixing the error as i was adding faces to my config.

arachsys commented 1 month ago

I tried to reproduce this so I could debug, but I failed.

I used your kakrc verbatim, except that I don't have kak-lsp so had to comment out those lines. To make it work at all, I also had to replace decl str black "rgb:{{ .colors.base.black }}" with decl str black "rgb:000000" and so on. (Are these .colors.base.black things connected to kak-lsp somehow, or from some sort of templating language?)

Finally, I replaced face global SecondaryCursor PrimaryCursor with face global SecondaryCursor SecondaryCursor and ran kak, but this didn't cause a hang. Are you able to reproduce with a simple kakrc that works on 'vanilla' kakoune (without all the lsp stuff) at all?

moeishome commented 1 month ago

hey! the templates are from chezmoi -- it creates a kakrc in ~/.config/kak/ without any of the templating but just the raw colors, which is why i would be surprised if it was chezmoi, but ill see if i can recreate it without chezmoi or without kak-lsp as well. i have tried without kak-lsp, and with all the relevant lines commented out, but there might be some interaction i can check out, ill go in when i get a chance. thank you!

moeishome commented 1 month ago

was unable to reproduce when i tried today. not sure what caused it, ill update if it happens again and im able to pinpoint what causes it. thanks!