vim

For discussion on all things (neo)vim.
orestis 2021-02-22T13:42:17.013Z

I've done some more deep digging in the external UI functionality of neovim. Unfortunately a lot of my ideas are not really implementable because you lack semantic information about a window (e.g. is this a Conjure REPL window? Is this a fugitive window?). So all the UIs can do for now is just add some visual niceties like shadows. NeoVim will still draw the status lines and vertical separators as text (though I think it's planned to externalise that too at some point).

Olical 2021-02-22T13:45:11.013100Z

Oh interesting! :thinking_face: I identify it by the name of the buffer personally, but I could totally add a buffer local variable that identified Conjure buffers? Not sure how you'd identify which window it was though...

Olical 2021-02-22T13:47:20.013300Z

Ohhh there is a w: prefix... I could do b:conjure#log = v:true and w:conjure#log = v:true as well as w:conjure#log#hud = v:true or something like that so you can distinguish. If that helps?

juhoteperi 2021-02-22T13:50:14.013500Z

Many plugins set buffer filetype to a custom value, like filetype=fugitiveblame (vim-iced though seems to use just clojure for repl buffer)

Olical 2021-02-22T13:53:58.013800Z

I think you can use dotted filetypes too, so I could set the filetype to clojure.conjure :thinking_face: I think that layers in the different filetype plugins? Something I learned about recently and don't fully understand.

Olical 2021-02-22T13:54:22.014Z

I think setting buffer/window local flags is a decent identifier too though.

orestis 2021-02-22T14:04:05.014200Z

Perhaps that's something I need to look into, I was so far focusing on the notification events that you receive, which just send you window handles (in multigrid mode). But still, the global layout is dictated by neovim and you can't even draw your own separators or status lines, neovim draws those with text characters 😕