runtime(colors): don't unnecessarily reload v:colornames dict
fixes: #14234 closes: #14235 Signed-off-by: Alin Mr <almr.oss@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
978178823b
commit
6d1d18084b
@ -1,5 +1,5 @@
|
|||||||
" Maintainer: Drew Vogel <dvogel@sidejump.org>
|
" Maintainer: Drew Vogel <dvogel@sidejump.org>
|
||||||
" Last Change: 2023 Apr 19
|
" Last Change: 2024 Mar 20
|
||||||
"
|
"
|
||||||
" Replaced rgb.txt as the source of de facto standard color names. This is
|
" Replaced rgb.txt as the source of de facto standard color names. This is
|
||||||
" sourced each time the colorscheme command is run. It is also sourced each
|
" sourced each time the colorscheme command is run. It is also sourced each
|
||||||
@ -13,7 +13,38 @@
|
|||||||
let s:keepcpo = &cpo
|
let s:keepcpo = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
call extend(v:colornames, {
|
function! s:Cleanup()
|
||||||
|
let &cpo = s:keepcpo
|
||||||
|
unlet s:keepcpo
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:AddColors(cnames) abort
|
||||||
|
call extend(v:colornames, a:cnames, 'keep')
|
||||||
|
|
||||||
|
" all keys should be in lower case, convert keys that are not yet
|
||||||
|
let len_after = len(v:colornames)
|
||||||
|
if len_after == len(a:cnames)
|
||||||
|
" after extend(): v:colornames has all the keys of default_cnames
|
||||||
|
" checked: v:colornames also has no extra keys
|
||||||
|
" => keys are the same, and keys(default_cnames) are known to be ok
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
for [key, val] in items(filter(copy(v:colornames), { key -> key =~ '\u'}))
|
||||||
|
call remove(v:colornames, key)
|
||||||
|
if !has_key(v:colornames, tolower(key))
|
||||||
|
call extend(v:colornames, {tolower(key): val}, 'keep')
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
if exists('s:default_cnames')
|
||||||
|
call s:AddColors(s:default_cnames)
|
||||||
|
call s:Cleanup()
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:default_cnames = {
|
||||||
\ 'snow': '#fffafa',
|
\ 'snow': '#fffafa',
|
||||||
\ 'ghost white': '#f8f8ff',
|
\ 'ghost white': '#f8f8ff',
|
||||||
\ 'ghostwhite': '#f8f8ff',
|
\ 'ghostwhite': '#f8f8ff',
|
||||||
@ -802,17 +833,9 @@ call extend(v:colornames, {
|
|||||||
\ 'rebeccapurple': '#663399',
|
\ 'rebeccapurple': '#663399',
|
||||||
\ 'silver': '#c0c0c0',
|
\ 'silver': '#c0c0c0',
|
||||||
\ 'teal': '#008080'
|
\ 'teal': '#008080'
|
||||||
\ }, 'keep')
|
\ }
|
||||||
|
|
||||||
" all keys should be in lower case, convert keys that are not yet
|
call s:AddColors(s:default_cnames)
|
||||||
for [key, val] in items(filter(copy(v:colornames), { key -> key =~ '\u'}))
|
call s:Cleanup()
|
||||||
call remove(v:colornames, key)
|
|
||||||
if !has_key(v:colornames, tolower(key))
|
|
||||||
call extend(v:colornames, {tolower(key): val}, 'keep')
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
let &cpo = s:keepcpo
|
|
||||||
unlet s:keepcpo
|
|
||||||
|
|
||||||
"vim: sw=4
|
"vim: sw=4
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 9.1. Last change: 2024 Feb 08
|
*eval.txt* For Vim version 9.1. Last change: 2024 Mar 20
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -2076,6 +2076,10 @@ v:colornames A dictionary that maps color names to hex color strings. These
|
|||||||
both automatically load all `colors/lists/default.vim` color
|
both automatically load all `colors/lists/default.vim` color
|
||||||
scripts.
|
scripts.
|
||||||
|
|
||||||
|
You can make changes to that file, but make sure to add new
|
||||||
|
keys instead of updating existing ones, otherwise Vim will skip
|
||||||
|
loading the file (thinking is hasn't been changed).
|
||||||
|
|
||||||
*v:completed_item* *completed_item-variable*
|
*v:completed_item* *completed_item-variable*
|
||||||
v:completed_item
|
v:completed_item
|
||||||
|Dictionary| containing the |complete-items| for the most
|
|Dictionary| containing the |complete-items| for the most
|
||||||
|
|||||||
Reference in New Issue
Block a user