" 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
\ 'css_blue': '#0000FF',
\ 'css_teal': '#008080',
\ 'css_aqua': '#00FFFF',
- \
\ 'css_aliceblue': '#f0f8ff',
\ 'css_antiquewhite': '#faebd7',
\ 'css_aquamarine': '#7fffd4',
\ '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
" 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
\ '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
-*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
*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: >
-*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
"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.
: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.