projekt0n / github-nvim-theme

Github's Neovim themes
MIT License
2.02k stars 105 forks source link

consider using `blend` opt of `vim.api.nvim_set_hl()` instead of `alpha_blend()` #251

Closed tmillr closed 11 months ago

tmillr commented 1 year ago

Why?

  1. It's builtin to Neovim.

  2. It may handle blending with different background colors dynamically (although this needs further investigation). For example, it seems that the current use of alpha_blend() always assumes the bg to be the global/default bg for the current theme for any given hl group and position on the screen? But that is not necessarily always the case (a hl group may have bg set and set to a different color, there may be extmarks setting the bg color arbitrarily at runtime, the highlight could be appearing in a floating window which has a different bg than the default/global, etc. My point is that it might be that Neovim's blend option for vim.api.nvim_set_hl() handles all of these cases of blending with arbitrary bg colors dynamically at runtime - although I am not totally sure of this and it needs further investigation; it could be that it only considers the bg setting for just that one, single hl group specified to set_hl()).

ful1e5 commented 1 year ago

@tmillr I intentionally used alpha_blend to make sure the colors and names in the primer palettes match exactly with this colorscheme.

Even though the blend option is available, I think it's not working right now because the compiler module uses a Vim command and string concatenation to set highlights. However, I plan to add the blend option to the groups overrides, so that users can benefit from this cool feature.

tmillr commented 11 months ago

I apologize if my original post is confusing. When I posted this I didn't understand blend too well. After playing around with it and trying to read up on it, I think it only really works in floating windows, I'm not sure. But it doesn't seem to work in the way that I thought it could (e.g. by being able to automatically blend any highlights/highlight groups appearing within a normal window with the background of that window just by changing the blend attribute of a hl group).

ful1e5 commented 11 months ago

I apologize if my original post is confusing. When I posted this, I didn't understand blend too well. After playing around with it and trying to read up on it, I think it only really works in floating windows, but I'm not sure. It doesn't seem to work in the way that I thought it could (e.g., by being able to automatically blend any highlights/highlight groups appearing within a normal window with the background of that window just by changing the blend attribute of an hl group).

No worries!

@tmillr Since some Neovim plugins use the blend feature, it's a nice addition for users to customize popup window highlights in those plugins. However, this feature is not supported in nightfox, as it is a Neovim-only feature.

BTW, Thank you for reporting, contributing, and sponsoring this project. Your efforts are appreciated!

I'm closing this issue as complete, and it can be reopened in the future for further discussion.