mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
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:
@@ -774,7 +774,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
See |:hi-normal| if you want to set the background color explicitly.
|
See |:hi-normal| if you want to set the background color explicitly.
|
||||||
*g:colors_name*
|
*g:colors_name*
|
||||||
When a color scheme is loaded (the "g:colors_name" variable is set)
|
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.
|
the color scheme adjusts to the value of 'background' this will work.
|
||||||
However, if the color scheme sets 'background' itself the effect may
|
However, if the color scheme sets 'background' itself the effect may
|
||||||
be undone. First delete the "g:colors_name" variable when needed.
|
be undone. First delete the "g:colors_name" variable when needed.
|
||||||
@@ -784,13 +784,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
:if $TERM ==# "xterm"
|
:if $TERM ==# "xterm"
|
||||||
: set background=dark
|
: set background=dark
|
||||||
:endif
|
: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
|
will change. To use other settings, place ":highlight" commands AFTER
|
||||||
the setting of the 'background' option.
|
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".
|
|
||||||
|
|
||||||
*'backspace'* *'bs'*
|
*'backspace'* *'bs'*
|
||||||
'backspace' 'bs' string (default "indent,eol,start")
|
'backspace' 'bs' string (default "indent,eol,start")
|
||||||
|
@@ -299,6 +299,8 @@ Options:
|
|||||||
global-local string options work.
|
global-local string options work.
|
||||||
|
|
||||||
'autoread' works in the terminal (if it supports "focus" events)
|
'autoread' works in the terminal (if it supports "focus" events)
|
||||||
|
'background' colorscheme is only reloaded if value is changed, not every
|
||||||
|
time it is set
|
||||||
'cpoptions' flags: |cpo-_|
|
'cpoptions' flags: |cpo-_|
|
||||||
'diffopt' "linematch" feature
|
'diffopt' "linematch" feature
|
||||||
'exrc' searches for ".nvim.lua", ".nvimrc", or ".exrc" files. The
|
'exrc' searches for ".nvim.lua", ".nvimrc", or ".exrc" files. The
|
||||||
|
8
runtime/lua/vim/_meta/options.lua
generated
8
runtime/lua/vim/_meta/options.lua
generated
@@ -191,7 +191,7 @@ vim.go.awa = vim.go.autowriteall
|
|||||||
--- See `:hi-normal` if you want to set the background color explicitly.
|
--- See `:hi-normal` if you want to set the background color explicitly.
|
||||||
--- *g:colors_name*
|
--- *g:colors_name*
|
||||||
--- When a color scheme is loaded (the "g:colors_name" variable is set)
|
--- 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.
|
--- the color scheme adjusts to the value of 'background' this will work.
|
||||||
--- However, if the color scheme sets 'background' itself the effect may
|
--- However, if the color scheme sets 'background' itself the effect may
|
||||||
--- be undone. First delete the "g:colors_name" variable when needed.
|
--- be undone. First delete the "g:colors_name" variable when needed.
|
||||||
@@ -203,13 +203,9 @@ vim.go.awa = vim.go.autowriteall
|
|||||||
--- : set background=dark
|
--- : set background=dark
|
||||||
--- :endif
|
--- :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
|
--- will change. To use other settings, place ":highlight" commands AFTER
|
||||||
--- the setting of the 'background' option.
|
--- 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".
|
|
||||||
---
|
---
|
||||||
--- @type string
|
--- @type string
|
||||||
vim.o.background = "dark"
|
vim.o.background = "dark"
|
||||||
|
@@ -316,7 +316,7 @@ return {
|
|||||||
See |:hi-normal| if you want to set the background color explicitly.
|
See |:hi-normal| if you want to set the background color explicitly.
|
||||||
*g:colors_name*
|
*g:colors_name*
|
||||||
When a color scheme is loaded (the "g:colors_name" variable is set)
|
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.
|
the color scheme adjusts to the value of 'background' this will work.
|
||||||
However, if the color scheme sets 'background' itself the effect may
|
However, if the color scheme sets 'background' itself the effect may
|
||||||
be undone. First delete the "g:colors_name" variable when needed.
|
be undone. First delete the "g:colors_name" variable when needed.
|
||||||
@@ -326,13 +326,9 @@ return {
|
|||||||
:if $TERM ==# "xterm"
|
:if $TERM ==# "xterm"
|
||||||
: set background=dark
|
: set background=dark
|
||||||
:endif
|
: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
|
will change. To use other settings, place ":highlight" commands AFTER
|
||||||
the setting of the 'background' option.
|
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',
|
expand_cb = 'expand_set_background',
|
||||||
full_name = 'background',
|
full_name = 'background',
|
||||||
|
@@ -663,12 +663,17 @@ int expand_set_ambiwidth(optexpand_T *args, int *numMatches, char ***matches)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// The 'background' option is changed.
|
/// The 'background' option is changed.
|
||||||
const char *did_set_background(optset_T *args FUNC_ATTR_UNUSED)
|
const char *did_set_background(optset_T *args)
|
||||||
{
|
{
|
||||||
if (check_opt_strings(p_bg, p_bg_values, false) != OK) {
|
if (check_opt_strings(p_bg, p_bg_values, false) != OK) {
|
||||||
return e_invarg;
|
return e_invarg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (args->os_oldval.string.data[0] == *p_bg) {
|
||||||
|
// Value was not changed
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
int dark = (*p_bg == 'd');
|
int dark = (*p_bg == 'd');
|
||||||
|
|
||||||
init_highlight(false, false);
|
init_highlight(false, false);
|
||||||
|
Reference in New Issue
Block a user