runtime(colors): color names in the v:colornames dict should be lower cased

Commit: 
https://github.com/vim/vim/commit/0f4054feb66ea55414f97add63b3070d7d7b5295
Author: Christian Brabandt <c...@256bit.org>
Date:   Mon Feb 5 10:30:01 2024 +0100

    runtime(colors): color names in the v:colornames dict should be lower cased
    
    Vim will lookup color names from the v:colornames dictionary by its
    lower case color name. So when sourcing the v:colornames dictionary,
    make sure to convert upper case color names to lower case.
    
    Also, while at it, mention in the documentation, that the dictionary
    should contain lower case names only.
    
    fixes: #13976
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/colors/lists/csscolors.vim 
b/runtime/colors/lists/csscolors.vim
index 74955226c..986333d77 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 7d81c6f75..073a0da11 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 9c12fb850..574b9c9dd 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 c4f59aee1..1c9f6f2b5 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.

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1rWvXG-00EkS3-1b%40256bit.org.

Raspunde prin e-mail lui