Th3Whit3Wolf / one-nvim

Atom one theme
MIT License
113 stars 23 forks source link

Color cannot be overwritten #2

Closed yamatsum closed 3 years ago

yamatsum commented 3 years ago

If want to change the color of a particular highlight group, can't overwrite it in the usual way. For example, it cannot be changed by the following method

highlight! ALEErrorSign guifg=#E06C75

Onebuddy could change this way.

If want to do the same with one-nvim, have to do the following

autocmd Colorscheme * highlight ALEErrorSign guifg=#E06C75

Can fix it?

Th3Whit3Wolf commented 3 years ago

Does it change when you run

highlight ALEErrorSign guifg=#E06C75

highlight! is not a command, I think you're confusing it with hi!

yamatsum commented 3 years ago

Does it change when you run

After the plugin is loaded, it will change if run it with vim running. However, until now, it was described and set in init.lua and it worked, but it does not work with one-nvim. Works well with plugins for other color schemes.

Th3Whit3Wolf commented 3 years ago

Are you calling it after setting the colorscheme?

yamatsum commented 3 years ago

Are you calling it after setting the colorscheme?

Yes, give it a try

Th3Whit3Wolf commented 3 years ago

I add

vim.api.nvim_command('autocmd Colorscheme * highlight Normal guibg=#FF0000')

to the end of my init.lua and it worked. Try adding your autocmd to the last line of you init.lua.

yamatsum commented 3 years ago

Yes i know. I want to change it without using autocmd. That's possible with onebuddy and other plugins

Th3Whit3Wolf commented 3 years ago

Sorry I misunderstood,

inside nvim/after/colors/one-nvim.vim

highlight ALEErrorSign guifg=#E06C75

where nvim is the root directory of your nvim folder.

yamatsum commented 3 years ago

Sorry I misunderstood,

I'm sorry in poor English😅

nvim/after/colors/one-nvim.vim

I tried with this path and all the other syntax broke

Th3Whit3Wolf commented 3 years ago

Just to verify, if you are on linux, if you run

cat ~/.config/nvim/after/colors/one-nvim.vim

you get

highlight ALEErrorSign guifg=#E06C75

Is that right?

yamatsum commented 3 years ago

Initial state

Screen Shot 2021-01-27 at 0 32 30

After setting

❯ cat ~/.config/nvim/after/colors/one-nvim.vim
highlight ALEErrorSign guifg=#E06C75
Screen Shot 2021-01-27 at 0 37 35

reference: https://github.com/yamatsum/mackup/tree/master/.config/nvim

Th3Whit3Wolf commented 3 years ago

I think I have it now

" ~/.config/nvim/after/colors/one-nvim.vim
highlight ALEErrorSign guifg=#E06C75
-- end of init.lua
vim.api.nvim_command("runtime! after/colors/one-nvim.vim")
yamatsum commented 3 years ago

After all it did not work. Thank you for your kind answer.

The original purpose was just to overwrite the highlights with a simple setup. Why can't one-nvim do what onebuddy can do?🤔

Th3Whit3Wolf commented 3 years ago

That's strange. It worked on my computer.

I think you're probably best off using the autocmd since you said that worked. I have no idea why it would work with onebuddy but not one-nvim.

Th3Whit3Wolf commented 3 years ago

Worked this out with the creator of nvim-highlite

vim.api.nvim_command("augroup Highlight")
vim.api.nvim_command("autocmd!")
vim.api.nvim_command("autocmd ColorScheme one-nvim hi! Normal guifg=#000000 guibg=#FFFFFF")
vim.api.nvim_command("augroup end")
vim.api.nvim_command("colorscheme one-nvim")
Th3Whit3Wolf commented 3 years ago

Or you could do

local vim, api, cmd = vim, vim.api, vim.cmd

local function augroups(definitions)
    for group_name, definition in pairs(definitions) do
        api.nvim_command("augroup " .. group_name)
        api.nvim_command("autocmd!")
        for _, def in ipairs(definition) do
            local command = table.concat(vim.tbl_flatten {"autocmd", def}, " ")
            api.nvim_command(command)
        end
        api.nvim_command("augroup END")
    end
end

local autocmds = {
    Highlight = {
        {"ColorScheme", "one-nvim", "hi! Normal guifg=#000000 guibg=#FFFFFF"}
    }
}

augroups(autocmds)
cmd 'colorscheme one-nvim'

It will do the same thing.

yamatsum commented 3 years ago

I know I can change it with autocmd but I don't want to use autocmd just to overwrite colors. This ticket will be closed so that I can proceed with the investigation. Thank you.