refactor: only reload colorscheme if &bg changed (#26598)

Currently, setting &bg at all re-initializes highlights and reloads
the active colorscheme, even if the actual value of &bg has not changed.
With https://github.com/neovim/neovim/pull/26595 this causes a
regression since &bg is set unconditionally based on the value detected
from the terminal.

Instead, only reload the colorscheme if the actual value of &bg has
changed.
This commit is contained in:
Gregory Anders
2023-12-16 11:18:45 -06:00
committed by GitHub
parent 7840760776
commit 8fb7419d7c
5 changed files with 14 additions and 19 deletions

View File

@@ -316,7 +316,7 @@ return {
See |:hi-normal| if you want to set the background color explicitly.
*g:colors_name*
When a color scheme is loaded (the "g:colors_name" variable is set)
setting 'background' will cause the color scheme to be reloaded. If
changing 'background' will cause the color scheme to be reloaded. If
the color scheme adjusts to the value of 'background' this will work.
However, if the color scheme sets 'background' itself the effect may
be undone. First delete the "g:colors_name" variable when needed.
@@ -326,13 +326,9 @@ return {
:if $TERM ==# "xterm"
: set background=dark
:endif
< When this option is set, the default settings for the highlight groups
< When this option is changed, the default settings for the highlight groups
will change. To use other settings, place ":highlight" commands AFTER
the setting of the 'background' option.
This option is also used in the "$VIMRUNTIME/syntax/syntax.vim" file
to select the colors for syntax highlighting. After changing this
option, you must load syntax.vim again to see the result. This can be
done with ":syntax on".
]=],
expand_cb = 'expand_set_background',
full_name = 'background',