scottmckendry / cyberdream.nvim

🤖💤 High-contrast, Futuristic & Vibrant Coloursheme for Neovim
MIT License
697 stars 29 forks source link

Treesitter and semantic highlighting #38

Closed the-mrd closed 5 months ago

the-mrd commented 5 months ago

I'm opening this issue to see if there's any intention to add more colors and highlighting groups to cyberdream. I'm talking mostly from a programmer's perspective and am concerned about both treesitter hl groups like constant, variable etc., as well as LSP semantic highlight groups. I'm no expert in this, I just browsed tokyonight's theme.lua and there's a lot there, perhaps even too much. I'm also not sure if all this highlighting doesn't conflict with cyberdream's high contrast goal. So I'd like to hear your thoughts on this. Thanks!

scottmckendry commented 5 months ago

Yes, I could add a heap more explicit treesitter highlights to the theme. But for the most part, treesitter is already doing the heavy lifting.

If you place your cursor over a token in a buffer where treesitter is running and type :Inspect, you'll find that the tressitter groups are already linked to existing groups declared in theme.lua.

Now I'm not sure if this is best practice. But it's certainly been easy to implement and maintain so far.

That being said, if you notice any specific groups that aren't linked incorrectly or don't look quite right, please let me know.

the-mrd commented 5 months ago

Sorry, I think I didn't express myself very well. I see that you linked most (all?) treesitter groups in treesitter.lua, I'm just surprised that many of them are given the same color (e.g. Constants and Identifier are both fg color). I'm asking if it would be possible to color these groups differently, while keeping with the current style and goals of cyberdream. I have set different colors to some of them in my local config, but haven't gotten a satisfactory result up to now.

scottmckendry commented 5 months ago

Understood. Yes, this is by design. I responded to a comment on Reddit where someone was asking something similar. You can override the highlight for "Constant" in your config:

    {
        "scottmckendry/cyberdream.nvim",
        dev = true,
        lazy = false,
        priority = 1000,
        config = function()
            local colors = require("cyberdream.colors").default
            require("cyberdream").setup({
                transparent = is_transparent,
                italic_comments = true,
                hide_fillchars = true,

                theme = {
                    highlights = {
                        Constant = { fg = colors.magenta },
                    },
                },
            })
            vim.cmd("colorscheme cyberdream")
        end,
    },

Feel free to replace the colour with whatever you see fit (hex codes are also supported). The above config looks like this:

image

the-mrd commented 5 months ago

Ok, thanks for taking the time to answer. I think this can be closed. Should I close it as completed or as not planned?