whatyouhide / vim-gotham

Code never sleeps in Gotham City. 🌃
MIT License
1.24k stars 79 forks source link

Potentially breaking behavior by neovim 0.10 #68

Open shmerl opened 3 months ago

shmerl commented 3 months ago

I think vim-gotham is affected by https://github.com/neovim/neovim/issues/26378

I'll take a closer look, but I just noticed some colors being broken after switching from 0.9.x to 0.10.

shmerl commented 3 months ago

Relevant details about what changed in neovim behavior:

https://github.com/neovim/neovim/blob/42aa69b076cb338e20b5b4656771f1873e8930d8/runtime/doc/news-0.10.txt#L25-L36

dramsde1 commented 3 months ago

I'm not sure if these are the changes you are talking about but after updating Neovim I had to make these changes in gotham.vim in order to account for the missing colors around line 138

call s:Col('Operator', 'base5') call s:Col('Delimiter', 'base6') call s:Col('Removed', 'red') call s:Col('Function', 'magenta') call s:Col('Changed', 'cyan') call s:Col('@variable', 'base6')

This is probably old news to proficient Neovim users but to know what highlight group is under your curser, you just have to use the :Inspect command in Neovim. That's how I knew to add the @variable line which ultimately fixed a lot of the missing color for that highlight group

whatyouhide commented 3 months ago

Hey folks, thanks for reporting this. I don't use Vim (anymore) or Neovim, so I won't be able to fix this. If you figure out fixes that work with Neovim and don't break Vim, PRs are more than welcome. 🙃

shmerl commented 3 months ago

Just FYI, I'm working on creating a Lua theme based on Vim Gotham, so I'll try to address this, but I'm not going to try to handle stock vim support.

And thanks for the hint about :Inspect, that's useful! I've been using fzf-lua highlight groups browser, since it's really helpful to list all possible groups.

dramsde1 commented 3 months ago

@shmerl Awesome lol I was just doing the same thing, maybe I'll just wait for you to finish. I had no idea fzf-lua was a thing, that would have been really helpful.

shmerl commented 3 months ago

Sure, but it might take me some time, I'm also learning Lua in the process 😄 I'll comment here once I'll have something functional.

And fzf-lua has a lot of cool features indeed.

shmerl commented 3 months ago

Some notes (I'm almost done with first draft of the lua theme and will publish it soon).

For Function I'm adding a new color and the rest from your list examples changed like this between neovim 0.9 and 0.10:

0.9:

Operator -links to Statement Delimiter -links to Special Removed - doesn't exist Changed - doesn't exist @variable - links to Identifier

0.10: Operator - guifg=NvimLightGrey2 Delimiter - guifg=NvimLightGrey2 Removed - ctermfg=9 guifg=NvimLightRed Changed - ctermfg=14 guifg=NvimLightCyan @variable - guifg=NvimLightGrey2

So your fix for Operator is correct (Statement is base 5), but your fix for Delimiter seems off? It was linked to Special, which was orange.

Also, Identifier was linked to base5, not base6, so @variable also should get base5?

And that's just for these. I'll probably have to go through all groups that use Nvim<color> names and cross reference them to old ones if they were linked to anything.

shmerl commented 3 months ago

It's probably nicer though to bump identifier to something brighter than statement, so base 6 may be a good idea regardless.

dramsde1 commented 3 months ago

Some notes (I'm almost done with first draft of the lua theme and will publish it soon).

For Function I'm adding a new color and the rest from your list examples changed like this between neovim 0.9 and 0.10:

0.9:

Operator -links to Statement Delimiter -links to Special Removed - doesn't exist Changed - doesn't exist @variable - links to Identifier

0.10: Operator - guifg=NvimLightGrey2 Delimiter - guifg=NvimLightGrey2 Removed - ctermfg=9 guifg=NvimLightRed Changed - ctermfg=14 guifg=NvimLightCyan @variable - guifg=NvimLightGrey2

So your fix for Operator is correct (Statement is base 5), but your fix for Delimiter seems off? It was linked to Special, which was orange.

Also, Identifier was linked to base5, not base6, so @variable also should get base5?

And that's just for these. I'll probably have to go through all groups that use Nvim<color> names and cross reference them to old ones if they were linked to anything.

Ah my apologies when I initially made those changes I just changed them to colors within the theme that I liked so they may not 100% maintain the same effect of the original color scheme. You should definitely cross reference the original one. @shmerl Good luck, feel free to message if you need help

shmerl commented 3 months ago

Thanks!

Do you know by chance what these are?

DiffAdded
DiffChanged
DiffRemoved
DiffSubname

I can't find any documentation. Internally neovim defines some expressions for them though so they are valid groups.

Note, that's not the same as regular DiffAdd and etc.

dramsde1 commented 3 months ago

Thanks!

Do you know by chance what these are?

DiffAdded
DiffChanged
DiffRemoved
DiffSubname

I can't find any documentation. Internally neovim defines some expressions for them though so they are valid groups.

Note, that's not the same as regular DiffAdd and etc.

I can look into this tomorrow but as to not spam this chat I suggest you add me to your Neovim project and create an issue . I can't promise I'll have much time to work on this and you can limit my access, but I can at least answer questions. Up 2 you. You can also email me here if you'd like Devin.Ramsden@jhuapl.edu. @shmerl

shmerl commented 3 months ago

@dramsde1: Sure, I created a repository here. Feel free to test / report bugs. I can open some myself. And thanks for the help!