diff --git a/runtime/colors/lists/csscolors.vim b/runtime/colors/lists/csscolors.vim index 74955226c2..986333d779 100644 --- a/runtime/colors/lists/csscolors.vim +++ b/runtime/colors/lists/csscolors.vim @@ -4,6 +4,9 @@ " Similar in spirit to rgb.txt, this plugin establishes a human-friendly name " for every color listed in the CSS standard: " +" Note: the color names should be in lower case, because Vim will lookup the +" a color by its lower case name. +" " https://www.w3.org/TR/css-color-3/ let s:keepcpo= &cpo @@ -26,7 +29,6 @@ call extend(v:colornames, { \ 'css_blue': '#0000FF', \ 'css_teal': '#008080', \ 'css_aqua': '#00FFFF', - \ \ 'css_aliceblue': '#f0f8ff', \ 'css_antiquewhite': '#faebd7', \ 'css_aquamarine': '#7fffd4', @@ -160,6 +162,14 @@ call extend(v:colornames, { \ 'css_yellowgreen': '#9acd32', \ }, 'keep') +" all keys should be in lower case, convert keys that are not yet +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 + let &cpo= s:keepcpo unlet s:keepcpo diff --git a/runtime/colors/lists/default.vim b/runtime/colors/lists/default.vim index 7d81c6f75e..073a0da11b 100644 --- a/runtime/colors/lists/default.vim +++ b/runtime/colors/lists/default.vim @@ -6,6 +6,8 @@ " time the highlight command fails to recognize a gui color. You can override " these colors by introducing a new colors/lists/default.vim file earlier in " the runtimepath. +" Note: the color names should be in lower case, because Vim will lookup the +" a color by its lower case name. " make sure line continuation works let s:keepcpo = &cpo @@ -802,6 +804,14 @@ call extend(v:colornames, { \ 'teal': '#008080' \ }, 'keep') +" all keys should be in lower case, convert keys that are not yet +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 + let &cpo = s:keepcpo unlet s:keepcpo diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 9c12fb8504..574b9c9dd9 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 9.1. Last change: 2024 Jan 14 +*eval.txt* For Vim version 9.1. Last change: 2024 Feb 05 VIM REFERENCE MANUAL by Bram Moolenaar @@ -2005,9 +2005,14 @@ v:collate The current locale setting for collation order of the runtime *v:colornames* v:colornames A dictionary that maps color names to hex color strings. These color names can be used with the |highlight-guifg|, - |highlight-guibg|, and |highlight-guisp| parameters. Updating - an entry in v:colornames has no immediate effect on the syntax - highlighting. The highlight commands (probably in a + |highlight-guibg|, and |highlight-guisp| parameters. + + The key values in the dictionary (the color names) should be + lower cased, because Vim looks up a color by its lower case + name. + + Updating an entry in v:colornames has no immediate effect on + the syntax highlighting. The highlight commands (probably in a colorscheme script) need to be re-evaluated in order to use the updated color values. For example: > diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index c4f59aee1b..1c9f6f2b58 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 9.1. Last change: 2024 Jan 24 +*syntax.txt* For Vim version 9.1. Last change: 2024 Feb 05 VIM REFERENCE MANUAL by Bram Moolenaar @@ -5265,7 +5265,8 @@ ctermul={color-nr} *highlight-ctermul* "cterm=" argument AFTER the "ctermfg=" or "ctermbg=" argument. Or use a number instead of a color name. - The case of the color names is ignored. + The case of the color names is ignored, however Vim will use lower + case color names when reading from the |v:colornames| dictionary. Note that for 16 color ansi style terminals (including xterms), the numbers in the NR-8 column is used. Here '*' means 'add 8' so that Blue is 12, DarkGray is 8 etc. @@ -5384,8 +5385,8 @@ guisp={color-name} *highlight-guisp* :highlight Comment guifg=#11f0c3 guibg=#ff00ff < If you are authoring a color scheme and use the same hexadecimal value - repeatedly, you can define a name for it in |v:colornames|. For - example: > + repeatedly, you can define a (lower case) name for it in |v:colornames|. + For example: > # provide a default value for this color but allow the user to # override it.