tinted-theming / home

Style systems and smart build tooling for crafting high fidelity color schemes and easily using them in all your favorite apps.
MIT License
252 stars 12 forks source link

Theme compatibility with neovim's lsp #76

Closed jonleopard closed 1 year ago

jonleopard commented 1 year ago

So I'm not sure if base16 is fully functional with neovim's LSP colors? The 'E' should be red and other signs such as warnings come in white as well (they should orange). Curiously, the helper ('H') sign comes in correctly:

Screenshot 2023-02-16 at 11 33 01 Screenshot 2023-02-16 at 11 44 58

I've tried using this tool but that didn't change anything. This is likely due to the fact that I'm using the full suite of base16 tools (shell, vim, tmux, etc...) and the lsp calls for colors that base16 hasn't defined. Would using base17 solve this? If so, how does one use base17 themes instead of base16? If you need any extra details, I would be happy to provide them!

Lastly, I've been using base16 for many years now and appreciate the direction you are taking it! The recent hooks implementation and other QoL improvements have been great, so thanks for that!

belak commented 1 year ago

If we're missing some colors, I think the best bit would be to contribute to https://github.com/tinted-theming/base16-vim. We'd be happy to merge LSP improvements.

Base17 is currently only an idea and we're still deciding what direction we want to go with that, so I'll transfer this issue to the base16-vim repo.

belak commented 1 year ago

Ah, wait, I misunderstood some of this - you're asking about additional colors. That, we're not sure what to do about yet because it would involve potentially dropping support for terminal color schemes, or providing a completely different color scheme for terminal vs gui. I'll move this back to the home repo.

Yes, base17 is one of the ideas we've got for this, but it's not fully fleshed out yet and we haven't had the time to work on it much over the last few months.

jonleopard commented 1 year ago

Thanks for the feedback! Out of curiosity, does base16 even use termguicolors when set? I'm curious because the values get applied when ctermfg is set, and not guifg.

This will get me by until base17 is released: cmd("hi ErrorSign ctermfg=Red guifg=Red")

colors.lua

local fn = vim.fn
local cmd = vim.cmd
local set_theme_path = "$HOME/.config/tinted-theming/set_theme.lua"
local is_set_theme_file_readable = fn.filereadable(fn.expand(set_theme_path)) == 1 and true or false

if is_set_theme_file_readable then
    cmd("let base16colorspace=256")
    cmd("source " .. set_theme_path)
    cmd("hi ErrorSign ctermfg=Red guifg=Red")
end
Screenshot 2023-02-17 at 10 13 19

:hi will list the color assignments, which helped me to pinpoint which color I needed to manually change

Screenshot 2023-02-17 at 09 49 11

Will close this now as I've found a decent temporary solution.