diff options
Diffstat (limited to 'runtime/syntax')
64 files changed, 7777 insertions, 3483 deletions
diff --git a/runtime/syntax/2html.vim b/runtime/syntax/2html.vim deleted file mode 100644 index 5fbdad90f3..0000000000 --- a/runtime/syntax/2html.vim +++ /dev/null @@ -1,2068 +0,0 @@ -" Vim syntax support file -" Maintainer: Ben Fritz <fritzophrenic@gmail.com> -" Last Change: 2023 Sep 05 -" -" Additional contributors: -" -" Original by Bram Moolenaar <Bram@vim.org> -" Modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz> -" XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be> -" Made w3 compliant by Edd Barrett <vext01@gmail.com> -" Added html_font. Edd Barrett <vext01@gmail.com> -" Progress bar based off code from "progressbar widget" plugin by -" Andreas Politz, heavily modified: -" http://www.vim.org/scripts/script.php?script_id=2006 -" -" See Mercurial change logs for more! - -" Transform a file into HTML, using the current syntax highlighting. - -" this file uses line continuations -let s:cpo_sav = &cpo -let s:ls = &ls -let s:ei_sav = &eventignore -set cpo&vim - -" HTML filetype can take a while to load/highlight if the destination file -" already exists. -set eventignore+=FileType - -let s:end=line('$') - -" Font -if exists("g:html_font") - if type(g:html_font) == type([]) - let s:htmlfont = "'".. join(g:html_font,"','") .. "', monospace" - else - let s:htmlfont = "'".. g:html_font .. "', monospace" - endif -else - let s:htmlfont = "monospace" -endif - -let s:settings = tohtml#GetUserSettings() - -if s:settings.use_xhtml - let s:html5 = 0 -elseif s:settings.use_css && !s:settings.no_pre - let s:html5 = 1 -else - let s:html5 = 0 -endif - -if !exists('s:FOLDED_ID') - let s:FOLDED_ID = hlID("Folded") | lockvar s:FOLDED_ID - let s:FOLD_C_ID = hlID("FoldColumn") | lockvar s:FOLD_C_ID - let s:LINENR_ID = hlID('LineNr') | lockvar s:LINENR_ID - let s:DIFF_D_ID = hlID("DiffDelete") | lockvar s:DIFF_D_ID - let s:DIFF_A_ID = hlID("DiffAdd") | lockvar s:DIFF_A_ID - let s:DIFF_C_ID = hlID("DiffChange") | lockvar s:DIFF_C_ID - let s:DIFF_T_ID = hlID("DiffText") | lockvar s:DIFF_T_ID - let s:CONCEAL_ID = hlID('Conceal') | lockvar s:CONCEAL_ID -endif - -" Whitespace -if s:settings.pre_wrap - let s:whitespace = "white-space: pre-wrap; " -else - let s:whitespace = "" -endif - -if !empty(s:settings.prevent_copy) - if s:settings.no_invalid - " User has decided they don't want invalid markup. Still works in - " OpenOffice, and for text editors, but when pasting into Microsoft Word the - " input elements get pasted too and they cannot be deleted (at least not - " easily). - let s:unselInputType = "" - else - " Prevent from copy-pasting the input elements into Microsoft Word where - " they cannot be deleted easily by deliberately inserting invalid markup. - let s:unselInputType = " type='invalid_input_type'" - endif -endif - -" When gui colors are not supported, we can only guess the colors. -" TODO - is this true anymore? Is there a way to ask the terminal what colors -" each number means or read them from some file? -if &termguicolors || has("gui_running") - let s:whatterm = "gui" -else - let s:whatterm = "cterm" - if &t_Co == 8 - let s:cterm_color = { - \ 0: "#808080", 1: "#ff6060", 2: "#00ff00", 3: "#ffff00", - \ 4: "#8080ff", 5: "#ff40ff", 6: "#00ffff", 7: "#ffffff" - \ } - else - let s:cterm_color = { - \ 0: "#000000", 1: "#c00000", 2: "#008000", 3: "#804000", - \ 4: "#0000c0", 5: "#c000c0", 6: "#008080", 7: "#c0c0c0", - \ 8: "#808080", 9: "#ff6060", 10: "#00ff00", 11: "#ffff00", - \ 12: "#8080ff", 13: "#ff40ff", 14: "#00ffff", 15: "#ffffff" - \ } - - " Colors for 88 and 256 come from xterm. - if &t_Co == 88 - call extend(s:cterm_color, { - \ 16: "#000000", 17: "#00008b", 18: "#0000cd", 19: "#0000ff", - \ 20: "#008b00", 21: "#008b8b", 22: "#008bcd", 23: "#008bff", - \ 24: "#00cd00", 25: "#00cd8b", 26: "#00cdcd", 27: "#00cdff", - \ 28: "#00ff00", 29: "#00ff8b", 30: "#00ffcd", 31: "#00ffff", - \ 32: "#8b0000", 33: "#8b008b", 34: "#8b00cd", 35: "#8b00ff", - \ 36: "#8b8b00", 37: "#8b8b8b", 38: "#8b8bcd", 39: "#8b8bff", - \ 40: "#8bcd00", 41: "#8bcd8b", 42: "#8bcdcd", 43: "#8bcdff", - \ 44: "#8bff00", 45: "#8bff8b", 46: "#8bffcd", 47: "#8bffff", - \ 48: "#cd0000", 49: "#cd008b", 50: "#cd00cd", 51: "#cd00ff", - \ 52: "#cd8b00", 53: "#cd8b8b", 54: "#cd8bcd", 55: "#cd8bff", - \ 56: "#cdcd00", 57: "#cdcd8b", 58: "#cdcdcd", 59: "#cdcdff", - \ 60: "#cdff00", 61: "#cdff8b", 62: "#cdffcd", 63: "#cdffff", - \ 64: "#ff0000" - \ }) - call extend(s:cterm_color, { - \ 65: "#ff008b", 66: "#ff00cd", 67: "#ff00ff", 68: "#ff8b00", - \ 69: "#ff8b8b", 70: "#ff8bcd", 71: "#ff8bff", 72: "#ffcd00", - \ 73: "#ffcd8b", 74: "#ffcdcd", 75: "#ffcdff", 76: "#ffff00", - \ 77: "#ffff8b", 78: "#ffffcd", 79: "#ffffff", 80: "#2e2e2e", - \ 81: "#5c5c5c", 82: "#737373", 83: "#8b8b8b", 84: "#a2a2a2", - \ 85: "#b9b9b9", 86: "#d0d0d0", 87: "#e7e7e7" - \ }) - elseif &t_Co == 256 - call extend(s:cterm_color, { - \ 16: "#000000", 17: "#00005f", 18: "#000087", 19: "#0000af", - \ 20: "#0000d7", 21: "#0000ff", 22: "#005f00", 23: "#005f5f", - \ 24: "#005f87", 25: "#005faf", 26: "#005fd7", 27: "#005fff", - \ 28: "#008700", 29: "#00875f", 30: "#008787", 31: "#0087af", - \ 32: "#0087d7", 33: "#0087ff", 34: "#00af00", 35: "#00af5f", - \ 36: "#00af87", 37: "#00afaf", 38: "#00afd7", 39: "#00afff", - \ 40: "#00d700", 41: "#00d75f", 42: "#00d787", 43: "#00d7af", - \ 44: "#00d7d7", 45: "#00d7ff", 46: "#00ff00", 47: "#00ff5f", - \ 48: "#00ff87", 49: "#00ffaf", 50: "#00ffd7", 51: "#00ffff", - \ 52: "#5f0000", 53: "#5f005f", 54: "#5f0087", 55: "#5f00af", - \ 56: "#5f00d7", 57: "#5f00ff", 58: "#5f5f00", 59: "#5f5f5f", - \ 60: "#5f5f87", 61: "#5f5faf", 62: "#5f5fd7", 63: "#5f5fff", - \ 64: "#5f8700" - \ }) - call extend(s:cterm_color, { - \ 65: "#5f875f", 66: "#5f8787", 67: "#5f87af", 68: "#5f87d7", - \ 69: "#5f87ff", 70: "#5faf00", 71: "#5faf5f", 72: "#5faf87", - \ 73: "#5fafaf", 74: "#5fafd7", 75: "#5fafff", 76: "#5fd700", - \ 77: "#5fd75f", 78: "#5fd787", 79: "#5fd7af", 80: "#5fd7d7", - \ 81: "#5fd7ff", 82: "#5fff00", 83: "#5fff5f", 84: "#5fff87", - \ 85: "#5fffaf", 86: "#5fffd7", 87: "#5fffff", 88: "#870000", - \ 89: "#87005f", 90: "#870087", 91: "#8700af", 92: "#8700d7", - \ 93: "#8700ff", 94: "#875f00", 95: "#875f5f", 96: "#875f87", - \ 97: "#875faf", 98: "#875fd7", 99: "#875fff", 100: "#878700", - \ 101: "#87875f", 102: "#878787", 103: "#8787af", 104: "#8787d7", - \ 105: "#8787ff", 106: "#87af00", 107: "#87af5f", 108: "#87af87", - \ 109: "#87afaf", 110: "#87afd7", 111: "#87afff", 112: "#87d700" - \ }) - call extend(s:cterm_color, { - \ 113: "#87d75f", 114: "#87d787", 115: "#87d7af", 116: "#87d7d7", - \ 117: "#87d7ff", 118: "#87ff00", 119: "#87ff5f", 120: "#87ff87", - \ 121: "#87ffaf", 122: "#87ffd7", 123: "#87ffff", 124: "#af0000", - \ 125: "#af005f", 126: "#af0087", 127: "#af00af", 128: "#af00d7", - \ 129: "#af00ff", 130: "#af5f00", 131: "#af5f5f", 132: "#af5f87", - \ 133: "#af5faf", 134: "#af5fd7", 135: "#af5fff", 136: "#af8700", - \ 137: "#af875f", 138: "#af8787", 139: "#af87af", 140: "#af87d7", - \ 141: "#af87ff", 142: "#afaf00", 143: "#afaf5f", 144: "#afaf87", - \ 145: "#afafaf", 146: "#afafd7", 147: "#afafff", 148: "#afd700", - \ 149: "#afd75f", 150: "#afd787", 151: "#afd7af", 152: "#afd7d7", - \ 153: "#afd7ff", 154: "#afff00", 155: "#afff5f", 156: "#afff87", - \ 157: "#afffaf", 158: "#afffd7" - \ }) - call extend(s:cterm_color, { - \ 159: "#afffff", 160: "#d70000", 161: "#d7005f", 162: "#d70087", - \ 163: "#d700af", 164: "#d700d7", 165: "#d700ff", 166: "#d75f00", - \ 167: "#d75f5f", 168: "#d75f87", 169: "#d75faf", 170: "#d75fd7", - \ 171: "#d75fff", 172: "#d78700", 173: "#d7875f", 174: "#d78787", - \ 175: "#d787af", 176: "#d787d7", 177: "#d787ff", 178: "#d7af00", - \ 179: "#d7af5f", 180: "#d7af87", 181: "#d7afaf", 182: "#d7afd7", - \ 183: "#d7afff", 184: "#d7d700", 185: "#d7d75f", 186: "#d7d787", - \ 187: "#d7d7af", 188: "#d7d7d7", 189: "#d7d7ff", 190: "#d7ff00", - \ 191: "#d7ff5f", 192: "#d7ff87", 193: "#d7ffaf", 194: "#d7ffd7", - \ 195: "#d7ffff", 196: "#ff0000", 197: "#ff005f", 198: "#ff0087", - \ 199: "#ff00af", 200: "#ff00d7", 201: "#ff00ff", 202: "#ff5f00", - \ 203: "#ff5f5f", 204: "#ff5f87" - \ }) - call extend(s:cterm_color, { - \ 205: "#ff5faf", 206: "#ff5fd7", 207: "#ff5fff", 208: "#ff8700", - \ 209: "#ff875f", 210: "#ff8787", 211: "#ff87af", 212: "#ff87d7", - \ 213: "#ff87ff", 214: "#ffaf00", 215: "#ffaf5f", 216: "#ffaf87", - \ 217: "#ffafaf", 218: "#ffafd7", 219: "#ffafff", 220: "#ffd700", - \ 221: "#ffd75f", 222: "#ffd787", 223: "#ffd7af", 224: "#ffd7d7", - \ 225: "#ffd7ff", 226: "#ffff00", 227: "#ffff5f", 228: "#ffff87", - \ 229: "#ffffaf", 230: "#ffffd7", 231: "#ffffff", 232: "#080808", - \ 233: "#121212", 234: "#1c1c1c", 235: "#262626", 236: "#303030", - \ 237: "#3a3a3a", 238: "#444444", 239: "#4e4e4e", 240: "#585858", - \ 241: "#626262", 242: "#6c6c6c", 243: "#767676", 244: "#808080", - \ 245: "#8a8a8a", 246: "#949494", 247: "#9e9e9e", 248: "#a8a8a8", - \ 249: "#b2b2b2", 250: "#bcbcbc", 251: "#c6c6c6", 252: "#d0d0d0", - \ 253: "#dadada", 254: "#e4e4e4", 255: "#eeeeee" - \ }) - endif - endif -endif - -" Return good color specification: in GUI no transformation is done, in -" terminal return RGB values of known colors and empty string for unknown -if s:whatterm == "gui" - function! s:HtmlColor(color) - return a:color - endfun -else - function! s:HtmlColor(color) - if has_key(s:cterm_color, a:color) - return s:cterm_color[a:color] - else - return "" - endif - endfun -endif - -" Find out the background and foreground color for use later -let s:fgc = s:HtmlColor(synIDattr(hlID("Normal")->synIDtrans(), "fg#", s:whatterm)) -let s:bgc = s:HtmlColor(synIDattr(hlID("Normal")->synIDtrans(), "bg#", s:whatterm)) -if s:fgc == "" - let s:fgc = ( &background == "dark" ? "#ffffff" : "#000000" ) -endif -if s:bgc == "" - let s:bgc = ( &background == "dark" ? "#000000" : "#ffffff" ) -endif - -if !s:settings.use_css - " Return opening HTML tag for given highlight id - function! s:HtmlOpening(id, extra_attrs) - let a = "" - let translated_ID = synIDtrans(a:id) - if synIDattr(translated_ID, "inverse") - " For inverse, we always must set both colors (and exchange them) - let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) - let a = a .. '<span '..a:extra_attrs..'style="background-color: ' .. ( x != "" ? x : s:fgc ) .. '">' - let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) - let a = a .. '<font color="' .. ( x != "" ? x : s:bgc ) .. '">' - else - let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) - if x != "" - let a = a .. '<span '..a:extra_attrs..'style="background-color: ' .. x .. '">' - elseif !empty(a:extra_attrs) - let a = a .. '<span '..a:extra_attrs..'>' - endif - let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) - if x != "" | let a = a .. '<font color="' .. x .. '">' | endif - endif - if synIDattr(translated_ID, "bold") | let a = a .. "<b>" | endif - if synIDattr(translated_ID, "italic") | let a = a .. "<i>" | endif - if synIDattr(translated_ID, "underline") | let a = a .. "<u>" | endif - return a - endfun - - " Return closing HTML tag for given highlight id - function! s:HtmlClosing(id, has_extra_attrs) - let a = "" - let translated_ID = synIDtrans(a:id) - if synIDattr(translated_ID, "underline") | let a = a .. "</u>" | endif - if synIDattr(translated_ID, "italic") | let a = a .. "</i>" | endif - if synIDattr(translated_ID, "bold") | let a = a .. "</b>" | endif - if synIDattr(translated_ID, "inverse") - let a = a .. '</font></span>' - else - let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) - if x != "" | let a = a .. '</font>' | endif - let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) - if x != "" || a:has_extra_attrs | let a = a .. '</span>' | endif - endif - return a - endfun -endif - -" Use a different function for formatting based on user options. This way we -" can avoid a lot of logic during the actual execution. -" -" Build the function line by line containing only what is needed for the options -" in use for maximum code sharing with minimal branch logic for greater speed. -" -" Note, 'exec' commands do not recognize line continuations, so must concatenate -" lines rather than continue them. -if s:settings.use_css - " save CSS to a list of rules to add to the output at the end of processing - - " first, get the style names we need - let s:wrapperfunc_lines = [] - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, make_unselectable, unformatted) - - let l:style_name = synIDattr(a:style_id, "name", s:whatterm) - ENDLET - if &diff - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - let l:diff_style_name = synIDattr(a:diff_style_id, "name", s:whatterm) - ENDLET - - " Add normal groups and diff groups to separate lists so we can order them to - " allow diff highlight to override normal highlight - - " if primary style IS a diff style, grab it from the diff cache instead - " (always succeeds because we pre-populate it) - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - - if a:style_id == s:DIFF_D_ID || a:style_id == s:DIFF_A_ID || a:style_id == s:DIFF_C_ID || a:style_id == s:DIFF_T_ID - let l:saved_style = get(s:diffstylelist,a:style_id) - else - ENDLET - endif - - " get primary style info from cache or build it on the fly if not found - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - let l:saved_style = get(s:stylelist,a:style_id) - if type(l:saved_style) == type(0) - unlet l:saved_style - let l:saved_style = s:CSS1(a:style_id) - if l:saved_style != "" - let l:saved_style = "." .. l:style_name .. " { " .. l:saved_style .. "}" - endif - let s:stylelist[a:style_id] = l:saved_style - endif - ENDLET - if &diff - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - endif - ENDLET - endif -" Ignore this comment, just bypassing a highlighting issue: if - - " Build the wrapper tags around the text. It turns out that caching these - " gives pretty much zero performance gain and adds a lot of logic. - - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - - if l:saved_style == "" && empty(a:extra_attrs) - ENDLET - if &diff - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - if a:diff_style_id <= 0 - ENDLET - endif - " no surroundings if neither primary nor diff style has any info - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - return a:text - ENDLET - if &diff - " no primary style, but diff style - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - else - return '<span class="' ..l:diff_style_name .. '">'..a:text.."</span>" - endif - ENDLET - endif - " Ignore this comment, just bypassing a highlighting issue: if - - " open tag for non-empty primary style - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - else - ENDLET - " non-empty primary style. handle either empty or non-empty diff style. - " - " separate the two classes by a space to apply them both if there is a diff - " style name, unless the primary style is empty, then just use the diff style - " name - let s:diffstyle = - \ (&diff ? '(a:diff_style_id <= 0 ? "" : " " .. l:diff_style_name)..' - \ : '') - if s:settings.prevent_copy == "" - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim eval ENDLET - return "<span "..a:extra_attrs..'class="' .. l:style_name ..{s:diffstyle}'">'..a:text.."</span>" - ENDLET - else - - " New method: use generated content in the CSS. The only thing needed here - " is a span with no content, with an attribute holding the desired text. - " - " Old method: use an <input> element when text is unsectable. This is still - " used in conditional comments for Internet Explorer, where the new method - " doesn't work. - " - " Wrap the <input> in a <span> to allow fixing the stupid bug in some fonts - " which cause browsers to display a 1px gap between lines when these - " <input>s have a background color (maybe not really a bug, this isn't - " well-defined) - " - " use strwidth, because we care only about how many character boxes are - " needed to size the input, we don't care how many characters (including - " separately counted composing chars, from strchars()) or bytes (from - " len())the string contains. strdisplaywidth() is not needed because none of - " the unselectable groups can contain tab characters (fold column, fold - " text, line number). - " - " Note, if maxlength property needs to be added in the future, it will need - " to use strchars(), because HTML specifies that the maxlength parameter - " uses the number of unique codepoints for its limit. - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim eval ENDLET - if a:make_unselectable - let return_span = "<span "..a:extra_attrs..'class="' .. l:style_name ..{s:diffstyle}'"' - ENDLET - if s:settings.use_input_for_pc !=# 'all' - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - let return_span ..= " data-" .. l:style_name .. '-content="'..a:text..'"' - ENDLET - endif - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - let return_span ..= '>' - ENDLET - if s:settings.use_input_for_pc !=# 'none' - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim eval ENDLET - let return_span ..= '<input'..s:unselInputType..' class="' .. l:style_name ..{s:diffstyle}'"' - let return_span ..= ' value="'..substitute(a:unformatted,'\s\+$',"","")..'"' - let return_span ..= " onselect='this.blur(); return false;'" - let return_span ..= " onmousedown='this.blur(); return false;'" - let return_span ..= " onclick='this.blur(); return false;'" - let return_span ..= " readonly='readonly'" - let return_span ..= ' size="'..strwidth(a:unformatted)..'"' - let return_span ..= (s:settings.use_xhtml ? '/>' : '>') - ENDLET - endif - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim eval ENDLET - return return_span..'</span>' - else - return "<span "..a:extra_attrs..'class="' .. l:style_name .. {s:diffstyle}'">'..a:text.."</span>" - endif - ENDLET - endif - call add(s:wrapperfunc_lines, []) - let s:wrapperfunc_lines[-1] =<< trim ENDLET - endif - endfun - ENDLET -else - " Non-CSS method just needs the wrapper. - " - " Functions used to get opening/closing automatically return null strings if - " no styles exist. - if &diff - let s:wrapperfunc_lines =<< trim ENDLET - function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2) - if a:diff_style_id <= 0 - let l:diff_opening = s:HtmlOpening(a:diff_style_id, "") - let l:diff_closing = s:HtmlClosing(a:diff_style_id, 0) - else - let l:diff_opening = "" - let l:diff_closing = "" - endif - return s:HtmlOpening(a:style_id, a:extra_attrs)..l:diff_opening..a:text..l:diff_closing..s:HtmlClosing(a:style_id, !empty(a:extra_attrs)) - endfun - ENDLET - else - let s:wrapperfunc_lines =<< trim ENDLET - function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2) - return s:HtmlOpening(a:style_id, a:extra_attrs)..a:text..s:HtmlClosing(a:style_id, !empty(a:extra_attrs)) - endfun - ENDLET - endif -endif - -" create the function we built line by line above -exec join(flatten(s:wrapperfunc_lines), "\n") - -let s:diff_mode = &diff - -" Return HTML valid characters enclosed in a span of class style_name with -" unprintable characters expanded and double spaces replaced as necessary. -" -" TODO: eliminate unneeded logic like done for BuildStyleWrapper -function! s:HtmlFormat(text, style_id, diff_style_id, extra_attrs, make_unselectable) - " Replace unprintable characters - let unformatted = strtrans(a:text) - - let formatted = unformatted - - " Replace the reserved html characters - let formatted = substitute(formatted, '&', '\&', 'g') - let formatted = substitute(formatted, '<', '\<', 'g') - let formatted = substitute(formatted, '>', '\>', 'g') - let formatted = substitute(formatted, '"', '\"', 'g') - " ' is not valid in HTML but it is in XHTML, so just use the numeric - " reference for it instead. Needed because it could appear in quotes - " especially if unselectable regions is turned on. - let formatted = substitute(formatted, '"', '\'', 'g') - - " Replace a "form feed" character with HTML to do a page break - " TODO: need to prevent this in unselectable areas? Probably it should never - " BE in an unselectable area... - let formatted = substitute(formatted, "\x0c", '<hr class="PAGE-BREAK">', 'g') - - " Replace double spaces, leading spaces, and trailing spaces if needed - if ' ' != s:HtmlSpace - let formatted = substitute(formatted, ' ', s:HtmlSpace .. s:HtmlSpace, 'g') - let formatted = substitute(formatted, '^ ', s:HtmlSpace, 'g') - let formatted = substitute(formatted, ' \+$', s:HtmlSpace, 'g') - endif - - " Enclose in the correct format - return s:BuildStyleWrapper(a:style_id, a:diff_style_id, a:extra_attrs, formatted, a:make_unselectable, unformatted) -endfun - -" set up functions to call HtmlFormat in certain ways based on whether the -" element is supposed to be unselectable or not -if s:settings.prevent_copy =~# 'n' - if s:settings.number_lines - if s:settings.line_ids - function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) - if a:lnr > 0 - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'..(exists('g:html_diff_win_num') ? 'W'..g:html_diff_win_num : "")..'L'..a:lnr..s:settings.id_suffix..'" ', 1) - else - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) - endif - endfun - else - function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) - endfun - endif - elseif s:settings.line_ids - " if lines are not being numbered the only reason this function gets called - " is to put the line IDs on each line; "text" will be empty but lnr will - " always be non-zero, however we don't want to use the <input> because that - " won't work as nice for empty text - function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'..(exists('g:html_diff_win_num') ? 'W'..g:html_diff_win_num : "")..'L'..a:lnr..s:settings.id_suffix..'" ', 0) - endfun - endif -else - if s:settings.line_ids - function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) - if a:lnr > 0 - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'..(exists('g:html_diff_win_num') ? 'W'..g:html_diff_win_num : "")..'L'..a:lnr..s:settings.id_suffix..'" ', 0) - else - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0) - endif - endfun - else - function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0) - endfun - endif -endif -if s:settings.prevent_copy =~# 'd' - function! s:HtmlFormat_d(text, style_id, diff_style_id) - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) - endfun -else - function! s:HtmlFormat_d(text, style_id, diff_style_id) - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0) - endfun -endif -if s:settings.prevent_copy =~# 'f' - if s:settings.use_input_for_pc ==# 'none' - " Simply space-pad to the desired width inside the generated content (note - " that the FoldColumn definition includes a whitespace:pre rule) - function! s:FoldColumn_build(char, len, numfill, char2, class, click) - return "<a href='#' class='"..a:class.."' onclick='"..a:click.."' data-FoldColumn-content='". - \ repeat(a:char, a:len)..a:char2..repeat(' ', a:numfill). - \ "'></a>" - endfun - function! s:FoldColumn_fill() - return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, "", 1) - endfun - else - " Note the <input> elements for fill spaces will have a single space for - " content, to allow active cursor CSS selection to work. - " - " Wrap the whole thing in a span for the 1px padding workaround for gaps. - " - " Build the function line by line containing only what is needed for the - " options in use for maximum code sharing with minimal branch logic for - " greater speed. - " - " Note, 'exec' commands do not recognize line continuations, so must - " concatenate lines rather than continue them. - let s:build_fun_lines = [] - call add(s:build_fun_lines, []) - let s:build_fun_lines[-1] =<< trim ENDLET - function! s:FoldColumn_build(char, len, numfill, char2, class, click) - let l:input_open = "<input readonly='readonly'"..s:unselInputType - let l:input_open ..= " onselect='this.blur(); return false;'" - let l:input_open ..= " onmousedown='this.blur(); "..a:click.." return false;'" - let l:input_open ..= " onclick='return false;' size='" - let l:input_open ..= string(a:len + (empty(a:char2) ? 0 : 1) + a:numfill) .. "' " - let l:common_attrs = "class='FoldColumn' value='" - let l:input_close = (s:settings.use_xhtml ? "' />" : "'>") - let l:return_span = "<span class='"..a:class.."'>" - let l:return_span ..= l:input_open..l:common_attrs..repeat(a:char, a:len)..(a:char2) - let l:return_span ..= l:input_close - ENDLET - if s:settings.use_input_for_pc ==# 'fallback' - call add(s:build_fun_lines, []) - let s:build_fun_lines[-1] =<< trim ENDLET - let l:return_span ..= "<a href='#' class='FoldColumn' onclick='"..a:click.."'" - let l:return_span ..= " data-FoldColumn-content='" - let l:return_span ..= repeat(a:char, a:len)..a:char2..repeat(' ', a:numfill) - let l:return_span ..= "'></a>" - ENDLET - endif - call add(s:build_fun_lines, []) - let s:build_fun_lines[-1] =<< trim ENDLET - let l:return_span ..= "</span>" - return l:return_span - endfun - ENDLET - " create the function we built line by line above - exec join(flatten(s:build_fun_lines), "\n") - - function! s:FoldColumn_fill() - return s:FoldColumn_build(' ', s:foldcolumn, 0, '', 'FoldColumn', '') - endfun - endif -else - " For normal fold columns, simply space-pad to the desired width (note that - " the FoldColumn definition includes a whitespace:pre rule) - function! s:FoldColumn_build(char, len, numfill, char2, class, click) - return "<a href='#' class='"..a:class.."' onclick='"..a:click.."'>". - \ repeat(a:char, a:len)..a:char2..repeat(' ', a:numfill). - \ "</a>" - endfun - function! s:FoldColumn_fill() - return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, "", 0) - endfun -endif -if s:settings.prevent_copy =~# 't' - " put an extra empty span at the end for dynamic folds, so the linebreak can - " be surrounded. Otherwise do it as normal. - " - " TODO: isn't there a better way to do this, than placing it here and using a - " substitute later? - if s:settings.dynamic_folds - function! s:HtmlFormat_t(text, style_id, diff_style_id) - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) . - \ s:HtmlFormat("", a:style_id, 0, "", 0) - endfun - else - function! s:HtmlFormat_t(text, style_id, diff_style_id) - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) - endfun - endif -else - function! s:HtmlFormat_t(text, style_id, diff_style_id) - return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0) - endfun -endif - -" Return CSS style describing given highlight id (can be empty) -function! s:CSS1(id) - let a = "" - let translated_ID = synIDtrans(a:id) - if synIDattr(translated_ID, "inverse") - " For inverse, we always must set both colors (and exchange them) - let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) - let a = a .. "color: " .. ( x != "" ? x : s:bgc ) .. "; " - let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) - let a = a .. "background-color: " .. ( x != "" ? x : s:fgc ) .. "; " - else - let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) - if x != "" | let a = a .. "color: " .. x .. "; " | endif - let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) - if x != "" - let a = a .. "background-color: " .. x .. "; " - " stupid hack because almost every browser seems to have at least one font - " which shows 1px gaps between lines which have background - let a = a .. "padding-bottom: 1px; " - elseif (translated_ID == s:FOLDED_ID || translated_ID == s:LINENR_ID || translated_ID == s:FOLD_C_ID) && !empty(s:settings.prevent_copy) - " input elements default to a different color than the rest of the page - let a = a .. "background-color: " .. s:bgc .. "; " - endif - endif - if synIDattr(translated_ID, "bold") | let a = a .. "font-weight: bold; " | endif - if synIDattr(translated_ID, "italic") | let a = a .. "font-style: italic; " | endif - if synIDattr(translated_ID, "underline") | let a = a .. "text-decoration: underline; " | endif - return a -endfun - -if s:settings.dynamic_folds - " compares two folds as stored in our list of folds - " A fold is "less" than another if it starts at an earlier line number, - " or ends at a later line number, ties broken by fold level - function! s:FoldCompare(f1, f2) - if a:f1.firstline != a:f2.firstline - " put it before if it starts earlier - return a:f1.firstline - a:f2.firstline - elseif a:f1.lastline != a:f2.lastline - " put it before if it ends later - return a:f2.lastline - a:f1.lastline - else - " if folds begin and end on the same lines, put lowest fold level first - return a:f1.level - a:f2.level - endif - endfunction - -endif - - -" Set some options to make it work faster. -" Don't report changes for :substitute, there will be many of them. -" Don't change other windows; turn off scroll bind temporarily -let s:old_title = &title -let s:old_icon = &icon -let s:old_et = &l:et -let s:old_bind = &l:scrollbind -let s:old_report = &report -let s:old_search = @/ -let s:old_more = &more -set notitle noicon -setlocal et -set nomore -set report=1000000 -setlocal noscrollbind - -if exists(':ownsyntax') && exists('w:current_syntax') - let s:current_syntax = w:current_syntax -elseif exists('b:current_syntax') - let s:current_syntax = b:current_syntax -else - let s:current_syntax = 'none' -endif - -if s:current_syntax == '' - let s:current_syntax = 'none' -endif - -" If the user is sourcing this script directly then the plugin version isn't -" known because the main plugin script didn't load. In the usual case where the -" user still has the full Vim runtime installed, or has this full plugin -" installed in a package or something, then we can extract the version from the -" main plugin file at it's usual spot relative to this file. Otherwise the user -" is assembling their runtime piecemeal and we have no idea what versions of -" other files may be present so don't even try to make a guess or assume the -" presence of other specific files with specific meaning. -" -" We don't want to actually source the main plugin file here because the user -" may have a good reason not to (e.g. they define their own TOhtml command or -" something). -" -" If this seems way too complicated and convoluted, it is. Probably I should -" have put the version information in the autoload file from the start. But the -" version has been in the global variable for so long that changing it could -" break a lot of user scripts. -if exists("g:loaded_2html_plugin") - let s:pluginversion = g:loaded_2html_plugin -else - if !exists("g:unloaded_tohtml_plugin") - let s:main_plugin_path = expand("<sfile>:p:h:h").."/plugin/tohtml.vim" - if filereadable(s:main_plugin_path) - let s:lines = readfile(s:main_plugin_path, "", 20) - call filter(s:lines, 'v:val =~ "loaded_2html_plugin = "') - if empty(s:lines) - let g:unloaded_tohtml_plugin = "unknown" - else - let g:unloaded_tohtml_plugin = substitute(s:lines[0], '.*loaded_2html_plugin = \([''"]\)\(\%(\1\@!.\)\+\)\1', '\2', '') - endif - unlet s:lines - else - let g:unloaded_tohtml_plugin = "unknown" - endif - unlet s:main_plugin_path - endif - let s:pluginversion = g:unloaded_tohtml_plugin -endif - -" Split window to create a buffer with the HTML file. -let s:orgbufnr = winbufnr(0) -let s:origwin_stl = &l:stl -if expand("%") == "" - if exists('g:html_diff_win_num') - exec 'new Untitled_win'..g:html_diff_win_num..'.'.(s:settings.use_xhtml ? 'xhtml' : 'html') - else - exec 'new Untitled.'..(s:settings.use_xhtml ? 'xhtml' : 'html') - endif -else - exec 'new %.'..(s:settings.use_xhtml ? 'xhtml' : 'html') -endif - -" Resize the new window to very small in order to make it draw faster -let s:old_winheight = winheight(0) -let s:old_winfixheight = &l:winfixheight -if s:old_winheight > 2 - resize 1 " leave enough room to view one line at a time - norm! G - norm! zt -endif -setlocal winfixheight - -let s:newwin_stl = &l:stl - -" on the new window, set the least time-consuming fold method -let s:old_fen = &foldenable -setlocal foldmethod=manual -setlocal nofoldenable - -let s:newwin = winnr() -let s:orgwin = bufwinnr(s:orgbufnr) - -setlocal modifiable -%d -let s:old_paste = &paste -set paste -let s:old_magic = &magic -set magic - -" set the fileencoding to match the charset we'll be using -let &l:fileencoding=s:settings.vim_encoding - -" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte -" order mark is highly recommend on the web when using multibyte encodings. But, -" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim -" determine when it is actually inserted. -if s:settings.vim_encoding == 'utf-8' - setlocal nobomb -else - setlocal bomb -endif - -let s:lines = [] - -if s:settings.use_xhtml - if s:settings.encoding != "" - call add(s:lines, "<?xml version=\"1.0\" encoding=\"" .. s:settings.encoding .. "\"?>") - else - call add(s:lines, "<?xml version=\"1.0\"?>") - endif - let s:tag_close = ' />' -else - let s:tag_close = '>' -endif - -let s:HtmlSpace = ' ' -let s:LeadingSpace = ' ' -let s:HtmlEndline = '' -if s:settings.no_pre - let s:HtmlEndline = '<br' .. s:tag_close - let s:LeadingSpace = s:settings.use_xhtml ? ' ' : ' ' - let s:HtmlSpace = '\' .. s:LeadingSpace -endif - -" HTML header, with the title and generator ;-). Left free space for the CSS, -" to be filled at the end. -if !s:settings.no_doc - call extend(s:lines, [ - \ "<html>", - \ "<head>"]) - " include encoding as close to the top as possible, but only if not already - " contained in XML information (to avoid haggling over content type) - if s:settings.encoding != "" && !s:settings.use_xhtml - if s:html5 - call add(s:lines, '<meta charset="' .. s:settings.encoding .. '"' .. s:tag_close) - else - call add(s:lines, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" .. s:settings.encoding .. '"' .. s:tag_close) - endif - endif - call extend(s:lines, [ - \ ("<title>"..expand("%:p:~").."</title>"), - \ ("<meta name=\"Generator\" content=\"Vim/"..v:version/100.."."..v:version%100..'"'..s:tag_close), - \ ("<meta name=\"plugin-version\" content=\""..s:pluginversion..'"'..s:tag_close) - \ ]) - call add(s:lines, '<meta name="syntax" content="'..s:current_syntax..'"'..s:tag_close) - call add(s:lines, '<meta name="settings" content="'.. - \ join(filter(keys(s:settings),'s:settings[v:val]'),',').. - \ ',prevent_copy='..s:settings.prevent_copy.. - \ ',use_input_for_pc='..s:settings.use_input_for_pc.. - \ '"'..s:tag_close) - call add(s:lines, '<meta name="colorscheme" content="'.. - \ (exists('g:colors_name') - \ ? g:colors_name - \ : 'none').. '"'..s:tag_close) - - if s:settings.use_css - call extend(s:lines, [ - \ "<style" .. (s:html5 ? "" : " type=\"text/css\"") .. ">", - \ s:settings.use_xhtml ? "" : "<!--"]) - let s:ieonly = [] - if s:settings.dynamic_folds - if s:settings.hover_unfold - " if we are doing hover_unfold, use css 2 with css 1 fallback for IE6 - call extend(s:lines, [ - \ ".FoldColumn { text-decoration: none; white-space: pre; }", - \ "", - \ "body * { margin: 0; padding: 0; }", "", - \ ".open-fold > span.Folded { display: none; }", - \ ".open-fold > .fulltext { display: inline; }", - \ ".closed-fold > .fulltext { display: none; }", - \ ".closed-fold > span.Folded { display: inline; }", - \ "", - \ ".open-fold > .toggle-open { display: none; }", - \ ".open-fold > .toggle-closed { display: inline; }", - \ ".closed-fold > .toggle-open { display: inline; }", - \ ".closed-fold > .toggle-closed { display: none; }", - \ "", "", - \ '/* opening a fold while hovering won''t be supported by IE6 and other', - \ "similar browsers, but it should fail gracefully. */", - \ ".closed-fold:hover > .fulltext { display: inline; }", - \ ".closed-fold:hover > .toggle-filler { display: none; }", - \ ".closed-fold:hover > .Folded { display: none; }"]) - " TODO: IE6 is REALLY old and I can't even test it anymore. Maybe we - " should remove this? Leave it in for now, it was working at one point, - " and doesn't affect any modern browsers. Even newer IE versions should - " support the above code and ignore the following. - let s:ieonly = [ - \ "<!--[if lt IE 7]><style type=\"text/css\">", - \ ".open-fold .fulltext { display: inline; }", - \ ".open-fold span.Folded { display: none; }", - \ ".open-fold .toggle-open { display: none; }", - \ ".open-fold .toggle-closed { display: inline; }", - \ "", - \ ".closed-fold .fulltext { display: none; }", - \ ".closed-fold span.Folded { display: inline; }", - \ ".closed-fold .toggle-open { display: inline; }", - \ ".closed-fold .toggle-closed { display: none; }", - \ "</style>", - \ "<![endif]-->", - \] - else - " if we aren't doing hover_unfold, use CSS 1 only - call extend(s:lines, [ - \ ".FoldColumn { text-decoration: none; white-space: pre; }", - \ ".open-fold .fulltext { display: inline; }", - \ ".open-fold span.Folded { display: none; }", - \ ".open-fold .toggle-open { display: none; }", - \ ".open-fold .toggle-closed { display: inline; }", - \ "", - \ ".closed-fold .fulltext { display: none; }", - \ ".closed-fold span.Folded { display: inline; }", - \ ".closed-fold .toggle-open { display: inline; }", - \ ".closed-fold .toggle-closed { display: none; }", - \]) - endif - endif - " else we aren't doing any dynamic folding, no need for any special rules - - call extend(s:lines, [ - \ s:settings.use_xhtml ? "" : '-->', - \ "</style>", - \]) - call extend(s:lines, s:ieonly) - unlet s:ieonly - endif - - let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids - - " insert script tag if needed - if s:uses_script - call extend(s:lines, [ - \ "", - \ "<script" .. (s:html5 ? "" : " type='text/javascript'") .. ">", - \ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"]) - endif - - " insert javascript to toggle folds open and closed - if s:settings.dynamic_folds - call extend(s:lines, [ - \ "", - \ "function toggleFold(objID)", - \ "{", - \ " var fold;", - \ " fold = document.getElementById(objID);", - \ " if (fold.className == 'closed-fold')", - \ " {", - \ " fold.className = 'open-fold';", - \ " }", - \ " else if (fold.className == 'open-fold')", - \ " {", - \ " fold.className = 'closed-fold';", - \ " }", - \ "}" - \ ]) - endif - - if s:settings.line_ids - " insert javascript to get IDs from line numbers, and to open a fold before - " jumping to any lines contained therein - call extend(s:lines, [ - \ "", - \ "/* function to open any folds containing a jumped-to line before jumping to it */", - \ "function JumpToLine()", - \ "{", - \ " var lineNum;", - \ " lineNum = window.location.hash;", - \ " lineNum = lineNum.substr(1); /* strip off '#' */", - \ "", - \ " if (lineNum.indexOf('L') == -1) {", - \ " lineNum = 'L'+lineNum;", - \ " }", - \ " var lineElem = document.getElementById(lineNum);" - \ ]) - - if s:settings.dynamic_folds - call extend(s:lines, [ - \ "", - \ " /* navigate upwards in the DOM tree to open all folds containing the line */", - \ " var node = lineElem;", - \ " while (node && node.id != 'vimCodeElement"..s:settings.id_suffix.."')", - \ " {", - \ " if (node.className == 'closed-fold')", - \ " {", - \ " node.className = 'open-fold';", - \ " }", - \ " node = node.parentNode;", - \ " }", - \ ]) - endif - call extend(s:lines, [ - \ " /* Always jump to new location even if the line was hidden inside a fold, or", - \ " * we corrected the raw number to a line ID.", - \ " */", - \ " if (lineElem) {", - \ " lineElem.scrollIntoView(true);", - \ " }", - \ " return true;", - \ "}", - \ "if ('onhashchange' in window) {", - \ " window.onhashchange = JumpToLine;", - \ "}" - \ ]) - endif - - " insert script closing tag if needed - if s:uses_script - call extend(s:lines, [ - \ '', - \ s:settings.use_xhtml ? '//]]>' : '-->', - \ "</script>" - \ ]) - endif - - call extend(s:lines, ["</head>", - \ "<body"..(s:settings.line_ids ? " onload='JumpToLine();'" : "")..">"]) -endif - -if s:settings.no_pre - " if we're not using CSS we use a font tag which can't have a div inside - if s:settings.use_css - call extend(s:lines, ["<div id='vimCodeElement" .. s:settings.id_suffix .. "'>"]) - endif -else - call extend(s:lines, ["<pre id='vimCodeElement" .. s:settings.id_suffix .. "'>"]) -endif - -exe s:orgwin .. "wincmd w" - -" caches of style data -" initialize to include line numbers if using them -if s:settings.number_lines - let s:stylelist = { s:LINENR_ID : ".LineNr { " .. s:CSS1( s:LINENR_ID ) .. "}" } -else - let s:stylelist = {} -endif -let s:diffstylelist = { - \ s:DIFF_A_ID : ".DiffAdd { " .. s:CSS1( s:DIFF_A_ID ) .. "}", - \ s:DIFF_C_ID : ".DiffChange { " .. s:CSS1( s:DIFF_C_ID ) .. "}", - \ s:DIFF_D_ID : ".DiffDelete { " .. s:CSS1( s:DIFF_D_ID ) .. "}", - \ s:DIFF_T_ID : ".DiffText { " .. s:CSS1( s:DIFF_T_ID ) .. "}" - \ } - -" set up progress bar in the status line -if !s:settings.no_progress - " ProgressBar Indicator - let s:progressbar={} - - " Progressbar specific functions - - func! s:SetProgbarColor() - if hlID("TOhtmlProgress") != 0 - hi! link TOhtmlProgress_auto TOhtmlProgress - elseif hlID("TOhtmlProgress_auto")==0 || - \ !exists("s:last_colors_name") || !exists("g:colors_name") || - \ g:colors_name != s:last_colors_name - let s:last_colors_name = exists("g:colors_name") ? g:colors_name : "none" - - let l:diffatr = synIDattr(hlID("DiffDelete")->synIDtrans(), "reverse", s:whatterm) ? "fg#" : "bg#" - let l:stlatr = synIDattr(hlID("StatusLine")->synIDtrans(), "reverse", s:whatterm) ? "fg#" : "bg#" - - let l:progbar_color = synIDattr(hlID("DiffDelete")->synIDtrans(), l:diffatr, s:whatterm) - let l:stl_color = synIDattr(hlID("StatusLine")->synIDtrans(), l:stlatr, s:whatterm) - - if "" == l:progbar_color - let l:progbar_color = synIDattr(hlID("DiffDelete")->synIDtrans(), "reverse", s:whatterm) ? s:fgc : s:bgc - endif - if "" == l:stl_color - let l:stl_color = synIDattr(hlID("StatusLine")->synIDtrans(), "reverse", s:whatterm) ? s:fgc : s:bgc - endif - - if l:progbar_color == l:stl_color - if s:whatterm == 'cterm' - if l:progbar_color >= (&t_Co/2) - let l:progbar_color-=1 - else - let l:progbar_color+=1 - endif - else - let l:rgb = map(matchlist(l:progbar_color, '#\zs\x\x\ze\(\x\x\)\(\x\x\)')[:2], 'str2nr(v:val, 16)') - let l:avg = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3 - if l:avg >= 128 - let l:avg_new = l:avg - while l:avg - l:avg_new < 0x15 - let l:rgb = map(l:rgb, 'v:val * 3 / 4') - let l:avg_new = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3 - endwhile - else - let l:avg_new = l:avg - while l:avg_new - l:avg < 0x15 - let l:rgb = map(l:rgb, 'min([max([v:val, 4]) * 5 / 4, 255])') - let l:avg_new = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3 - endwhile - endif - let l:progbar_color = printf("#%02x%02x%02x", l:rgb[0], l:rgb[1], l:rgb[2]) - endif - echomsg "diff detected progbar color set to" l:progbar_color - endif - exe "hi TOhtmlProgress_auto" s:whatterm.."bg="..l:progbar_color - endif - endfun - - func! s:ProgressBar(title, max_value, winnr) - let pgb=copy(s:progressbar) - let pgb.title = a:title..' ' - let pgb.max_value = a:max_value - let pgb.winnr = a:winnr - let pgb.cur_value = 0 - - let pgb.items = { 'title' : { 'color' : 'Statusline' }, - \'bar' : { 'color' : 'Statusline' , 'fillcolor' : 'TOhtmlProgress_auto' , 'bg' : 'Statusline' } , - \'counter' : { 'color' : 'Statusline' } } - let pgb.last_value = 0 - let pgb.needs_redraw = 0 - " Note that you must use len(split) instead of len() if you want to use - " unicode in title. - " - " Subtract 3 for spacing around the title. - " Subtract 4 for the percentage display. - " Subtract 2 for spacing before this. - " Subtract 2 more for the '|' on either side of the progress bar - let pgb.subtractedlen=len(split(pgb.title, '\zs'))+3+4+2+2 - let pgb.max_len = 0 - set laststatus=2 - return pgb - endfun - - " Function: progressbar.calculate_ticks() {{{1 - func! s:progressbar.calculate_ticks(pb_len) - if a:pb_len<=0 - let pb_len = 100 - else - let pb_len = a:pb_len - endif - let self.progress_ticks = map(range(pb_len+1), "v:val * self.max_value / pb_len") - endfun - - "Function: progressbar.paint() - func! s:progressbar.paint() - " Recalculate widths. - let max_len = winwidth(self.winnr) - let pb_len = 0 - " always true on first call because of initial value of self.max_len - if max_len != self.max_len - let self.max_len = max_len - - " Progressbar length - let pb_len = max_len - self.subtractedlen - - call self.calculate_ticks(pb_len) - - let self.needs_redraw = 1 - let cur_value = 0 - let self.pb_len = pb_len - else - " start searching at the last found index to make the search for the - " appropriate tick value normally take 0 or 1 comparisons - let cur_value = self.last_value - let pb_len = self.pb_len - endif - - let cur_val_max = pb_len > 0 ? pb_len : 100 - - " find the current progress bar position based on precalculated thresholds - while cur_value < cur_val_max && self.cur_value > self.progress_ticks[cur_value] - let cur_value += 1 - endwhile - - " update progress bar - if self.last_value != cur_value || self.needs_redraw || self.cur_value == self.max_value - let self.needs_redraw = 1 - let self.last_value = cur_value - - let t_color = self.items.title.color - let b_fcolor = self.items.bar.fillcolor - let b_color = self.items.bar.color - let c_color = self.items.counter.color - - let stl = "%#".t_color."#%-( ".self.title." %)". - \"%#".b_color."#". - \(pb_len>0 ? - \ ('|%#'.b_fcolor."#%-(".repeat(" ",cur_value)."%)". - \ '%#'.b_color."#".repeat(" ",pb_len-cur_value)."|"): - \ ('')). - \"%=%#".c_color."#%( ".printf("%3.d ",100*self.cur_value/self.max_value)."%% %)" - call setwinvar(self.winnr, '&stl', stl) - endif - endfun - - func! s:progressbar.incr( ... ) - let self.cur_value += (a:0 ? a:1 : 1) - " if we were making a general-purpose progress bar, we'd need to limit to a - " lower limit as well, but since we always increment with a positive value - " in this script, we only need limit the upper value - let self.cur_value = (self.cur_value > self.max_value ? self.max_value : self.cur_value) - call self.paint() - endfun - " }}} - if s:settings.dynamic_folds - " to process folds we make two passes through each line - let s:pgb = s:ProgressBar("Processing folds:", line('$')*2, s:orgwin) - endif - - call s:SetProgbarColor() -endif - -let s:build_fun_lines = [] -call add(s:build_fun_lines, []) -let s:build_fun_lines[-1] =<< trim ENDLET - func! s:Add_diff_fill(lnum) - let l:filler = diff_filler(a:lnum) - if l:filler > 0 - let l:to_insert = l:filler - while l:to_insert > 0 - let l:new = repeat(s:difffillchar, 3) - - if l:to_insert > 2 && l:to_insert < l:filler && !s:settings.whole_filler - let l:new = l:new .. " " .. l:filler .. " inserted lines " - let l:to_insert = 2 - endif -ENDLET -call add(s:build_fun_lines, []) -if !s:settings.no_pre - let s:build_fun_lines[-1] =<< trim ENDLET - " HTML line wrapping is off--go ahead and fill to the margin - " TODO: what about when CSS wrapping is turned on? - let l:new = l:new .. repeat(s:difffillchar, &columns - strlen(l:new) - s:margin) - ENDLET -else - let s:build_fun_lines[-1] =<< trim ENDLET - let l:new = l:new .. repeat(s:difffillchar, 3) - ENDLET -endif -call add(s:build_fun_lines, []) -let s:build_fun_lines[-1] =<< trim ENDLET - let l:new = s:HtmlFormat_d(l:new, s:DIFF_D_ID, 0) -ENDLET -if s:settings.number_lines - call add(s:build_fun_lines, []) - let s:build_fun_lines[-1] =<< trim ENDLET - " Indent if line numbering is on. Indent gets style of line number - " column. - let l:new = s:HtmlFormat_n(repeat(' ', s:margin), s:LINENR_ID, 0, 0) .. l:new - ENDLET -endif -if s:settings.dynamic_folds && !s:settings.no_foldcolumn - call add(s:build_fun_lines, []) - let s:build_fun_lines[-1] =<< trim ENDLET - if s:foldcolumn > 0 - " Indent for foldcolumn if there is one. Assume it's empty, there should - " not be a fold for deleted lines in diff mode. - let l:new = s:FoldColumn_fill() .. l:new - endif - ENDLET -endif -" Ignore this comment, just bypassing a highlighting issue: if -call add(s:build_fun_lines, []) -let s:build_fun_lines[-1] =<< trim ENDLET - call add(s:lines, l:new..s:HtmlEndline) - let l:to_insert = l:to_insert - 1 - endwhile - endif - endfun -ENDLET -exec join(flatten(s:build_fun_lines), "\n") - -" First do some preprocessing for dynamic folding. Do this for the entire file -" so we don't accidentally start within a closed fold or something. -let s:allfolds = [] - -if s:settings.dynamic_folds - let s:lnum = 1 - let s:end = line('$') - " save the fold text and set it to the default so we can find fold levels - let s:foldtext_save = &foldtext - setlocal foldtext& - - " we will set the foldcolumn in the html to the greater of the maximum fold - " level and the current foldcolumn setting - let s:foldcolumn = &foldcolumn - - " get all info needed to describe currently closed folds - while s:lnum <= s:end - if foldclosed(s:lnum) == s:lnum - " default fold text has '+-' and then a number of dashes equal to fold - " level, so subtract 2 from index of first non-dash after the dashes - " in order to get the fold level of the current fold - let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2 - " store fold info for later use - let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"} - call add(s:allfolds, s:newfold) - " open the fold so we can find any contained folds - execute s:lnum.."foldopen" - else - if !s:settings.no_progress - call s:pgb.incr() - if s:pgb.needs_redraw - redrawstatus - let s:pgb.needs_redraw = 0 - endif - endif - let s:lnum = s:lnum + 1 - endif - endwhile - - " close all folds to get info for originally open folds - silent! %foldclose! - let s:lnum = 1 - - " the originally open folds will be all folds we encounter that aren't - " already in the list of closed folds - while s:lnum <= s:end - if foldclosed(s:lnum) == s:lnum - " default fold text has '+-' and then a number of dashes equal to fold - " level, so subtract 2 from index of first non-dash after the dashes - " in order to get the fold level of the current fold - let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2 - let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"} - " only add the fold if we don't already have it - if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1 - let s:newfold.type = "open-fold" - call add(s:allfolds, s:newfold) - endif - " open the fold so we can find any contained folds - execute s:lnum.."foldopen" - else - if !s:settings.no_progress - call s:pgb.incr() - if s:pgb.needs_redraw - redrawstatus - let s:pgb.needs_redraw = 0 - endif - endif - let s:lnum = s:lnum + 1 - endif - endwhile - - " sort the folds so that we only ever need to look at the first item in the - " list of folds - call sort(s:allfolds, "s:FoldCompare") - - let &l:foldtext = s:foldtext_save - unlet s:foldtext_save - - " close all folds again so we can get the fold text as we go - silent! %foldclose! - - " Go through and remove folds we don't need to (or cannot) process in the - " current conversion range - " - " If a fold is removed which contains other folds, which are included, we need - " to adjust the level of the included folds as used by the conversion logic - " (avoiding special cases is good) - " - " Note any time we remove a fold, either all of the included folds are in it, - " or none of them, because we only remove a fold if neither its start nor its - " end are within the conversion range. - let leveladjust = 0 - for afold in s:allfolds - let removed = 0 - if exists("g:html_start_line") && exists("g:html_end_line") - if afold.firstline < g:html_start_line - if afold.lastline <= g:html_end_line && afold.lastline >= g:html_start_line - " if a fold starts before the range to convert but stops within the - " range, we need to include it. Make it start on the first converted - " line. - let afold.firstline = g:html_start_line - else - " if the fold lies outside the range or the start and stop enclose - " the entire range, don't bother parsing it - call remove(s:allfolds, index(s:allfolds, afold)) - let removed = 1 - if afold.lastline > g:html_end_line - let leveladjust += 1 - endif - endif - elseif afold.firstline > g:html_end_line - " If the entire fold lies outside the range we need to remove it. - call remove(s:allfolds, index(s:allfolds, afold)) - let removed = 1 - endif - elseif exists("g:html_start_line") - if afold.firstline < g:html_start_line - " if there is no last line, but there is a first line, the end of the - " fold will always lie within the region of interest, so keep it - let afold.firstline = g:html_start_line - endif - elseif exists("g:html_end_line") - " if there is no first line we default to the first line in the buffer so - " the fold start will always be included if the fold itself is included. - " If however the entire fold lies outside the range we need to remove it. - if afold.firstline > g:html_end_line - call remove(s:allfolds, index(s:allfolds, afold)) - let removed = 1 - endif - endif - if !removed - let afold.level -= leveladjust - if afold.level+1 > s:foldcolumn - let s:foldcolumn = afold.level+1 - endif - endif - endfor - - " if we've removed folds containing the conversion range from processing, - " getting foldtext as we go won't know to open the removed folds, so the - " foldtext would be wrong; open them now. - " - " Note that only when a start and an end line is specified will a fold - " containing the current range ever be removed. - while leveladjust > 0 - exe g:html_start_line.."foldopen" - let leveladjust -= 1 - endwhile -endif - -" Now loop over all lines in the original text to convert to html. -" Use html_start_line and html_end_line if they are set. -if exists("g:html_start_line") - let s:lnum = html_start_line - if s:lnum < 1 || s:lnum > line("$") - let s:lnum = 1 - endif -else - let s:lnum = 1 -endif -if exists("g:html_end_line") - let s:end = html_end_line - if s:end < s:lnum || s:end > line("$") - let s:end = line("$") - endif -else - let s:end = line("$") -endif - -" stack to keep track of all the folds containing the current line -let s:foldstack = [] - -if !s:settings.no_progress - let s:pgb = s:ProgressBar("Processing lines:", s:end - s:lnum + 1, s:orgwin) -endif - -if s:settings.number_lines - let s:margin = strlen(s:end) + 1 -else - let s:margin = 0 -endif - -if has('folding') && !s:settings.ignore_folding - let s:foldfillchar = &fillchars[matchend(&fillchars, 'fold:')] - if s:foldfillchar == '' - let s:foldfillchar = '-' - endif -endif -let s:difffillchar = &fillchars[matchend(&fillchars, 'diff:')] -if s:difffillchar == '' - let s:difffillchar = '-' -endif - -let s:foldId = 0 - -if !s:settings.expand_tabs - " If keeping tabs, add them to printable characters so we keep them when - " formatting text (strtrans() doesn't replace printable chars) - let s:old_isprint = &isprint - setlocal isprint+=9 -endif - -while s:lnum <= s:end - - " If there are filler lines for diff mode, show these above the line. - call s:Add_diff_fill(s:lnum) - - " Start the line with the line number. - if s:settings.number_lines - let s:numcol = repeat(' ', s:margin - 1 - strlen(s:lnum)) .. s:lnum .. ' ' - endif - - let s:new = "" - - if has('folding') && !s:settings.ignore_folding && foldclosed(s:lnum) > -1 && !s:settings.dynamic_folds - " - " This is the beginning of a folded block (with no dynamic folding) - let s:new = foldtextresult(s:lnum) - if !s:settings.no_pre - " HTML line wrapping is off--go ahead and fill to the margin - let s:new = s:new .. repeat(s:foldfillchar, &columns - strlen(s:new)) - endif - - " put numcol in a separate group for sake of unselectable text - let s:new = (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, s:lnum): "") .. s:HtmlFormat_t(s:new, s:FOLDED_ID, 0) - - " Skip to the end of the fold - let s:new_lnum = foldclosedend(s:lnum) - - if !s:settings.no_progress - call s:pgb.incr(s:new_lnum - s:lnum) - endif - - let s:lnum = s:new_lnum - - else - " - " A line that is not folded, or doing dynamic folding. - " - let s:line = getline(s:lnum) - let s:len = strlen(s:line) - - if s:settings.dynamic_folds - " First insert a closing for any open folds that end on this line - while !empty(s:foldstack) && get(s:foldstack,0).lastline == s:lnum-1 - let s:new = s:new.."</span></span>" - call remove(s:foldstack, 0) - endwhile - - " Now insert an opening for any new folds that start on this line - let s:firstfold = 1 - while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum - let s:foldId = s:foldId + 1 - let s:new ..= "<span id='" - let s:new ..= (exists('g:html_diff_win_num') ? "win"..g:html_diff_win_num : "") - let s:new ..= "fold"..s:foldId..s:settings.id_suffix.."' class='"..s:allfolds[0].type.."'>" - - - " Unless disabled, add a fold column for the opening line of a fold. - " - " Note that dynamic folds require using css so we just use css to take - " care of the leading spaces rather than using in the case of - " html_no_pre to make it easier - if !s:settings.no_foldcolumn - " add fold column that can open the new fold - if s:allfolds[0].level > 1 && s:firstfold - let s:new = s:new .. s:FoldColumn_build('|', s:allfolds[0].level - 1, 0, "", - \ 'toggle-open FoldColumn','javascript:toggleFold("fold'..s:foldstack[0].id..s:settings.id_suffix..'");') - endif - " add the filler spaces separately from the '+' char so that it can be - " shown/hidden separately during a hover unfold - let s:new = s:new .. s:FoldColumn_build("+", 1, 0, "", - \ 'toggle-open FoldColumn', 'javascript:toggleFold("fold'..s:foldId..s:settings.id_suffix..'");') - " If this is not the last fold we're opening on this line, we need - " to keep the filler spaces hidden if the fold is opened by mouse - " hover. If it is the last fold to open in the line, we shouldn't hide - " them, so don't apply the toggle-filler class. - let s:new = s:new .. s:FoldColumn_build(" ", 1, s:foldcolumn - s:allfolds[0].level - 1, "", - \ 'toggle-open FoldColumn'.. (get(s:allfolds, 1, {'firstline': 0}).firstline == s:lnum ?" toggle-filler" :""), - \ 'javascript:toggleFold("fold'..s:foldId..s:settings.id_suffix..'");') - - " add fold column that can close the new fold - " only add extra blank space if we aren't opening another fold on the - " same line - if get(s:allfolds, 1, {'firstline': 0}).firstline != s:lnum - let s:extra_space = s:foldcolumn - s:allfolds[0].level - else - let s:extra_space = 0 - endif - if s:firstfold - " the first fold in a line has '|' characters from folds opened in - " previous lines, before the '-' for this fold - let s:new ..= s:FoldColumn_build('|', s:allfolds[0].level - 1, s:extra_space, '-', - \ 'toggle-closed FoldColumn', 'javascript:toggleFold("fold'..s:foldId..s:settings.id_suffix..'");') - else - " any subsequent folds in the line only add a single '-' - let s:new = s:new .. s:FoldColumn_build("-", 1, s:extra_space, "", - \ 'toggle-closed FoldColumn', 'javascript:toggleFold("fold'..s:foldId..s:settings.id_suffix..'");') - endif - let s:firstfold = 0 - endif - - " Add fold text, moving the span ending to the next line so collapsing - " of folds works correctly. - " Put numcol in a separate group for sake of unselectable text. - let s:new = s:new .. (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, 0) : "") .. substitute(s:HtmlFormat_t(foldtextresult(s:lnum), s:FOLDED_ID, 0), '</span>', s:HtmlEndline..'\n\0', '') - let s:new = s:new .. "<span class='fulltext'>" - - " open the fold now that we have the fold text to allow retrieval of - " fold text for subsequent folds - execute s:lnum.."foldopen" - call insert(s:foldstack, remove(s:allfolds,0)) - let s:foldstack[0].id = s:foldId - endwhile - - " Unless disabled, add a fold column for other lines. - " - " Note that dynamic folds require using css so we just use css to take - " care of the leading spaces rather than using in the case of - " html_no_pre to make it easier - if !s:settings.no_foldcolumn - if empty(s:foldstack) - " add the empty foldcolumn for unfolded lines if there is a fold - " column at all - if s:foldcolumn > 0 - let s:new = s:new .. s:FoldColumn_fill() - endif - else - " add the fold column for folds not on the opening line - if get(s:foldstack, 0).firstline < s:lnum - let s:new = s:new .. s:FoldColumn_build('|', s:foldstack[0].level, s:foldcolumn - s:foldstack[0].level, "", - \ 'FoldColumn', 'javascript:toggleFold("fold'..s:foldstack[0].id..s:settings.id_suffix..'");') - endif - endif - endif - endif - - " Now continue with the unfolded line text - if s:settings.number_lines - let s:new = s:new .. s:HtmlFormat_n(s:numcol, s:LINENR_ID, 0, s:lnum) - elseif s:settings.line_ids - let s:new = s:new .. s:HtmlFormat_n("", s:LINENR_ID, 0, s:lnum) - endif - - " Get the diff attribute, if any. - let s:diffattr = diff_hlID(s:lnum, 1) - - " initialize conceal info to act like not concealed, just in case - let s:concealinfo = [0, ''] - - " Loop over each character in the line - let s:col = 1 - - " most of the time we won't use the diff_id, initialize to zero - let s:diff_id = 0 - - while s:col <= s:len || (s:col == 1 && s:diffattr) - let s:startcol = s:col " The start column for processing text - if !s:settings.ignore_conceal && has('conceal') - let s:concealinfo = synconcealed(s:lnum, s:col) - endif - if !s:settings.ignore_conceal && s:concealinfo[0] - let s:col = s:col + 1 - " Speed loop (it's small - that's the trick) - " Go along till we find a change in the match sequence number (ending - " the specific concealed region) or until there are no more concealed - " characters. - while s:col <= s:len && s:concealinfo == synconcealed(s:lnum, s:col) | let s:col = s:col + 1 | endwhile - elseif s:diffattr - let s:diff_id = diff_hlID(s:lnum, s:col) - let s:id = synID(s:lnum, s:col, 1) - let s:col = s:col + 1 - " Speed loop (it's small - that's the trick) - " Go along till we find a change in hlID - while s:col <= s:len && s:id == synID(s:lnum, s:col, 1) - \ && s:diff_id == diff_hlID(s:lnum, s:col) | - \ let s:col = s:col + 1 | - \ endwhile - if s:len < &columns && !s:settings.no_pre - " Add spaces at the end of the raw text line to extend the changed - " line to the full width. - let s:line = s:line .. repeat(' ', &columns - virtcol([s:lnum, s:len]) - s:margin) - let s:len = &columns - endif - else - let s:id = synID(s:lnum, s:col, 1) - let s:col = s:col + 1 - " Speed loop (it's small - that's the trick) - " Go along till we find a change in synID - while s:col <= s:len && s:id == synID(s:lnum, s:col, 1) | let s:col = s:col + 1 | endwhile - endif - - if s:settings.ignore_conceal || !s:concealinfo[0] - " Expand tabs if needed - let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol) - if s:settings.expand_tabs - let s:offset = 0 - let s:idx = stridx(s:expandedtab, "\t") - let s:tablist = exists("+vts") ? split(&vts,',') : [] - if empty(s:tablist) - let s:tablist = [ &ts ] - endif - let s:tabidx = 0 - let s:tabwidth = 0 - while s:idx >= 0 - if s:startcol + s:idx == 1 - let s:i = s:tablist[0] - else - " Get the character, which could be multiple bytes, which falls - " immediately before the found tab. Extract it by matching a - " character just prior to the column where the tab matches. - " We'll use this to get the byte index of the character - " immediately preceding the tab, so we can then look up the - " virtual column that character appears in, to determine how - " much of the current tabstop has been used up. - if s:idx == 0 - " if the found tab is the first character in the text being - " processed, we need to get the character prior to the text, - " given by startcol. - let s:prevc = matchstr(s:line, '.\%' .. (s:startcol + s:offset) .. 'c') - else - " Otherwise, the byte index of the tab into s:expandedtab is - " given by s:idx. - let s:prevc = matchstr(s:expandedtab, '.\%' .. (s:idx + 1) .. 'c') - endif - let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)]) - - " find the tabstop interval to use for the tab we just found. Keep - " adding tabstops (which could be variable) until we would exceed - " the virtual screen position of the start of the found tab. - while s:vcol >= s:tabwidth + s:tablist[s:tabidx] - let s:tabwidth += s:tablist[s:tabidx] - if s:tabidx < len(s:tablist)-1 - let s:tabidx = s:tabidx+1 - endif - endwhile - let s:i = s:tablist[s:tabidx] - (s:vcol - s:tabwidth) - endif - " update offset to keep the index within the line corresponding to - " actual tab characters instead of replaced spaces; s:idx reflects - " replaced spaces in s:expandedtab, s:offset cancels out all but - " the tab character itself. - let s:offset -= s:i - 1 - let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '') - let s:idx = stridx(s:expandedtab, "\t") - endwhile - end - - " get the highlight group name to use - let s:id = synIDtrans(s:id) - else - " use Conceal highlighting for concealed text - let s:id = s:CONCEAL_ID - let s:expandedtab = s:concealinfo[1] - endif - - " Output the text with the same synID, with class set to the highlight ID - " name, unless it has been concealed completely. - if strlen(s:expandedtab) > 0 - let s:new = s:new .. s:HtmlFormat(s:expandedtab, s:id, s:diff_id, "", 0) - endif - endwhile - endif - - call extend(s:lines, split(s:new..s:HtmlEndline, '\n', 1)) - if !s:settings.no_progress && s:pgb.needs_redraw - redrawstatus - let s:pgb.needs_redraw = 0 - endif - let s:lnum = s:lnum + 1 - - if !s:settings.no_progress - call s:pgb.incr() - endif -endwhile - -" Diff filler is returned based on what needs inserting *before* the given line. -" So to get diff filler at the end of the buffer, we need to use last line + 1 -call s:Add_diff_fill(s:end+1) - -if s:settings.dynamic_folds - " finish off any open folds - while !empty(s:foldstack) - let s:lines[-1]..="</span></span>" - call remove(s:foldstack, 0) - endwhile - - " add fold column to the style list if not already there - let s:id = s:FOLD_C_ID - if !has_key(s:stylelist, s:id) - let s:stylelist[s:id] = '.FoldColumn { ' .. s:CSS1(s:id) .. '}' - endif -endif - -if s:settings.no_pre - if !s:settings.use_css - " Close off the font tag that encapsulates the whole <body> - call extend(s:lines, ["</font>"]) - else - call extend(s:lines, ["</div>"]) - endif -else - call extend(s:lines, ["</pre>"]) -endif -if !s:settings.no_doc - call extend(s:lines, ["</body>", "</html>"]) -endif - -exe s:newwin .. "wincmd w" -call setline(1, s:lines) -unlet s:lines - -" Mangle modelines so Vim doesn't try to use HTML text as a modeline if editing -" this file in the future; need to do this after generating all the text in case -" the modeline text has different highlight groups which all turn out to be -" stripped from the final output. -%s!\v(%(^|\s+)%([Vv]i%(m%([<=>]?\d+)?)?|ex)):!\1\:!ge - -" The generated HTML is admittedly ugly and takes a LONG time to fold. -" Make sure the user doesn't do syntax folding when loading a generated file, -" using a modeline. -if !s:settings.no_modeline - call append(line('$'), "<!-- vim: set foldmethod=manual : -->") -endif - -" Now, when we finally know which, we define the colors and styles -if s:settings.use_css && !s:settings.no_doc - 1;/<style\>/+1 - - " Normal/global attributes - if s:settings.no_pre - call append('.', "body { color: " .. s:fgc .. "; background-color: " .. s:bgc .. "; font-family: ".. s:htmlfont .."; }") - + - else - call append('.', "pre { " .. s:whitespace .. "font-family: ".. s:htmlfont .."; color: " .. s:fgc .. "; background-color: " .. s:bgc .. "; }") - + - yank - put - execute "normal! ^cwbody\e" - " body should not have the wrap formatting, only the pre section - if s:whitespace != '' - exec 's#'..s:whitespace - endif - endif - " fix browser inconsistencies (sometimes within the same browser) of different - " default font size for different elements - call append('.', '* { font-size: 1em; }') - + - " if we use any input elements for unselectable content, make sure they look - " like normal text - if !empty(s:settings.prevent_copy) - if s:settings.use_input_for_pc !=# "none" - call append('.', 'input { border: none; margin: 0; padding: 0; font-family: '..s:htmlfont..'; }') - + - " ch units for browsers which support them, em units for a somewhat - " reasonable fallback. - for w in range(1, 20, 1) - call append('.', [ - \ "input[size='"..w.."'] { width: "..w.."em; width: "..w.."ch; }" - \ ]) - + - endfor - endif - - if s:settings.use_input_for_pc !=# 'all' - let s:unselectable_styles = [] - if s:settings.prevent_copy =~# 'f' - call add(s:unselectable_styles, 'FoldColumn') - endif - if s:settings.prevent_copy =~# 'n' - call add(s:unselectable_styles, 'LineNr') - endif - if s:settings.prevent_copy =~# 't' && !s:settings.ignore_folding - call add(s:unselectable_styles, 'Folded') - endif - if s:settings.prevent_copy =~# 'd' - call add(s:unselectable_styles, 'DiffDelete') - endif - if s:settings.use_input_for_pc !=# 'none' - call append('.', [ - \ '/* Note: IE does not support @supports conditionals, but also does not fully support', - \ ' "content:" with custom content, so we *want* the check to fail */', - \ '@supports ( content: attr(data-custom-content) ) {' - \ ]) - +3 - endif - " The line number column inside the foldtext is styled just like the fold - " text in Vim, but it should use the prevent_copy settings of line number - " rather than fold text. Apply the prevent_copy styles to foldtext - " specifically for line numbers, which always come after the fold column, - " or at the beginning of the line. - if s:settings.prevent_copy =~# 'n' && !s:settings.ignore_folding - call append('.', [ - \ ' .FoldColumn + .Folded, .Folded:first-child { user-select: none; }', - \ ' .FoldColumn + [data-Folded-content]::before, [data-Folded-content]:first-child::before { content: attr(data-Folded-content); }', - \ ' .FoldColumn + [data-Folded-content]::before, [data-Folded-content]:first-child::before { padding-bottom: 1px; display: inline-block; /* match the 1-px padding of standard items with background */ }', - \ ' .FoldColumn + span[data-Folded-content]::before, [data-Folded-content]:first-child::before { cursor: default; }', - \ ]) - +4 - endif - for s:style_name in s:unselectable_styles - call append('.', [ - \ ' .'..s:style_name..' { user-select: none; }', - \ ' [data-'..s:style_name..'-content]::before { content: attr(data-'..s:style_name..'-content); }', - \ ' [data-'..s:style_name..'-content]::before { padding-bottom: 1px; display: inline-block; /* match the 1-px padding of standard items with background */ }', - \ ' span[data-'..s:style_name..'-content]::before { cursor: default; }', - \ ]) - +4 - endfor - if s:settings.use_input_for_pc !=# 'none' - " Note, the extra '}' is to match the "@supports" above - call append('.', [ - \ ' input { display: none; }', - \ '}' - \ ]) - +2 - endif - unlet s:unselectable_styles - endif - - " Fix mouse cursor shape for the fallback <input> method of uncopyable text - if s:settings.use_input_for_pc !=# 'none' - if s:settings.prevent_copy =~# 'f' - " Make the cursor show active fold columns as active areas, and empty fold - " columns as not interactive. - call append('.', ['input.FoldColumn { cursor: pointer; }', - \ 'input.FoldColumn[value="'..repeat(' ', s:foldcolumn)..'"] { cursor: default; }' - \ ]) - +2 - if s:settings.use_input_for_pc !=# 'all' - call append('.', [ - \ 'a[data-FoldColumn-content="'..repeat(' ', s:foldcolumn)..'"] { cursor: default; }' - \ ]) - +1 - end - endif - " make line number column show as non-interactive if not selectable - if s:settings.prevent_copy =~# 'n' - call append('.', 'input.LineNr { cursor: default; }') - + - endif - " make fold text and line number column within fold text show as - " non-interactive if not selectable - if (s:settings.prevent_copy =~# 'n' || s:settings.prevent_copy =~# 't') && !s:settings.ignore_folding - call append('.', 'input.Folded { cursor: default; }') - + - endif - " make diff filler show as non-interactive if not selectable - if s:settings.prevent_copy =~# 'd' - call append('.', 'input.DiffDelete { cursor: default; }') - + - endif - endif - endif -endif - -if !s:settings.use_css && !s:settings.no_doc - " For Netscape 4, set <body> attributes too, though, strictly speaking, it's - " incorrect. - execute '%s:<body\([^>]*\):<body bgcolor="' .. s:bgc .. '" text="' .. s:fgc .. '"\1>\r<font face="'.. s:htmlfont ..'"' -endif - -" Gather attributes for all other classes. Do diff first so that normal -" highlight groups are inserted before it. -if s:settings.use_css && !s:settings.no_doc - if s:diff_mode - call append('.', filter(map(keys(s:diffstylelist), "s:diffstylelist[v:val]"), 'v:val != ""')) - endif - if !empty(s:stylelist) - call append('.', filter(map(keys(s:stylelist), "s:stylelist[v:val]"), 'v:val != ""')) - endif -endif - -" Add hyperlinks -if !s:settings.no_links - %s+\(https\=://\S\{-}\)\(\([.,;:}]\=\(\s\|$\)\)\|[\\"'<>]\|>\|<\|"\)+<a href="\1">\1</a>\2+ge -endif - -" The DTD -if !s:settings.no_doc - if s:settings.use_xhtml - exe "normal! gg$a\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" - elseif s:html5 - exe "normal! gg0i<!DOCTYPE html>\n" - else - exe "normal! gg0i<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n" - endif -endif - -if s:settings.use_xhtml && !s:settings.no_doc - exe "normal! gg/<html/e\na xmlns=\"http://www.w3.org/1999/xhtml\"\e" -endif - -" Cleanup -%s:\s\+$::e - -" Restore old settings (new window first) -" -" Don't bother restoring foldmethod in case it was syntax because the markup is -" so weirdly formatted it can take a LONG time. -let &l:foldenable = s:old_fen -let &report = s:old_report -let &title = s:old_title -let &icon = s:old_icon -let &paste = s:old_paste -let &magic = s:old_magic -let @/ = s:old_search -let &more = s:old_more - -" switch to original window to restore those settings -exe s:orgwin .. "wincmd w" - -if !s:settings.expand_tabs - let &l:isprint = s:old_isprint -endif -let &l:stl = s:origwin_stl -let &l:et = s:old_et -let &l:scrollbind = s:old_bind - -" and back to the new window again to end there -exe s:newwin .. "wincmd w" - -let &l:stl = s:newwin_stl -exec 'resize' s:old_winheight -let &l:winfixheight = s:old_winfixheight - -let &ls=s:ls -let &eventignore=s:ei_sav - -" Save a little bit of memory (worth doing?) -unlet s:htmlfont s:whitespace -unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search -unlet s:old_magic s:old_more s:old_fen s:old_winheight -unlet! s:old_isprint -unlet s:whatterm s:stylelist s:diffstylelist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight -unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo s:diff_mode -unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset s:ls s:ei_sav s:origwin_stl -unlet! s:newwin_stl s:current_syntax -if !v:profiling - delfunc s:HtmlColor - delfunc s:HtmlFormat - delfunc s:CSS1 - delfunc s:BuildStyleWrapper - if !s:settings.use_css - delfunc s:HtmlOpening - delfunc s:HtmlClosing - endif - if s:settings.dynamic_folds - delfunc s:FoldCompare - endif - - if !s:settings.no_progress - delfunc s:ProgressBar - delfunc s:progressbar.paint - delfunc s:progressbar.incr - unlet s:pgb s:progressbar - endif - - delfunc s:Add_diff_fill -endif - -unlet! s:new_lnum s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:diffstyle -unlet! s:LeadingSpace s:HtmlEndline s:firstfold s:numcol s:foldcolumn -unlet! s:wrapperfunc_lines s:build_fun_lines -unlet s:foldstack s:allfolds s:foldId s:settings - -let &cpo = s:cpo_sav -unlet! s:cpo_sav - -" Make sure any patches will probably use consistent indent -" vim: ts=8 sw=2 sts=2 noet diff --git a/runtime/syntax/8th.vim b/runtime/syntax/8th.vim index 643c9cb095..a88a5a294a 100644 --- a/runtime/syntax/8th.vim +++ b/runtime/syntax/8th.vim @@ -1,26 +1,26 @@ " Vim syntax file " Language: 8th -" Version: 21.08 -" Last Change: 2021 Sep 20 +" Version: 23.09.01 +" Last Change: 2023 Dec 19 " Maintainer: Ron Aaron <ron@aaron-tech.com> " URL: https://8th-dev.com/ " Filetypes: *.8th " NOTE: You should also have the ftplugin/8th.vim file to set 'isk' -if version < 600 - syntax clear - finish -elseif exists("b:current_syntax") +if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim syn clear -" Synchronization method + syn sync ccomment -syn sync maxlines=100 +syn sync maxlines=200 + syn case match +syn iskeyword 33-255 + syn match eighthColonName "\S\+" contained syn match eighthColonDef ":\s\+\S\+" contains=eighthColonName @@ -34,230 +34,257 @@ syn keyword eighthDefine var var, " Built in words: com! -nargs=+ Builtin syn keyword eighthBuiltin <args> -Builtin args #:args b #:b dhm #:dhm exec# #:exec# id2ns #:id2ns id? #:id? idd #:idd key #:key oa #:oa -Builtin oid #:oid okey #:okey with #:with with! #:with! zip #:zip gen-secret 2fa:gen-secret gen-url 2fa:gen-url -Builtin validate-code 2fa:validate-code ! G:! #! G:#! ## G:## #> G:#> #if G:#if ' G:' ( G:( (* G:(* -Builtin (:) G:(:) (code) G:(code) (defer) G:(defer) (dump) G:(dump) (getc) G:(getc) (gets) G:(gets) + +Builtin gen-secret 2fa:gen-secret gen-url 2fa:gen-url validate-code 2fa:validate-code cb AWS:cb cli AWS:cli +Builtin cmd AWS:cmd cp AWS:cp rc AWS:rc call DBUS:call init DBUS:init + DOM:+ - DOM:- attr! DOM:attr! +Builtin attr@ DOM:attr@ attrs DOM:attrs children DOM:children css-parse DOM:css-parse each DOM:each +Builtin find DOM:find new DOM:new type DOM:type ! G:! !if G:!if #! G:#! ## G:## #if G:#if ' G:' ( G:( +Builtin (* G:(* (:) G:(:) (code) G:(code) (defer) G:(defer) (dump) G:(dump) (getc) G:(getc) (gets) G:(gets) Builtin (interp) G:(interp) (log) G:(log) (needs) G:(needs) (parseln) G:(parseln) (putc) G:(putc) (puts) G:(puts) -Builtin (putslim) G:(putslim) (stat) G:(stat) (with) G:(with) ) G:) +hook G:+hook +listener G:+listener -Builtin +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN -Inf G:-Inf -Inf? G:-Inf? -hook G:-hook -Builtin -listener G:-listener -ref G:-ref -rot G:-rot . G:. .# G:.# .hook G:.hook .needs G:.needs .r G:.r -Builtin .s G:.s .s-truncate G:.s-truncate .stats G:.stats .ver G:.ver .with G:.with 0; G:0; 2dip G:2dip -Builtin 2drop G:2drop 2dup G:2dup 2over G:2over 2swap G:2swap 3drop G:3drop 3rev G:3rev 4drop G:4drop -Builtin 8thdt? G:8thdt? 8thsku G:8thsku 8thver? G:8thver? 8thvernum? G:8thvernum? : G:: ; G:; ;; G:;; -Builtin ;;; G:;;; ;with G:;with <# G:<# <#> G:<#> >clip G:>clip >json G:>json >kind G:>kind >n G:>n -Builtin >r G:>r >s G:>s ?: G:?: @ G:@ BITMAP: G:BITMAP: ENUM: G:ENUM: FLAG: G:FLAG: Inf G:Inf Inf? G:Inf? -Builtin NaN G:NaN NaN? G:NaN? SED-CHECK G:SED-CHECK SED: G:SED: SED: G:SED: \ G:\ _dup G:_dup _swap G:_swap -Builtin actor: G:actor: again G:again ahead G:ahead and G:and appname G:appname apropos G:apropos argc G:argc -Builtin args G:args array? G:array? assert G:assert base G:base bi G:bi bits G:bits break G:break break? G:break? -Builtin breakif G:breakif build? G:build? buildver? G:buildver? bye G:bye c# G:c# c/does G:c/does case: G:case: -Builtin catch G:catch chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold -Builtin compile G:compile compile? G:compile? compiling? G:compiling? conflict G:conflict const G:const -Builtin container? G:container? counting-allocations G:counting-allocations cr G:cr curlang G:curlang -Builtin curry G:curry curry: G:curry: decimal G:decimal default: G:default: defer: G:defer: deferred: G:deferred: -Builtin deg>rad G:deg>rad depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack dump G:dump -Builtin dup G:dup dup>r G:dup>r dup? G:dup? e# G:e# enum: G:enum: error? G:error? eval G:eval eval! G:eval! -Builtin eval0 G:eval0 execnull G:execnull expect G:expect extra! G:extra! extra@ G:extra@ false G:false -Builtin fnv G:fnv fourth G:fourth free G:free func: G:func: getc G:getc getcwd G:getcwd getenv G:getenv -Builtin gets G:gets handler G:handler header G:header help G:help hex G:hex i: G:i: i; G:i; isa? G:isa? -Builtin items-used G:items-used jcall G:jcall jclass G:jclass jmethod G:jmethod json! G:json! json-8th> G:json-8th> -Builtin json-nesting G:json-nesting json-pretty G:json-pretty json-throw G:json-throw json> G:json> -Builtin json@ G:json@ k32 G:k32 keep G:keep l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc -Builtin listener@ G:listener@ literal G:literal locals: G:locals: lock G:lock lock-to G:lock-to locked? G:locked? -Builtin log G:log log-syslog G:log-syslog log-task G:log-task log-time G:log-time log-time-local G:log-time-local -Builtin long-days G:long-days long-months G:long-months longjmp G:longjmp lookup G:lookup loop G:loop -Builtin loop- G:loop- map? G:map? mark G:mark mark? G:mark? memfree G:memfree mobile? G:mobile? n# G:n# -Builtin name>os G:name>os name>sem G:name>sem ndrop G:ndrop needs G:needs new G:new next-arg G:next-arg -Builtin nip G:nip noop G:noop not G:not nothrow G:nothrow ns G:ns ns: G:ns: ns>ls G:ns>ls ns>s G:ns>s -Builtin ns? G:ns? null G:null null; G:null; null? G:null? number? G:number? of: G:of: off G:off on G:on -Builtin onexit G:onexit only G:only op! G:op! or G:or os G:os os-names G:os-names os>long-name G:os>long-name -Builtin os>name G:os>name over G:over p: G:p: pack G:pack parse G:parse parse-csv G:parse-csv parsech G:parsech -Builtin parseln G:parseln parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear pool-clear-all G:pool-clear-all +Builtin (stat) G:(stat) (with) G:(with) ) G:) +hook G:+hook +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN +Builtin -Inf G:-Inf -Inf? G:-Inf? -hook G:-hook -ref G:-ref -rot G:-rot . G:. .# G:.# .hook G:.hook +Builtin .needs G:.needs .r G:.r .s G:.s .s-truncate G:.s-truncate .stats G:.stats .ver G:.ver .with G:.with +Builtin 0; G:0; 2dip G:2dip 2drop G:2drop 2dup G:2dup 2nip G:2nip 2over G:2over 2swap G:2swap 2tuck G:2tuck +Builtin 3drop G:3drop 3drop G:3drop 3dup G:3dup 3rev G:3rev 4drop G:4drop 8thdt? G:8thdt? 8thsku G:8thsku +Builtin 8thver? G:8thver? 8thvernum? G:8thvernum? : G:: ; G:; ;; G:;; ;;; G:;;; ;with G:;with >clip G:>clip +Builtin >json G:>json >kind G:>kind >n G:>n >r G:>r >s G:>s ?: G:?: ?@ G:?@ @ G:@ BITMAP: G:BITMAP: +Builtin ENUM: G:ENUM: FLAG: G:FLAG: I G:I Inf G:Inf Inf? G:Inf? J G:J K G:K NaN G:NaN NaN? G:NaN? SED-CHECK G:SED-CHECK +Builtin SED: G:SED: SED: G:SED: X G:X \ G:\ _dup G:_dup _swap G:_swap actor: G:actor: again G:again +Builtin ahead G:ahead and G:and apropos G:apropos argc G:argc args G:args array? G:array? assert G:assert +Builtin base G:base base>n G:base>n bi G:bi bits G:bits break G:break break? G:break? breakif G:breakif +Builtin build? G:build? buildver? G:buildver? bye G:bye c/does G:c/does case: G:case: catch G:catch +Builtin chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold compile G:compile +Builtin compile? G:compile? compiling? G:compiling? conflict G:conflict const G:const container? G:container? +Builtin counting-allocations G:counting-allocations cr G:cr critical: G:critical: critical; G:critical; +Builtin curlang G:curlang curry G:curry curry: G:curry: decimal G:decimal default: G:default: defer: G:defer: +Builtin deferred: G:deferred: deg>rad G:deg>rad depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack +Builtin dump G:dump dup G:dup dup>r G:dup>r dup? G:dup? e# G:e# enum: G:enum: error? G:error? eval G:eval +Builtin eval! G:eval! eval0 G:eval0 expect G:expect extra! G:extra! extra@ G:extra@ false G:false fnv G:fnv +Builtin fourth G:fourth free G:free func: G:func: getc G:getc getcwd G:getcwd getenv G:getenv gets G:gets +Builtin handler G:handler header G:header help G:help hex G:hex i: G:i: i; G:i; isa? G:isa? items-used G:items-used +Builtin jcall G:jcall jclass G:jclass jmethod G:jmethod json! G:json! json-8th> G:json-8th> json-nesting G:json-nesting +Builtin json-pretty G:json-pretty json-throw G:json-throw json> G:json> json@ G:json@ k32 G:k32 keep G:keep +Builtin l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc literal G:literal locals: G:locals: +Builtin lock G:lock lock-to G:lock-to locked? G:locked? log G:log log-syslog G:log-syslog log-task G:log-task +Builtin log-time G:log-time log-time-local G:log-time-local long-days G:long-days long-months G:long-months +Builtin longjmp G:longjmp lookup G:lookup loop G:loop loop- G:loop- map? G:map? mark G:mark mark? G:mark? +Builtin mobile? G:mobile? n# G:n# name>os G:name>os name>sem G:name>sem ndrop G:ndrop needs G:needs +Builtin new G:new next-arg G:next-arg nip G:nip noop G:noop not G:not nothrow G:nothrow ns G:ns ns: G:ns: +Builtin ns>ls G:ns>ls ns>s G:ns>s ns? G:ns? null G:null null; G:null; null? G:null? nullvar G:nullvar +Builtin number? G:number? of: G:of: off G:off on G:on onexit G:onexit only G:only op! G:op! or G:or +Builtin os G:os os-names G:os-names os>long-name G:os>long-name os>name G:os>name over G:over p: G:p: +Builtin pack G:pack parse G:parse parse-csv G:parse-csv parse-date G:parse-date parsech G:parsech parseln G:parseln +Builtin parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear pool-clear-all G:pool-clear-all Builtin prior G:prior private G:private process-args G:process-args process-args-fancy G:process-args-fancy Builtin process-args-help G:process-args-help process-args-vars G:process-args-vars prompt G:prompt -Builtin public G:public putc G:putc puts G:puts putslim G:putslim quote G:quote r! G:r! r> G:r> r@ G:r@ -Builtin rad>deg G:rad>deg rand-jit G:rand-jit rand-jsf G:rand-jsf rand-native G:rand-native rand-normal G:rand-normal +Builtin public G:public putc G:putc puts G:puts quote G:quote r! G:r! r> G:r> r@ G:r@ rad>deg G:rad>deg +Builtin rand-jit G:rand-jit rand-jsf G:rand-jsf rand-native G:rand-native rand-normal G:rand-normal Builtin rand-pcg G:rand-pcg rand-pcg-seed G:rand-pcg-seed rand-range G:rand-range rand-select G:rand-select Builtin randbuf-pcg G:randbuf-pcg random G:random rdrop G:rdrop recurse G:recurse recurse-stack G:recurse-stack Builtin ref@ G:ref@ reg! G:reg! reg@ G:reg@ regbin@ G:regbin@ remaining-args G:remaining-args repeat G:repeat Builtin required? G:required? requires G:requires reset G:reset roll G:roll rop! G:rop! rot G:rot rpick G:rpick -Builtin rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage s>ns G:s>ns same? G:same? scriptdir G:scriptdir -Builtin scriptfile G:scriptfile sem G:sem sem-post G:sem-post sem-rm G:sem-rm sem-wait G:sem-wait sem-wait? G:sem-wait? -Builtin sem>name G:sem>name semi-throw G:semi-throw set-wipe G:set-wipe setenv G:setenv setjmp G:setjmp -Builtin settings! G:settings! settings![] G:settings![] settings@ G:settings@ settings@? G:settings@? -Builtin settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days short-months G:short-months -Builtin sleep G:sleep sleep-until G:sleep-until slog G:slog space G:space stack-check G:stack-check -Builtin stack-size G:stack-size step G:step sthrow G:sthrow string? G:string? struct: G:struct: swap G:swap -Builtin tab-hook G:tab-hook tell-conflict G:tell-conflict tempdir G:tempdir tempfilename G:tempfilename -Builtin third G:third throw G:throw thrownull G:thrownull times G:times tlog G:tlog tri G:tri true G:true -Builtin tuck G:tuck type-check G:type-check typeassert G:typeassert uid G:uid uname G:uname unlock G:unlock -Builtin unpack G:unpack until G:until until! G:until! while G:while while! G:while! with: G:with: word? G:word? -Builtin words G:words words-like G:words-like words/ G:words/ xchg G:xchg xor G:xor >auth HTTP:>auth -Builtin (curry) I:(curry) notimpl I:notimpl sh I:sh trace-word I:trace-word call JSONRPC:call auth-string OAuth:auth-string -Builtin gen-nonce OAuth:gen-nonce params OAuth:params call SOAP:call ! a:! + a:+ - a:- / a:/ 2each a:2each -Builtin 2map a:2map 2map+ a:2map+ 2map= a:2map= = a:= @ a:@ @? a:@? _@ a:_@ all a:all any a:any bsearch a:bsearch -Builtin centroid a:centroid clear a:clear close a:close diff a:diff dot a:dot each a:each each! a:each! -Builtin each-slice a:each-slice exists? a:exists? filter a:filter generate a:generate group a:group -Builtin indexof a:indexof insert a:insert intersect a:intersect join a:join len a:len map a:map map+ a:map+ -Builtin map= a:map= mean a:mean mean&variance a:mean&variance merge a:merge new a:new op! a:op! open a:open -Builtin pop a:pop push a:push qsort a:qsort randeach a:randeach reduce a:reduce reduce+ a:reduce+ remove a:remove -Builtin rev a:rev shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+ slide a:slide smear a:smear -Builtin sort a:sort union a:union x a:x x-each a:x-each xchg a:xchg y a:y zip a:zip 8thdir app:8thdir -Builtin asset app:asset atrun app:atrun atrun app:atrun atrun app:atrun basedir app:basedir current app:current -Builtin datadir app:datadir exename app:exename lowmem app:lowmem main app:main name app:name oncrash app:oncrash +Builtin rreset G:rreset rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage s>ns G:s>ns same? G:same? +Builtin scriptdir G:scriptdir scriptfile G:scriptfile sem G:sem sem-post G:sem-post sem-rm G:sem-rm +Builtin sem-wait G:sem-wait sem-wait? G:sem-wait? sem>name G:sem>name semi-throw G:semi-throw set-wipe G:set-wipe +Builtin setenv G:setenv setjmp G:setjmp settings! G:settings! settings![] G:settings![] settings@ G:settings@ +Builtin settings@? G:settings@? settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days +Builtin short-months G:short-months sleep G:sleep sleep-msec G:sleep-msec sleep-until G:sleep-until +Builtin slog G:slog space G:space stack-check G:stack-check stack-size G:stack-size step G:step sthrow G:sthrow +Builtin string? G:string? struct: G:struct: swap G:swap tab-hook G:tab-hook tell-conflict G:tell-conflict +Builtin tempdir G:tempdir tempfilename G:tempfilename third G:third throw G:throw thrownull G:thrownull +Builtin times G:times tlog G:tlog tri G:tri true G:true tuck G:tuck type-check G:type-check typeassert G:typeassert +Builtin uid G:uid uname G:uname unlock G:unlock unpack G:unpack until G:until until! G:until! while G:while +Builtin while! G:while! with: G:with: word? G:word? words G:words words-like G:words-like words/ G:words/ +Builtin xchg G:xchg xor G:xor >auth HTTP:>auth (curry) I:(curry) notimpl I:notimpl sh I:sh trace-word I:trace-word +Builtin call JSONRPC:call auth-string OAuth:auth-string gen-nonce OAuth:gen-nonce params OAuth:params +Builtin call SOAP:call ! a:! + a:+ - a:- / a:/ 2each a:2each 2map a:2map 2map+ a:2map+ 2map= a:2map= +Builtin <> a:<> = a:= @ a:@ @? a:@? _@ a:_@ all a:all any a:any bsearch a:bsearch centroid a:centroid +Builtin clear a:clear close a:close cmp a:cmp diff a:diff dot a:dot each a:each each! a:each! each-par a:each-par +Builtin each-slice a:each-slice exists? a:exists? filter a:filter filter-par a:filter-par generate a:generate +Builtin group a:group indexof a:indexof insert a:insert intersect a:intersect join a:join len a:len +Builtin map a:map map+ a:map+ map-par a:map-par map= a:map= maxlen a:maxlen mean a:mean mean&variance a:mean&variance +Builtin merge a:merge new a:new op! a:op! open a:open pigeon a:pigeon pivot a:pivot pop a:pop push a:push +Builtin qsort a:qsort randeach a:randeach reduce a:reduce reduce+ a:reduce+ remove a:remove rev a:rev +Builtin rindexof a:rindexof shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+ slide a:slide +Builtin smear a:smear sort a:sort split a:split squash a:squash switch a:switch union a:union uniq a:uniq +Builtin unzip a:unzip x a:x x-each a:x-each xchg a:xchg y a:y zip a:zip 8thdir app:8thdir asset app:asset +Builtin atrun app:atrun atrun app:atrun atrun app:atrun basedir app:basedir basename app:basename config-file-name app:config-file-name +Builtin current app:current datadir app:datadir display-moved app:display-moved exename app:exename +Builtin localechanged app:localechanged lowmem app:lowmem main app:main name app:name oncrash app:oncrash Builtin opts! app:opts! opts@ app:opts@ orientation app:orientation orientation! app:orientation! pid app:pid -Builtin post-main app:post-main pre-main app:pre-main raise app:raise request-perm app:request-perm +Builtin post-main app:post-main pre-main app:pre-main privdir app:privdir raise app:raise read-config app:read-config +Builtin read-config-map app:read-config-map read-config-var app:read-config-var request-perm app:request-perm Builtin restart app:restart resumed app:resumed signal app:signal standalone app:standalone subdir app:subdir -Builtin suspended app:suspended sysquit app:sysquit terminated app:terminated trap app:trap (here) asm:(here) -Builtin >n asm:>n avail asm:avail c, asm:c, here! asm:here! n> asm:n> used asm:used w, asm:w, ! b:! -Builtin + b:+ / b:/ 1+ b:1+ 1- b:1- = b:= >base16 b:>base16 >base32 b:>base32 >base64 b:>base64 >base85 b:>base85 -Builtin >hex b:>hex >mpack b:>mpack @ b:@ append b:append base16> b:base16> base32> b:base32> base64> b:base64> -Builtin base85> b:base85> bit! b:bit! bit@ b:bit@ clear b:clear compress b:compress conv b:conv each b:each -Builtin each! b:each! each-slice b:each-slice expand b:expand fill b:fill getb b:getb hex> b:hex> len b:len -Builtin mem> b:mem> move b:move mpack-compat b:mpack-compat mpack-date b:mpack-date mpack-ignore b:mpack-ignore -Builtin mpack> b:mpack> n! b:n! n+ b:n+ n@ b:n@ new b:new op b:op pad b:pad rev b:rev search b:search -Builtin shmem b:shmem slice b:slice splice b:splice ungetb b:ungetb unpad b:unpad writable b:writable -Builtin xor b:xor +block bc:+block .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash -Builtin block@ bc:block@ first-block bc:first-block hash bc:hash last-block bc:last-block load bc:load -Builtin new bc:new save bc:save set-sql bc:set-sql validate bc:validate validate-block bc:validate-block -Builtin add bloom:add filter bloom:filter in? bloom:in? accept bt:accept ch! bt:ch! ch@ bt:ch@ connect bt:connect -Builtin disconnect bt:disconnect init bt:init leconnect bt:leconnect lescan bt:lescan listen bt:listen -Builtin on? bt:on? read bt:read scan bt:scan service? bt:service? services? bt:services? write bt:write -Builtin * c:* * c:* + c:+ + c:+ = c:= = c:= >ri c:>ri >ri c:>ri abs c:abs abs c:abs arg c:arg arg c:arg -Builtin conj c:conj conj c:conj im c:im n> c:n> new c:new new c:new re c:re >redir con:>redir accept con:accept -Builtin accept-pwd con:accept-pwd ansi? con:ansi? black con:black blue con:blue clreol con:clreol cls con:cls -Builtin cyan con:cyan down con:down free con:free getxy con:getxy gotoxy con:gotoxy green con:green -Builtin key con:key key? con:key? left con:left load-history con:load-history magenta con:magenta onBlack con:onBlack -Builtin onBlue con:onBlue onCyan con:onCyan onGreen con:onGreen onMagenta con:onMagenta onRed con:onRed -Builtin onWhite con:onWhite onYellow con:onYellow print con:print red con:red redir> con:redir> redir? con:redir? -Builtin right con:right save-history con:save-history size? con:size? up con:up white con:white yellow con:yellow -Builtin >aes128gcm cr:>aes128gcm >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe >decrypt cr:>decrypt -Builtin >edbox cr:>edbox >encrypt cr:>encrypt >nbuf cr:>nbuf >rsabox cr:>rsabox >uuid cr:>uuid CBC cr:CBC -Builtin CFB cr:CFB CTR cr:CTR ECB cr:ECB GCM cr:GCM OFB cr:OFB aad? cr:aad? aes128box-sig cr:aes128box-sig -Builtin aes128gcm> cr:aes128gcm> aes256box-sig cr:aes256box-sig aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm -Builtin blakehash cr:blakehash chacha20box-sig cr:chacha20box-sig chachapoly cr:chachapoly cipher! cr:cipher! -Builtin cipher@ cr:cipher@ cp> cr:cp> cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt> -Builtin dh-genkey cr:dh-genkey dh-secret cr:dh-secret dh-sign cr:dh-sign dh-verify cr:dh-verify ebox-sig cr:ebox-sig -Builtin ecc-genkey cr:ecc-genkey ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign ecc-verify cr:ecc-verify -Builtin edbox-sig cr:edbox-sig edbox> cr:edbox> encrypt cr:encrypt encrypt+ cr:encrypt+ encrypt> cr:encrypt> -Builtin ensurekey cr:ensurekey gcm-tag-size cr:gcm-tag-size genkey cr:genkey hash cr:hash hash! cr:hash! -Builtin hash+ cr:hash+ hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hmac cr:hmac hotp cr:hotp iv? cr:iv? -Builtin mode cr:mode mode@ cr:mode@ rand cr:rand randbuf cr:randbuf randkey cr:randkey restore cr:restore +Builtin suspended app:suspended sysquit app:sysquit terminated app:terminated timeout app:timeout trap app:trap +Builtin dawn astro:dawn do-dawn astro:do-dawn do-dusk astro:do-dusk do-rise astro:do-rise dusk astro:dusk +Builtin latitude astro:latitude location! astro:location! longitude astro:longitude sunrise astro:sunrise +Builtin genkeys auth:genkeys secret auth:secret session-id auth:session-id session-key auth:session-key +Builtin validate auth:validate ! b:! + b:+ / b:/ 1+ b:1+ 1- b:1- <> b:<> = b:= >base16 b:>base16 >base32 b:>base32 +Builtin >base64 b:>base64 >base85 b:>base85 >hex b:>hex >mpack b:>mpack @ b:@ append b:append base16> b:base16> +Builtin base32> b:base32> base64> b:base64> base85> b:base85> bit! b:bit! bit@ b:bit@ clear b:clear +Builtin compress b:compress conv b:conv each b:each each! b:each! each-slice b:each-slice expand b:expand +Builtin fill b:fill getb b:getb hex> b:hex> len b:len mem> b:mem> move b:move mpack-compat b:mpack-compat +Builtin mpack-date b:mpack-date mpack-ignore b:mpack-ignore mpack> b:mpack> n! b:n! n+ b:n+ n@ b:n@ +Builtin new b:new op b:op op! b:op! pad b:pad rev b:rev search b:search shmem b:shmem slice b:slice +Builtin splice b:splice ungetb b:ungetb unpad b:unpad writable b:writable xor b:xor +block bc:+block +Builtin .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash block@ bc:block@ first-block bc:first-block +Builtin hash bc:hash last-block bc:last-block load bc:load new bc:new save bc:save set-sql bc:set-sql +Builtin validate bc:validate validate-block bc:validate-block add bloom:add filter bloom:filter in? bloom:in? +Builtin parse bson:parse accept bt:accept ch! bt:ch! ch@ bt:ch@ connect bt:connect disconnect bt:disconnect +Builtin init bt:init leconnect bt:leconnect lescan bt:lescan listen bt:listen on? bt:on? read bt:read +Builtin scan bt:scan service? bt:service? services? bt:services? write bt:write * c:* * c:* + c:+ + c:+ +Builtin = c:= = c:= >ri c:>ri >ri c:>ri abs c:abs abs c:abs arg c:arg arg c:arg conj c:conj conj c:conj +Builtin im c:im n> c:n> new c:new new c:new re c:re (.hebrew) cal:(.hebrew) (.islamic) cal:(.islamic) +Builtin .hebrew cal:.hebrew .islamic cal:.islamic >hebepoch cal:>hebepoch >jdn cal:>jdn Adar cal:Adar +Builtin Adar2 cal:Adar2 Adar2 cal:Adar2 Av cal:Av Elul cal:Elul Heshvan cal:Heshvan Iyar cal:Iyar Kislev cal:Kislev +Builtin Nissan cal:Nissan Shevat cal:Shevat Sivan cal:Sivan Tammuz cal:Tammuz Tevet cal:Tevet Tishrei cal:Tishrei +Builtin days-in-hebrew-year cal:days-in-hebrew-year displaying-hebrew cal:displaying-hebrew fixed>hebrew cal:fixed>hebrew +Builtin fixed>islamic cal:fixed>islamic gershayim cal:gershayim hanukkah cal:hanukkah hebrew-epoch cal:hebrew-epoch +Builtin hebrew>fixed cal:hebrew>fixed hebrewtoday cal:hebrewtoday hmonth-name cal:hmonth-name islamic.epoch cal:islamic.epoch +Builtin islamic>fixed cal:islamic>fixed islamictoday cal:islamictoday jdn> cal:jdn> last-day-of-hebrew-month cal:last-day-of-hebrew-month +Builtin number>hebrew cal:number>hebrew omer cal:omer pesach cal:pesach purim cal:purim rosh-chodesh? cal:rosh-chodesh? +Builtin rosh-hashanah cal:rosh-hashanah shavuot cal:shavuot taanit-esther cal:taanit-esther tisha-beav cal:tisha-beav +Builtin yom-haatsmaut cal:yom-haatsmaut yom-kippur cal:yom-kippur >redir con:>redir accept con:accept +Builtin accept-nl con:accept-nl accept-pwd con:accept-pwd alert con:alert ansi? con:ansi? black con:black +Builtin blue con:blue clreol con:clreol cls con:cls ctrld-empty con:ctrld-empty cyan con:cyan down con:down +Builtin file>history con:file>history free con:free getxy con:getxy gotoxy con:gotoxy green con:green +Builtin history-handler con:history-handler history>file con:history>file key con:key key? con:key? +Builtin left con:left load-history con:load-history magenta con:magenta max-history con:max-history +Builtin onBlack con:onBlack onBlue con:onBlue onCyan con:onCyan onGreen con:onGreen onMagenta con:onMagenta +Builtin onRed con:onRed onWhite con:onWhite onYellow con:onYellow print con:print red con:red redir> con:redir> +Builtin redir? con:redir? right con:right save-history con:save-history size? con:size? up con:up white con:white +Builtin yellow con:yellow >aes128gcm cr:>aes128gcm >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe +Builtin >decrypt cr:>decrypt >edbox cr:>edbox >encrypt cr:>encrypt >nbuf cr:>nbuf >rsabox cr:>rsabox +Builtin >uuid cr:>uuid aad? cr:aad? aes128box-sig cr:aes128box-sig aes128gcm> cr:aes128gcm> aes256box-sig cr:aes256box-sig +Builtin aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm blakehash cr:blakehash chacha20box-sig cr:chacha20box-sig +Builtin chachapoly cr:chachapoly cipher! cr:cipher! cipher@ cr:cipher@ ciphers cr:ciphers cp> cr:cp> +Builtin cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt> ebox-sig cr:ebox-sig +Builtin ecc-curves cr:ecc-curves ecc-genkey cr:ecc-genkey ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign +Builtin ecc-verify cr:ecc-verify ed25519 cr:ed25519 ed25519-secret cr:ed25519-secret ed25519-sign cr:ed25519-sign +Builtin ed25519-verify cr:ed25519-verify edbox-sig cr:edbox-sig edbox> cr:edbox> encrypt cr:encrypt +Builtin encrypt+ cr:encrypt+ encrypt> cr:encrypt> ensurekey cr:ensurekey genkey cr:genkey hash cr:hash +Builtin hash! cr:hash! hash+ cr:hash+ hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hashes cr:hashes +Builtin hmac cr:hmac hotp cr:hotp iv? cr:iv? pem-read cr:pem-read pem-write cr:pem-write pwd-valid? cr:pwd-valid? +Builtin pwd/ cr:pwd/ pwd>hash cr:pwd>hash rand cr:rand randbuf cr:randbuf randkey cr:randkey restore cr:restore Builtin root-certs cr:root-certs rsa_decrypt cr:rsa_decrypt rsa_encrypt cr:rsa_encrypt rsa_sign cr:rsa_sign Builtin rsa_verify cr:rsa_verify rsabox-sig cr:rsabox-sig rsabox> cr:rsabox> rsagenkey cr:rsagenkey Builtin save cr:save sbox-sig cr:sbox-sig sha1-hmac cr:sha1-hmac shard cr:shard tag? cr:tag? totp cr:totp Builtin totp-epoch cr:totp-epoch totp-time-step cr:totp-time-step unshard cr:unshard uuid cr:uuid uuid> cr:uuid> -Builtin validate-pgp-sig cr:validate-pgp-sig (.hebrew) d:(.hebrew) (.islamic) d:(.islamic) + d:+ +day d:+day -Builtin +hour d:+hour +min d:+min +msec d:+msec - d:- .hebrew d:.hebrew .islamic d:.islamic .time d:.time -Builtin / d:/ = d:= >fixed d:>fixed >hebepoch d:>hebepoch >jdn d:>jdn >msec d:>msec >unix d:>unix >ymd d:>ymd -Builtin ?= d:?= Adar d:Adar Adar2 d:Adar2 Adar2 d:Adar2 Av d:Av Elul d:Elul Fri d:Fri Heshvan d:Heshvan -Builtin Iyar d:Iyar Kislev d:Kislev Mon d:Mon Nissan d:Nissan Sat d:Sat Shevat d:Shevat Sivan d:Sivan -Builtin Sun d:Sun Tammuz d:Tammuz Tevet d:Tevet Thu d:Thu Tishrei d:Tishrei Tue d:Tue Wed d:Wed adjust-dst d:adjust-dst -Builtin approx! d:approx! approx? d:approx? approximates! d:approximates! between d:between d. d:d. -Builtin dawn d:dawn days-in-hebrew-year d:days-in-hebrew-year displaying-hebrew d:displaying-hebrew -Builtin do-dawn d:do-dawn do-dusk d:do-dusk do-rise d:do-rise doy d:doy dst? d:dst? dstquery d:dstquery -Builtin dstzones? d:dstzones? dusk d:dusk elapsed-timer d:elapsed-timer elapsed-timer-seconds d:elapsed-timer-seconds -Builtin first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow fixed>hebrew d:fixed>hebrew fixed>islamic d:fixed>islamic -Builtin format d:format hanukkah d:hanukkah hebrew-epoch d:hebrew-epoch hebrew>fixed d:hebrew>fixed -Builtin hebrewtoday d:hebrewtoday hmonth-name d:hmonth-name islamic.epoch d:islamic.epoch islamic>fixed d:islamic>fixed -Builtin islamictoday d:islamictoday jdn> d:jdn> join d:join last-day-of-hebrew-month d:last-day-of-hebrew-month -Builtin last-dow d:last-dow last-month d:last-month last-week d:last-week last-year d:last-year latitude d:latitude -Builtin longitude d:longitude longitude d:longitude msec d:msec msec> d:msec> new d:new next-dow d:next-dow -Builtin next-month d:next-month next-week d:next-week next-year d:next-year number>hebrew d:number>hebrew -Builtin omer d:omer parse d:parse parse-approx d:parse-approx parse-range d:parse-range pesach d:pesach -Builtin prev-dow d:prev-dow purim d:purim rosh-chodesh? d:rosh-chodesh? rosh-hashanah d:rosh-hashanah -Builtin shavuot d:shavuot start-timer d:start-timer sunrise d:sunrise taanit-esther d:taanit-esther -Builtin ticks d:ticks ticks/sec d:ticks/sec timer d:timer timer-ctrl d:timer-ctrl tisha-beav d:tisha-beav -Builtin tzadjust d:tzadjust unix> d:unix> unknown d:unknown unknown? d:unknown? updatetz d:updatetz -Builtin year@ d:year@ ymd d:ymd ymd> d:ymd> yom-haatsmaut d:yom-haatsmaut yom-kippur d:yom-kippur add-func db:add-func -Builtin aes! db:aes! begin db:begin bind db:bind bind-exec db:bind-exec bind-exec[] db:bind-exec[] -Builtin close db:close col db:col col[] db:col[] col{} db:col{} commit db:commit each db:each exec db:exec -Builtin exec-cb db:exec-cb exec-name db:exec-name get db:get get-sub db:get-sub key db:key kind? db:kind? -Builtin last-rowid db:last-rowid mysql? db:mysql? odbc? db:odbc? open db:open open? db:open? prep-name db:prep-name -Builtin prepare db:prepare query db:query query-all db:query-all rekey db:rekey rollback db:rollback -Builtin set db:set set-sub db:set-sub sql@ db:sql@ bp dbg:bp except-task@ dbg:except-task@ go dbg:go -Builtin line-info dbg:line-info prompt dbg:prompt stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter -Builtin trace-leave dbg:trace-leave / f:/ abspath f:abspath absrel f:absrel append f:append associate f:associate -Builtin atime f:atime canwrite? f:canwrite? chmod f:chmod close f:close copy f:copy copydir f:copydir +Builtin validate-pgp-sig cr:validate-pgp-sig validate-pwd cr:validate-pwd + d:+ +day d:+day +hour d:+hour +Builtin +min d:+min +msec d:+msec - d:- .time d:.time / d:/ = d:= >fixed d:>fixed >hmds d:>hmds >hmds: d:>hmds: +Builtin >msec d:>msec >unix d:>unix >ymd d:>ymd ?= d:?= Fri d:Fri Mon d:Mon Sat d:Sat Sun d:Sun Thu d:Thu +Builtin Tue d:Tue Wed d:Wed adjust-dst d:adjust-dst alarm d:alarm approx! d:approx! approx? d:approx? +Builtin approximates! d:approximates! between d:between cmp d:cmp d. d:d. default-now d:default-now +Builtin doy d:doy dst-ofs d:dst-ofs dst? d:dst? dstinfo d:dstinfo dstquery d:dstquery dstzones? d:dstzones? +Builtin elapsed-timer d:elapsed-timer elapsed-timer-hmds d:elapsed-timer-hmds elapsed-timer-msec d:elapsed-timer-msec +Builtin elapsed-timer-seconds d:elapsed-timer-seconds first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow +Builtin format d:format join d:join last-dow d:last-dow last-month d:last-month last-week d:last-week +Builtin last-year d:last-year msec d:msec msec> d:msec> new d:new next-dow d:next-dow next-month d:next-month +Builtin next-week d:next-week next-year d:next-year parse d:parse parse-approx d:parse-approx parse-range d:parse-range +Builtin prev-dow d:prev-dow rfc5322 d:rfc5322 start-timer d:start-timer ticks d:ticks ticks/sec d:ticks/sec +Builtin timer d:timer timer-ctrl d:timer-ctrl tzadjust d:tzadjust unix> d:unix> unknown d:unknown unknown? d:unknown? +Builtin updatetz d:updatetz year@ d:year@ ymd d:ymd ymd> d:ymd> add-func db:add-func aes! db:aes! again? db:again? +Builtin begin db:begin bind db:bind bind-exec db:bind-exec bind-exec{} db:bind-exec{} close db:close +Builtin col db:col col{} db:col{} commit db:commit db db:db dbpush db:dbpush disuse db:disuse each db:each +Builtin err-handler db:err-handler exec db:exec exec-cb db:exec-cb exec-name db:exec-name exec{} db:exec{} +Builtin get db:get get-sub db:get-sub key db:key kind? db:kind? last-rowid db:last-rowid mysql? db:mysql? +Builtin odbc? db:odbc? open db:open open? db:open? prep-name db:prep-name prepare db:prepare query db:query +Builtin query-all db:query-all rekey db:rekey rollback db:rollback set db:set set-sub db:set-sub sql@ db:sql@ +Builtin sql[] db:sql[] sql[np] db:sql[np] sql{np} db:sql{np} sql{} db:sql{} use db:use zip db:zip bp dbg:bp +Builtin bt dbg:bt except-task@ dbg:except-task@ go dbg:go line-info dbg:line-info prompt dbg:prompt +Builtin stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter trace-leave dbg:trace-leave / f:/ +Builtin >posix f:>posix abspath f:abspath absrel f:absrel append f:append associate f:associate atime f:atime +Builtin autodel f:autodel canwrite? f:canwrite? chmod f:chmod close f:close copy f:copy copydir f:copydir Builtin create f:create ctime f:ctime dir? f:dir? dname f:dname eachbuf f:eachbuf eachline f:eachline -Builtin enssep f:enssep eof? f:eof? exists? f:exists? flush f:flush fname f:fname getb f:getb getc f:getc -Builtin getline f:getline getmod f:getmod glob f:glob glob-nocase f:glob-nocase homedir f:homedir homedir! f:homedir! -Builtin include f:include ioctl f:ioctl join f:join launch f:launch link f:link link> f:link> link? f:link? -Builtin mkdir f:mkdir mmap f:mmap mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime mv f:mv -Builtin name@ f:name@ open f:open open-ro f:open-ro popen f:popen print f:print read f:read read? f:read? -Builtin relpath f:relpath rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep size f:size slurp f:slurp -Builtin sparse? f:sparse? spit f:spit stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell times f:times -Builtin tmpspit f:tmpspit trash f:trash truncate f:truncate ungetb f:ungetb ungetc f:ungetc unzip f:unzip -Builtin unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen zip+ f:zip+ zip@ f:zip@ -Builtin zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave atlas! font:atlas! -Builtin atlas@ font:atlas@ default-size font:default-size info font:info ls font:ls measure font:measure -Builtin new font:new oversample font:oversample pixels font:pixels pixels? font:pixels? +edge gr:+edge -Builtin +edge+w gr:+edge+w +node gr:+node connect gr:connect edges gr:edges edges! gr:edges! m! gr:m! -Builtin m@ gr:m@ neighbors gr:neighbors new gr:new node-edges gr:node-edges nodes gr:nodes traverse gr:traverse -Builtin weight! gr:weight! + h:+ clear h:clear cmp! h:cmp! len h:len max! h:max! new h:new peek h:peek -Builtin pop h:pop push h:push unique h:unique arm? hw:arm? camera hw:camera camera-img hw:camera-img -Builtin camera-limits hw:camera-limits camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays? -Builtin displaysize? hw:displaysize? finger-match hw:finger-match finger-support hw:finger-support -Builtin gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c! i2c!reg hw:i2c!reg -Builtin i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? iswatch? hw:iswatch? mac? hw:mac? mem? hw:mem? -Builtin model? hw:model? poll hw:poll sensor hw:sensor start hw:start stop hw:stop uid? hw:uid? fetch-full imap:fetch-full -Builtin fetch-uid-mail imap:fetch-uid-mail login imap:login logout imap:logout new imap:new search imap:search -Builtin select-inbox imap:select-inbox >file img:>file >fmt img:>fmt copy img:copy crop img:crop data img:data -Builtin desat img:desat fill img:fill fillrect img:fillrect filter img:filter flip img:flip from-svg img:from-svg -Builtin new img:new pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen qr-parse img:qr-parse rotate img:rotate -Builtin scale img:scale scroll img:scroll size img:size countries iso:countries find loc:find sort loc:sort -Builtin ! m:! !? m:!? + m:+ +? m:+? - m:- >arr m:>arr @ m:@ @? m:@? _! m:_! _@ m:_@ arr> m:arr> bitmap m:bitmap -Builtin clear m:clear data m:data each m:each exists? m:exists? filter m:filter iter m:iter iter-all m:iter-all -Builtin keys m:keys len m:len map m:map merge m:merge new m:new op! m:op! open m:open slice m:slice -Builtin vals m:vals xchg m:xchg zip m:zip ! mat:! * mat:* + mat:+ = mat:= @ mat:@ affine mat:affine -Builtin col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n ident mat:ident inv mat:inv -Builtin m. mat:m. minor mat:minor n* mat:n* new mat:new new-minor mat:new-minor rotate mat:rotate row mat:row -Builtin same-size? mat:same-size? scale mat:scale shear mat:shear trans mat:trans translate mat:translate -Builtin xform mat:xform 2console md:2console 2html md:2html 2nk md:2nk bounds meta:bounds color meta:color -Builtin console meta:console end meta:end ffi meta:ffi ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/ -Builtin /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:> BIGE n:BIGE BIGPI n:BIGPI E n:E PI n:PI ^ n:^ -Builtin _mod n:_mod abs n:abs acos n:acos acos n:acos asin n:asin asin n:asin atan n:atan atan n:atan -Builtin atan2 n:atan2 band n:band between n:between bfloat n:bfloat bic n:bic bint n:bint binv n:binv -Builtin bnot n:bnot bor n:bor bxor n:bxor cast n:cast ceil n:ceil clamp n:clamp cmp n:cmp comb n:comb -Builtin cos n:cos cosd n:cosd emod n:emod exp n:exp expm1 n:expm1 expmod n:expmod float n:float floor n:floor -Builtin fmod n:fmod frac n:frac gcd n:gcd int n:int invmod n:invmod kind? n:kind? lcm n:lcm ln n:ln -Builtin ln1p n:ln1p max n:max median n:median min n:min mod n:mod neg n:neg odd? n:odd? perm n:perm -Builtin prime? n:prime? quantize n:quantize quantize! n:quantize! r+ n:r+ range n:range rot32l n:rot32l -Builtin rot32r n:rot32r round n:round round2 n:round2 rounding n:rounding running-variance n:running-variance -Builtin running-variance-finalize n:running-variance-finalize sgn n:sgn shl n:shl shr n:shr sin n:sin -Builtin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand trunc n:trunc ~= n:~= ! net:! !? net:!? -Builtin - net:- >url net:>url @ net:@ @? net:@? DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6 PROTO_TCP net:PROTO_TCP -Builtin PROTO_UDP net:PROTO_UDP STREAM net:STREAM accept net:accept addrinfo>o net:addrinfo>o again? net:again? -Builtin alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf bind net:bind close net:close closed? net:closed? -Builtin connect net:connect debug? net:debug? delete net:delete get net:get getaddrinfo net:getaddrinfo -Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? listen net:listen map>url net:map>url -Builtin net-socket net:net-socket opts net:opts port-is-ssl? net:port-is-ssl? post net:post proxy! net:proxy! -Builtin put net:put read net:read read-all net:read-all recvfrom net:recvfrom s>url net:s>url sendto net:sendto -Builtin server net:server setsockopt net:setsockopt socket net:socket tlshello net:tlshello url> net:url> -Builtin user-agent net:user-agent wait net:wait write net:write (begin) nk:(begin) (chart-begin) nk:(chart-begin) -Builtin (chart-begin-colored) nk:(chart-begin-colored) (chart-end) nk:(chart-end) (end) nk:(end) (group-begin) nk:(group-begin) -Builtin (group-end) nk:(group-end) (property) nk:(property) >img nk:>img addfont nk:addfont anti-alias nk:anti-alias -Builtin any-clicked? nk:any-clicked? bounds nk:bounds bounds! nk:bounds! button nk:button button-color nk:button-color -Builtin button-label nk:button-label button-set-behavior nk:button-set-behavior button-symbol nk:button-symbol -Builtin button-symbol-label nk:button-symbol-label chart-add-slot nk:chart-add-slot chart-add-slot-colored nk:chart-add-slot-colored -Builtin chart-push nk:chart-push chart-push-slot nk:chart-push-slot checkbox nk:checkbox clicked? nk:clicked? -Builtin close-this! nk:close-this! close-this? nk:close-this? close? nk:close? color-picker nk:color-picker -Builtin combo nk:combo combo-begin-color nk:combo-begin-color combo-begin-label nk:combo-begin-label +Builtin enssep f:enssep eof? f:eof? exec f:exec exists? f:exists? flush f:flush fname f:fname getb f:getb +Builtin getc f:getc getline f:getline getmod f:getmod glob f:glob glob-links f:glob-links glob-nocase f:glob-nocase +Builtin gunz f:gunz homedir f:homedir homedir! f:homedir! include f:include ioctl f:ioctl join f:join +Builtin launch f:launch link f:link link> f:link> link? f:link? lock f:lock mkdir f:mkdir mmap f:mmap +Builtin mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime mv f:mv name@ f:name@ open f:open +Builtin open! f:open! open-ro f:open-ro popen f:popen popen3 f:popen3 print f:print read f:read read-buf f:read-buf +Builtin read? f:read? relpath f:relpath rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep size f:size +Builtin slurp f:slurp sparse? f:sparse? spit f:spit stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell +Builtin tempfile f:tempfile times f:times tmpspit f:tmpspit trash f:trash truncate f:truncate ungetb f:ungetb +Builtin ungetc f:ungetc unzip f:unzip unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen +Builtin zip+ f:zip+ zip@ f:zip@ zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave +Builtin atlas! font:atlas! atlas@ font:atlas@ default-size font:default-size default-size@ font:default-size@ +Builtin info font:info ls font:ls measure font:measure new font:new oversample font:oversample pixels font:pixels +Builtin pixels? font:pixels? system font:system system font:system distance geo:distance km/deg-lat geo:km/deg-lat +Builtin km/deg-lon geo:km/deg-lon nearest geo:nearest +edge gr:+edge +edge+w gr:+edge+w +node gr:+node +Builtin connect gr:connect edges gr:edges edges! gr:edges! m! gr:m! m@ gr:m@ neighbors gr:neighbors +Builtin new gr:new node-edges gr:node-edges nodes gr:nodes traverse gr:traverse weight! gr:weight! +Builtin + h:+ clear h:clear cmp! h:cmp! len h:len max! h:max! new h:new peek h:peek pop h:pop push h:push +Builtin unique h:unique parse html:parse arm? hw:arm? camera hw:camera camera-img hw:camera-img camera-limits hw:camera-limits +Builtin camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays? displaysize? hw:displaysize? +Builtin finger-match hw:finger-match finger-support hw:finger-support gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap +Builtin gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c! i2c!reg hw:i2c!reg i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? +Builtin iswatch? hw:iswatch? mac? hw:mac? mem? hw:mem? model? hw:model? poll hw:poll sensor hw:sensor +Builtin start hw:start stop hw:stop uid? hw:uid? fetch-full imap:fetch-full fetch-uid-mail imap:fetch-uid-mail +Builtin login imap:login logout imap:logout new imap:new search imap:search select-inbox imap:select-inbox +Builtin >file img:>file >fmt img:>fmt copy img:copy crop img:crop data img:data desat img:desat draw img:draw +Builtin draw-sub img:draw-sub fill img:fill fillrect img:fillrect filter img:filter flip img:flip from-svg img:from-svg +Builtin line img:line new img:new pikchr img:pikchr pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen qr-parse img:qr-parse +Builtin rect img:rect rotate img:rotate scale img:scale scroll img:scroll size img:size countries iso:countries +Builtin languages iso:languages utils/help library:utils/help find loc:find sort loc:sort ! m:! !? m:!? +Builtin + m:+ +? m:+? - m:- <> m:<> = m:= >arr m:>arr @ m:@ @? m:@? _! m:_! _@ m:_@ alias m:alias arr> m:arr> +Builtin bitmap m:bitmap clear m:clear data m:data each m:each exists? m:exists? filter m:filter ic m:ic +Builtin iter m:iter iter-all m:iter-all keys m:keys len m:len map m:map merge m:merge new m:new op! m:op! +Builtin open m:open slice m:slice vals m:vals xchg m:xchg zip m:zip ! mat:! * mat:* + mat:+ = mat:= +Builtin @ mat:@ affine mat:affine col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n +Builtin ident mat:ident inv mat:inv m. mat:m. minor mat:minor n* mat:n* new mat:new new-minor mat:new-minor +Builtin rotate mat:rotate row mat:row same-size? mat:same-size? scale mat:scale shear mat:shear trans mat:trans +Builtin translate mat:translate xform mat:xform 2console md:2console 2html md:2html 2nk md:2nk color meta:color +Builtin console meta:console gui meta:gui meta meta:meta ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/ +Builtin /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:> >bool n:>bool BIGE n:BIGE BIGPI n:BIGPI E n:E +Builtin PI n:PI ^ n:^ _mod n:_mod abs n:abs acos n:acos acos n:acos andor n:andor asin n:asin asin n:asin +Builtin atan n:atan atan n:atan atan2 n:atan2 band n:band between n:between bfloat n:bfloat bic n:bic +Builtin bint n:bint binv n:binv bnot n:bnot bor n:bor bxor n:bxor cast n:cast ceil n:ceil clamp n:clamp +Builtin cmp n:cmp comb n:comb cos n:cos cosd n:cosd emod n:emod exp n:exp expm1 n:expm1 expmod n:expmod +Builtin float n:float floor n:floor fmod n:fmod frac n:frac gcd n:gcd int n:int invmod n:invmod kind? n:kind? +Builtin lcm n:lcm lerp n:lerp ln n:ln ln1p n:ln1p lnerp n:lnerp max n:max median n:median min n:min +Builtin mod n:mod neg n:neg odd? n:odd? perm n:perm prime? n:prime? quantize n:quantize quantize! n:quantize! +Builtin r+ n:r+ range n:range rot32l n:rot32l rot32r n:rot32r round n:round round2 n:round2 rounding n:rounding +Builtin running-variance n:running-variance running-variance-finalize n:running-variance-finalize sgn n:sgn +Builtin shl n:shl shr n:shr sin n:sin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand trunc n:trunc +Builtin ~= n:~= ! net:! !? net:!? - net:- >base64url net:>base64url >url net:>url @ net:@ @? net:@? +Builtin CGI net:CGI DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6 PROTO_TCP net:PROTO_TCP PROTO_UDP net:PROTO_UDP +Builtin REMOTE_IP net:REMOTE_IP STREAM net:STREAM accept net:accept active? net:active? addrinfo>o net:addrinfo>o +Builtin again? net:again? alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf base64url> net:base64url> +Builtin bind net:bind cgi-get net:cgi-get cgi-http-header net:cgi-http-header cgi-init net:cgi-init +Builtin cgi-init-stunnel net:cgi-init-stunnel cgi-out net:cgi-out close net:close closed? net:closed? +Builtin connect net:connect curnet net:curnet debug? net:debug? delete net:delete get net:get getaddrinfo net:getaddrinfo +Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? ipv6? net:ipv6? listen net:listen +Builtin map>url net:map>url mime-type net:mime-type net-socket net:net-socket opts net:opts port-is-ssl? net:port-is-ssl? +Builtin post net:post proxy! net:proxy! put net:put read net:read read-all net:read-all read-buf net:read-buf +Builtin recvfrom net:recvfrom s>url net:s>url sendto net:sendto server net:server setsockopt net:setsockopt +Builtin socket net:socket tcp-connect net:tcp-connect tlserr net:tlserr tlshello net:tlshello udp-connect net:udp-connect +Builtin url> net:url> user-agent net:user-agent vpncheck net:vpncheck wait net:wait webserver net:webserver +Builtin write net:write (begin) nk:(begin) (chart-begin) nk:(chart-begin) (chart-begin-colored) nk:(chart-begin-colored) +Builtin (chart-end) nk:(chart-end) (end) nk:(end) (group-begin) nk:(group-begin) (group-end) nk:(group-end) +Builtin (property) nk:(property) >img nk:>img addfont nk:addfont anti-alias nk:anti-alias any-clicked? nk:any-clicked? +Builtin bounds nk:bounds bounds! nk:bounds! button nk:button button-color nk:button-color button-label nk:button-label +Builtin button-set-behavior nk:button-set-behavior button-symbol nk:button-symbol button-symbol-label nk:button-symbol-label +Builtin center-rect nk:center-rect chart-add-slot nk:chart-add-slot chart-add-slot-colored nk:chart-add-slot-colored +Builtin chart-push nk:chart-push chart-push-slot nk:chart-push-slot checkbox nk:checkbox circle nk:circle +Builtin clicked? nk:clicked? close-this! nk:close-this! close-this? nk:close-this? close? nk:close? +Builtin color-picker nk:color-picker combo nk:combo combo-begin-color nk:combo-begin-color combo-begin-label nk:combo-begin-label Builtin combo-cb nk:combo-cb combo-end nk:combo-end contextual-begin nk:contextual-begin contextual-close nk:contextual-close Builtin contextual-end nk:contextual-end contextual-item-image-text nk:contextual-item-image-text contextual-item-symbol-text nk:contextual-item-symbol-text -Builtin contextual-item-text nk:contextual-item-text cp! nk:cp! cp@ nk:cp@ display-info nk:display-info -Builtin display@ nk:display@ do nk:do down? nk:down? draw-image nk:draw-image draw-image-at nk:draw-image-at -Builtin draw-image-centered nk:draw-image-centered draw-sub-image nk:draw-sub-image draw-text nk:draw-text -Builtin draw-text-high nk:draw-text-high draw-text-wrap nk:draw-text-wrap edit-focus nk:edit-focus +Builtin contextual-item-text nk:contextual-item-text cp! nk:cp! cp@ nk:cp@ curpos nk:curpos cursor-load nk:cursor-load +Builtin cursor-set nk:cursor-set cursor-show nk:cursor-show display-info nk:display-info display@ nk:display@ +Builtin do nk:do down? nk:down? draw-image nk:draw-image draw-image-at nk:draw-image-at draw-image-centered nk:draw-image-centered +Builtin draw-sub-image nk:draw-sub-image draw-text nk:draw-text draw-text-centered nk:draw-text-centered +Builtin draw-text-high nk:draw-text-high draw-text-wrap nk:draw-text-wrap drivers nk:drivers edit-focus nk:edit-focus Builtin edit-string nk:edit-string event nk:event event-boost nk:event-boost event-msec nk:event-msec -Builtin event-wait nk:event-wait fill-arc nk:fill-arc fill-circle nk:fill-circle fill-poly nk:fill-poly -Builtin fill-rect nk:fill-rect fill-rect-color nk:fill-rect-color fill-triangle nk:fill-triangle flags! nk:flags! -Builtin flags@ nk:flags@ fullscreen nk:fullscreen get nk:get get-row-height nk:get-row-height getfont nk:getfont -Builtin getmap nk:getmap gl? nk:gl? grid nk:grid grid-push nk:grid-push group-scroll-ofs nk:group-scroll-ofs -Builtin group-scroll-ofs! nk:group-scroll-ofs! hovered? nk:hovered? image nk:image init nk:init input-button nk:input-button -Builtin input-key nk:input-key input-motion nk:input-motion input-scroll nk:input-scroll input-string nk:input-string -Builtin key-down? nk:key-down? key-pressed? nk:key-pressed? key-released? nk:key-released? label nk:label -Builtin label-colored nk:label-colored label-wrap nk:label-wrap label-wrap-colored nk:label-wrap-colored +Builtin event-wait nk:event-wait event? nk:event? fill-arc nk:fill-arc fill-circle nk:fill-circle fill-color nk:fill-color +Builtin fill-poly nk:fill-poly fill-rect nk:fill-rect fill-rect-color nk:fill-rect-color fill-triangle nk:fill-triangle +Builtin finger nk:finger flags! nk:flags! flags@ nk:flags@ flash nk:flash fullscreen nk:fullscreen +Builtin gesture nk:gesture get nk:get get-row-height nk:get-row-height getfont nk:getfont getmap nk:getmap +Builtin getmap! nk:getmap! gl? nk:gl? grid nk:grid grid-push nk:grid-push group-scroll-ofs nk:group-scroll-ofs +Builtin group-scroll-ofs! nk:group-scroll-ofs! hovered? nk:hovered? hrule nk:hrule image nk:image init nk:init +Builtin input-button nk:input-button input-key nk:input-key input-motion nk:input-motion input-scroll nk:input-scroll +Builtin input-string nk:input-string key-down? nk:key-down? key-pressed? nk:key-pressed? key-released? nk:key-released? +Builtin label nk:label label-colored nk:label-colored label-wrap nk:label-wrap label-wrap-colored nk:label-wrap-colored Builtin layout-bounds nk:layout-bounds layout-grid-begin nk:layout-grid-begin layout-grid-end nk:layout-grid-end Builtin layout-push-dynamic nk:layout-push-dynamic layout-push-static nk:layout-push-static layout-push-variable nk:layout-push-variable Builtin layout-ratio-from-pixel nk:layout-ratio-from-pixel layout-reset-row-height nk:layout-reset-row-height @@ -266,79 +293,94 @@ Builtin layout-row-end nk:layout-row-end layout-row-height nk:layout-row-height Builtin layout-row-static nk:layout-row-static layout-row-template-begin nk:layout-row-template-begin Builtin layout-row-template-end nk:layout-row-template-end layout-space-begin nk:layout-space-begin Builtin layout-space-end nk:layout-space-end layout-space-push nk:layout-space-push layout-widget-bounds nk:layout-widget-bounds -Builtin list-begin nk:list-begin list-end nk:list-end list-new nk:list-new list-range nk:list-range -Builtin m! nk:m! m@ nk:m@ make-style nk:make-style max-vertex-element nk:max-vertex-element measure nk:measure -Builtin measure-font nk:measure-font menu-begin nk:menu-begin menu-close nk:menu-close menu-end nk:menu-end -Builtin menu-item-image nk:menu-item-image menu-item-label nk:menu-item-label menu-item-symbol nk:menu-item-symbol -Builtin menubar-begin nk:menubar-begin menubar-end nk:menubar-end mouse-pos nk:mouse-pos msgdlg nk:msgdlg -Builtin option nk:option plot nk:plot plot-fn nk:plot-fn pop-font nk:pop-font popup-begin nk:popup-begin -Builtin popup-close nk:popup-close popup-end nk:popup-end popup-scroll-ofs nk:popup-scroll-ofs popup-scroll-ofs! nk:popup-scroll-ofs! -Builtin progress nk:progress prop-int nk:prop-int pt>local nk:pt>local pt>screen nk:pt>screen pts>rect nk:pts>rect -Builtin push-font nk:push-font rect-center nk:rect-center rect-intersect nk:rect-intersect rect-ofs nk:rect-ofs -Builtin rect-pad nk:rect-pad rect-shrink nk:rect-shrink rect-union nk:rect-union rect/high nk:rect/high -Builtin rect/wide nk:rect/wide rect>center nk:rect>center rect>local nk:rect>local rect>pos nk:rect>pos -Builtin rect>pts nk:rect>pts rect>screen nk:rect>screen rect>size nk:rect>size released? nk:released? -Builtin render nk:render restore nk:restore rotate nk:rotate save nk:save scale nk:scale scancode? nk:scancode? -Builtin screen-saver nk:screen-saver screen-size nk:screen-size screen-win-close nk:screen-win-close -Builtin selectable nk:selectable set nk:set set-font nk:set-font set-num-vertices nk:set-num-vertices -Builtin setpos nk:setpos setwin nk:setwin slider nk:slider slider-int nk:slider-int space nk:space -Builtin spacing nk:spacing stroke-arc nk:stroke-arc stroke-circle nk:stroke-circle stroke-curve nk:stroke-curve -Builtin stroke-line nk:stroke-line stroke-polygon nk:stroke-polygon stroke-polyline nk:stroke-polyline -Builtin stroke-rect nk:stroke-rect stroke-tri nk:stroke-tri style-from-table nk:style-from-table sw-gl nk:sw-gl -Builtin text? nk:text? tooltip nk:tooltip translate nk:translate tree-pop nk:tree-pop tree-state-push nk:tree-state-push -Builtin use-style nk:use-style vsync nk:vsync widget nk:widget widget-bounds nk:widget-bounds widget-fitting nk:widget-fitting -Builtin widget-high nk:widget-high widget-hovered? nk:widget-hovered? widget-mouse-click-down? nk:widget-mouse-click-down? -Builtin widget-mouse-clicked? nk:widget-mouse-clicked? widget-pos nk:widget-pos widget-size nk:widget-size -Builtin widget-wide nk:widget-wide win nk:win win-bounds nk:win-bounds win-bounds! nk:win-bounds! win-close nk:win-close -Builtin win-closed? nk:win-closed? win-collapse nk:win-collapse win-collapsed? nk:win-collapsed? win-content-bounds nk:win-content-bounds +Builtin line-rel nk:line-rel line-to nk:line-to list-begin nk:list-begin list-end nk:list-end list-new nk:list-new +Builtin list-range nk:list-range m! nk:m! m@ nk:m@ make-style nk:make-style max-vertex-element nk:max-vertex-element +Builtin maximize nk:maximize measure nk:measure measure-font nk:measure-font menu-begin nk:menu-begin +Builtin menu-close nk:menu-close menu-end nk:menu-end menu-item-image nk:menu-item-image menu-item-label nk:menu-item-label +Builtin menu-item-symbol nk:menu-item-symbol menubar-begin nk:menubar-begin menubar-end nk:menubar-end +Builtin minimize nk:minimize mouse-pos nk:mouse-pos move-back nk:move-back move-rel nk:move-rel move-to nk:move-to +Builtin msg nk:msg msgdlg nk:msgdlg ontop nk:ontop option nk:option pen-color nk:pen-color pen-width nk:pen-width +Builtin plot nk:plot plot-fn nk:plot-fn pop-font nk:pop-font popup-begin nk:popup-begin popup-close nk:popup-close +Builtin popup-end nk:popup-end popup-scroll-ofs nk:popup-scroll-ofs popup-scroll-ofs! nk:popup-scroll-ofs! +Builtin progress nk:progress prop-int nk:prop-int pt-in? nk:pt-in? pt-open nk:pt-open pt>local nk:pt>local +Builtin pt>rect nk:pt>rect pt>screen nk:pt>screen pt>x nk:pt>x pts>rect nk:pts>rect push-font nk:push-font +Builtin raise nk:raise rect! nk:rect! rect-center nk:rect-center rect-intersect nk:rect-intersect rect-ofs nk:rect-ofs +Builtin rect-open nk:rect-open rect-pad nk:rect-pad rect-rel nk:rect-rel rect-shrink nk:rect-shrink +Builtin rect-to nk:rect-to rect-union nk:rect-union rect/high nk:rect/high rect/wide nk:rect/wide rect= nk:rect= +Builtin rect>local nk:rect>local rect>pos nk:rect>pos rect>pts nk:rect>pts rect>pts4 nk:rect>pts4 rect>screen nk:rect>screen +Builtin rect>size nk:rect>size rect>x nk:rect>x rect@ nk:rect@ released? nk:released? render nk:render +Builtin render-timed nk:render-timed restore nk:restore rotate nk:rotate rotate-rel nk:rotate-rel save nk:save +Builtin scale nk:scale scancode? nk:scancode? screen-saver nk:screen-saver screen-size nk:screen-size +Builtin screen-win-close nk:screen-win-close selectable nk:selectable set nk:set set-font nk:set-font +Builtin set-num-vertices nk:set-num-vertices set-radius nk:set-radius setpos nk:setpos setwin nk:setwin +Builtin show nk:show slider nk:slider slider-int nk:slider-int space nk:space spacing nk:spacing stroke-arc nk:stroke-arc +Builtin stroke-circle nk:stroke-circle stroke-curve nk:stroke-curve stroke-line nk:stroke-line stroke-polygon nk:stroke-polygon +Builtin stroke-polyline nk:stroke-polyline stroke-rect nk:stroke-rect stroke-tri nk:stroke-tri style-from-table nk:style-from-table +Builtin swipe nk:swipe swipe-dir-threshold nk:swipe-dir-threshold swipe-threshold nk:swipe-threshold +Builtin text nk:text text-align nk:text-align text-font nk:text-font text-pad nk:text-pad text? nk:text? +Builtin timer-delay nk:timer-delay timer? nk:timer? tooltip nk:tooltip translate nk:translate tree-pop nk:tree-pop +Builtin tree-state-push nk:tree-state-push use-style nk:use-style vsync nk:vsync widget nk:widget widget-bounds nk:widget-bounds +Builtin widget-disable nk:widget-disable widget-fitting nk:widget-fitting widget-high nk:widget-high +Builtin widget-hovered? nk:widget-hovered? widget-mouse-click-down? nk:widget-mouse-click-down? widget-mouse-clicked? nk:widget-mouse-clicked? +Builtin widget-pos nk:widget-pos widget-size nk:widget-size widget-size nk:widget-size widget-wide nk:widget-wide +Builtin win nk:win win-bounds nk:win-bounds win-bounds! nk:win-bounds! win-close nk:win-close win-closed? nk:win-closed? +Builtin win-collapse nk:win-collapse win-collapsed? nk:win-collapsed? win-content-bounds nk:win-content-bounds Builtin win-focus nk:win-focus win-focused? nk:win-focused? win-hidden? nk:win-hidden? win-high nk:win-high Builtin win-hovered? nk:win-hovered? win-pos nk:win-pos win-scroll-ofs nk:win-scroll-ofs win-scroll-ofs! nk:win-scroll-ofs! -Builtin win-show nk:win-show win-size nk:win-size win-wide nk:win-wide win? nk:win? MAX ns:MAX ! o:! -Builtin + o:+ +? o:+? ??? o:??? @ o:@ class o:class exec o:exec isa o:isa method o:method mutate o:mutate -Builtin new o:new super o:super devname os:devname env os:env lang os:lang mem-arenas os:mem-arenas -Builtin notify os:notify region os:region cast ptr:cast len ptr:len null? ptr:null? pack ptr:pack unpack ptr:unpack -Builtin unpack_orig ptr:unpack_orig publish pubsub:publish qsize pubsub:qsize subscribe pubsub:subscribe -Builtin + q:+ clear q:clear len q:len new q:new notify q:notify overwrite q:overwrite peek q:peek pick q:pick -Builtin pop q:pop push q:push remove q:remove shift q:shift size q:size slide q:slide throwing q:throwing -Builtin wait q:wait ++match r:++match +/ r:+/ +match r:+match / r:/ @ r:@ len r:len match r:match new r:new -Builtin rx r:rx str r:str * rat:* + rat:+ - rat:- / rat:/ >n rat:>n >s rat:>s new rat:new proper rat:proper -Builtin ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts <+ s:<+ = s:= =ic s:=ic >base64 s:>base64 -Builtin >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> clear s:clear cmp s:cmp cmpi s:cmpi compress s:compress -Builtin days! s:days! dist s:dist each s:each each! s:each! eachline s:eachline escape s:escape expand s:expand -Builtin fill s:fill fmt s:fmt fold s:fold gershayim s:gershayim globmatch s:globmatch hexupr s:hexupr -Builtin insert s:insert intl s:intl intl! s:intl! lang s:lang lc s:lc lc? s:lc? len s:len lsub s:lsub -Builtin ltrim s:ltrim map s:map months! s:months! new s:new norm s:norm reduce s:reduce repinsert s:repinsert -Builtin replace s:replace replace! s:replace! rev s:rev rsearch s:rsearch rsub s:rsub rtrim s:rtrim -Builtin script? s:script? search s:search size s:size slice s:slice soundex s:soundex strfmap s:strfmap -Builtin strfmt s:strfmt text-wrap s:text-wrap trim s:trim tsub s:tsub uc s:uc uc? s:uc? ucs2> s:ucs2> -Builtin utf8? s:utf8? zt s:zt close sio:close enum sio:enum open sio:open opts! sio:opts! opts@ sio:opts@ -Builtin read sio:read write sio:write @ slv:@ auto slv:auto build slv:build constraint slv:constraint +Builtin win-show nk:win-show win-size nk:win-size win-wide nk:win-wide win? nk:win? x>pt nk:x>pt x>rect nk:x>rect +Builtin MAX ns:MAX ! o:! + o:+ +? o:+? ??? o:??? @ o:@ class o:class exec o:exec isa o:isa method o:method +Builtin mutate o:mutate new o:new super o:super chroot os:chroot devname os:devname docker? os:docker? +Builtin env os:env lang os:lang locales os:locales notify os:notify power-state os:power-state region os:region +Builtin waitpid os:waitpid bezier pdf:bezier bezierq pdf:bezierq circle pdf:circle color pdf:color +Builtin ellipse pdf:ellipse font pdf:font img pdf:img line pdf:line new pdf:new page pdf:page page-size pdf:page-size +Builtin rect pdf:rect save pdf:save size pdf:size text pdf:text text-rotate pdf:text-rotate text-size pdf:text-size +Builtin text-width pdf:text-width text-wrap pdf:text-wrap text-wrap-rotate pdf:text-wrap-rotate cast ptr:cast +Builtin len ptr:len null? ptr:null? pack ptr:pack unpack ptr:unpack unpack_orig ptr:unpack_orig publish pubsub:publish +Builtin qsize pubsub:qsize subscribe pubsub:subscribe + q:+ clear q:clear len q:len new q:new notify q:notify +Builtin overwrite q:overwrite peek q:peek pick q:pick pop q:pop push q:push remove q:remove shift q:shift +Builtin size q:size slide q:slide throwing q:throwing wait q:wait ++match r:++match +/ r:+/ +match r:+match +Builtin / r:/ @ r:@ len r:len match r:match new r:new rx r:rx str r:str * rat:* + rat:+ - rat:- / rat:/ +Builtin >n rat:>n >s rat:>s new rat:new proper rat:proper ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts +Builtin <+ s:<+ <> s:<> = s:= =ic s:=ic >base64 s:>base64 >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> +Builtin clear s:clear cmp s:cmp cmpi s:cmpi compress s:compress count-match s:count-match days! s:days! +Builtin dist s:dist each s:each each! s:each! eachline s:eachline escape s:escape expand s:expand fill s:fill +Builtin fold s:fold globmatch s:globmatch hexupr s:hexupr insert s:insert intl s:intl intl! s:intl! +Builtin lang s:lang lc s:lc lc? s:lc? len s:len lsub s:lsub ltrim s:ltrim map s:map months! s:months! +Builtin n> s:n> new s:new norm s:norm reduce s:reduce repinsert s:repinsert replace s:replace replace! s:replace! +Builtin rev s:rev rsearch s:rsearch rsub s:rsub rtrim s:rtrim scan-match s:scan-match script? s:script? +Builtin search s:search size s:size slice s:slice soundex s:soundex strfmap s:strfmap strfmt s:strfmt +Builtin term s:term text-wrap s:text-wrap tr s:tr translate s:translate trim s:trim tsub s:tsub uc s:uc +Builtin uc? s:uc? ucs2> s:ucs2> utf8? s:utf8? zt s:zt close sio:close enum sio:enum open sio:open opts! sio:opts! +Builtin opts@ sio:opts@ read sio:read write sio:write @ slv:@ auto slv:auto build slv:build constraint slv:constraint Builtin dump slv:dump edit slv:edit named-variable slv:named-variable new slv:new relation slv:relation Builtin reset slv:reset suggest slv:suggest term slv:term update slv:update v[] slv:v[] variable slv:variable Builtin v{} slv:v{} new smtp:new send smtp:send apply-filter snd:apply-filter devices? snd:devices? -Builtin end-record snd:end-record filter snd:filter formats? snd:formats? freq snd:freq gain snd:gain -Builtin gain? snd:gain? init snd:init len snd:len loop snd:loop loop? snd:loop? mix snd:mix new snd:new -Builtin pause snd:pause play snd:play played snd:played rate snd:rate ready? snd:ready? record snd:record -Builtin resume snd:resume seek snd:seek stop snd:stop stopall snd:stopall volume snd:volume volume? snd:volume? -Builtin + st:+ . st:. clear st:clear len st:len ndrop st:ndrop new st:new op! st:op! peek st:peek pick st:pick -Builtin pop st:pop push st:push roll st:roll shift st:shift size st:size slide st:slide swap st:swap -Builtin throwing st:throwing >buf struct:>buf arr> struct:arr> buf struct:buf buf> struct:buf> byte struct:byte -Builtin double struct:double field! struct:field! field@ struct:field@ float struct:float ignore struct:ignore -Builtin int struct:int long struct:long struct; struct:struct; word struct:word ! t:! @ t:@ by-name t:by-name -Builtin cor t:cor cor-drop t:cor-drop curtask t:curtask def-queue t:def-queue def-stack t:def-stack -Builtin done? t:done? err! t:err! err? t:err? errno? t:errno? getq t:getq handler t:handler handler@ t:handler@ +Builtin end-record snd:end-record filter snd:filter freq snd:freq gain snd:gain gain? snd:gain? init snd:init +Builtin len snd:len loop snd:loop loop? snd:loop? mix snd:mix new snd:new pause snd:pause play snd:play +Builtin played snd:played rate snd:rate ready? snd:ready? record snd:record resume snd:resume seek snd:seek +Builtin stop snd:stop stopall snd:stopall volume snd:volume volume? snd:volume? + st:+ . st:. clear st:clear +Builtin len st:len ndrop st:ndrop new st:new op! st:op! peek st:peek pick st:pick pop st:pop push st:push +Builtin roll st:roll shift st:shift size st:size slide st:slide swap st:swap throwing st:throwing >buf struct:>buf +Builtin arr> struct:arr> buf struct:buf buf> struct:buf> byte struct:byte double struct:double field! struct:field! +Builtin field@ struct:field@ float struct:float ignore struct:ignore int struct:int long struct:long +Builtin struct; struct:struct; word struct:word ! t:! @ t:@ by-name t:by-name cor t:cor cor-drop t:cor-drop +Builtin curtask t:curtask def-queue t:def-queue def-stack t:def-stack done? t:done? dtor t:dtor err! t:err! +Builtin err? t:err? errno? t:errno? extra t:extra getq t:getq handler t:handler handler@ t:handler@ Builtin kill t:kill list t:list main t:main max-exceptions t:max-exceptions name! t:name! name@ t:name@ -Builtin notify t:notify parent t:parent pop t:pop priority t:priority push t:push q-notify t:q-notify +Builtin notify t:notify parent t:parent pop t:pop priority t:priority push t:push push! t:push! q-notify t:q-notify Builtin q-wait t:q-wait qlen t:qlen result t:result set-affinity t:set-affinity setq t:setq start t:start -Builtin task t:task task-n t:task-n task-stop t:task-stop wait t:wait yield t:yield yield! t:yield! +Builtin task t:task task-n t:task-n task-stop t:task-stop ticks t:ticks wait t:wait yield t:yield yield! t:yield! Builtin add tree:add binary tree:binary bk tree:bk btree tree:btree cmp! tree:cmp! data tree:data del tree:del Builtin find tree:find iter tree:iter next tree:next nodes tree:nodes parent tree:parent parse tree:parse Builtin prev tree:prev root tree:root search tree:search trie tree:trie ! w:! (is) w:(is) @ w:@ alias: w:alias: Builtin cb w:cb deprecate w:deprecate dlcall w:dlcall dlopen w:dlopen dlsym w:dlsym exec w:exec exec? w:exec? -Builtin ffifail w:ffifail find w:find forget w:forget is w:is name w:name undo w:undo >s xml:>s >txt xml:>txt -Builtin md-init xml:md-init md-parse xml:md-parse parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream +Builtin ffifail w:ffifail find w:find forget w:forget is w:is name w:name undo w:undo close ws:close +Builtin decode ws:decode encode ws:encode encode-nomask ws:encode-nomask gen-accept-header ws:gen-accept-header +Builtin gen-accept-key ws:gen-accept-key opcodes ws:opcodes open ws:open >s xml:>s >txt xml:>txt md-init xml:md-init +Builtin md-parse xml:md-parse parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream Builtin getmsg[] zmq:getmsg[] sendmsg[] zmq:sendmsg[] + " numbers syn keyword eighthMath decimal hex base@ base! syn match eighthInteger '\<-\=[0-9.]*[0-9.]\+\>' @@ -349,6 +391,11 @@ syn match eighthInteger '\<\x*\d\x*\>' " *2* --- this order! syn match eighthInteger '\<%[0-1]*[0-1]\+\>' syn match eighthInteger "\<'.\>" +syn include @SQL syntax/sql.vim +syn region eightSQL matchgroup=Define start=/\<SQL\[\s/ end=/\<]\>/ contains=@SQL keepend +syn region eightSQL matchgroup=Define start=/\<SQL{\s/ end=/\<}\>/ contains=@SQL keepend +syn region eightSQL matchgroup=Define start=/\<SQL!\s/ end=/\<!\>/ contains=@SQL keepend + " Strings syn region eighthString start=+\.\?\"+ skip=+"+ end=+$+ syn keyword jsonNull null @@ -356,49 +403,57 @@ syn keyword jsonBool /\(true\|false\)/ syn region eighthString start=/\<"/ end=/"\>/ syn match jsonObjEntry /"\"[^"]\+\"\ze\s*:/ -" Include files -syn region eighthComment start="\zs\\" end="$" contains=eighthTodo +syn region eighthNeeds start=+needs\[+ end=+]+ matchgroup=eighthNeeds2 transparent +syn match eighthNeeds2 /\<needs\[/ +syn match eighthNeeds2 /]\>/ -" Define the default highlighting. -if !exists("did_eighth_syntax_inits") - let did_eighth_syntax_inits=1 +syn match eighthBuiltin /m:\[]!/ +syn match eighthBuiltin /v:\[]/ +syn match eighthBuiltin /db:bind-exec\[]/ +syn match eighthBuiltin /db:exec\[]/ +syn match eighthBuiltin /db:col\[]/ - " The default methods for highlighting. Can be overridden later. - hi def link eighthTodo Todo - hi def link eighthOperators Operator - hi def link eighthMath Number - hi def link eighthInteger Number - hi def link eighthStack Special - hi def link eighthFStack Special - hi def link eighthSP Special - hi def link eighthColonDef Define - hi def link eighthColonName Operator - hi def link eighthEndOfColonDef Define - hi def link eighthDefine Define - hi def link eighthDebug Debug - hi def link eighthCharOps Character - hi def link eighthConversion String - hi def link eighthForth Statement - hi def link eighthVocs Statement - hi def link eighthString String - hi def link eighthComment Comment - hi def link eighthClassDef Define - hi def link eighthEndOfClassDef Define - hi def link eighthObjectDef Define - hi def link eighthEndOfObjectDef Define - hi def link eighthInclude Include - hi def link eighthBuiltin Define - hi def link eighthClasses Define - hi def link eighthClassWord Keyword - hi def link jsonObject Delimiter - hi def link jsonObjEntry Label - hi def link jsonArray Special - hi def link jsonNull Function - hi def link jsonBool Boolean -endif +" TODO +syn region eighthComment start="\zs\\" end="$" contains=eighthTodo + +" The default methods for highlighting. Can be overriden later. +hi def link eighthTodo Todo +hi def link eighthNeeds2 Include +hi def link eighthNeeds Error +hi def link eighthOperators Operator +hi def link eighthMath Number +hi def link eighthInteger Number +hi def link eighthStack Special +hi def link eighthFStack Special +hi def link eighthFname Operator +hi def link eighthSP Special +hi def link eighthColonDef Define +hi def link eighthColonName Operator +hi def link eighthEndOfColonDef Define +hi def link eighthDefine Define +hi def link eighthDebug Debug +hi def link eighthCharOps Character +hi def link eighthConversion String +hi def link eighthForth Statement +hi def link eighthVocs Statement +hi def link eighthString String +hi def link eighthComment Comment +hi def link eighthClassDef Define +hi def link eighthEndOfClassDef Define +hi def link eighthObjectDef Define +hi def link eighthEndOfObjectDef Define +hi def link eighthInclude Include +hi def link eighthBuiltin Define +hi def link eighthClasses Define +hi def link eighthClassWord Keyword +hi def link jsonObject Delimiter +hi def link jsonObjEntry Label +hi def link jsonArray Special +hi def link jsonNull Function +hi def link jsonBool Boolean let b:current_syntax = "8th" let &cpo = s:cpo_save unlet s:cpo_save -" vim: ft=vim:ts=8:sw=4:nocindent:smartindent: +" vim: ft=vim ts=4 sw=4 nocin:si diff --git a/runtime/syntax/amiga.vim b/runtime/syntax/amiga.vim index 5a664c4f60..9402196482 100644 --- a/runtime/syntax/amiga.vim +++ b/runtime/syntax/amiga.vim @@ -1,9 +1,10 @@ " Vim syntax file " Language: AmigaDos -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Aug 31, 2016 " Version: 10 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA " quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/ant.vim b/runtime/syntax/ant.vim index 6696f96eb1..b0231236dd 100644 --- a/runtime/syntax/ant.vim +++ b/runtime/syntax/ant.vim @@ -1,9 +1,9 @@ " Vim syntax file -" Language: ANT build file (xml) -" Maintainer: Johannes Zellner <johannes@zellner.org> -" Last Change: Tue Apr 27 13:05:59 CEST 2004 -" Filenames: build.xml -" $Id: ant.vim,v 1.1 2004/06/13 18:13:18 vimboss Exp $ +" Language: ANT build file (xml) +" Maintainer: Doug Kearns <dougkearns@gmail.com> +" Previous Maintainer: Johannes Zellner <johannes@zellner.org> +" Last Change: 2024 Jan 27 +" Filenames: build.xml " Quit when a syntax file was already loaded if exists("b:current_syntax") @@ -44,48 +44,48 @@ call AntSyntaxScript('jpython', 'python.vim') syn cluster xmlTagHook add=antElement -syn keyword antElement display WsdlToDotnet addfiles and ant antcall antstructure apply archives arg argument -syn keyword antElement display assertions attrib attribute available basename bcc blgenclient bootclasspath -syn keyword antElement display borland bottom buildnumber buildpath buildpathelement bunzip2 bzip2 cab -syn keyword antElement display catalogpath cc cccheckin cccheckout cclock ccmcheckin ccmcheckintask ccmcheckout -syn keyword antElement display ccmcreatetask ccmkattr ccmkbl ccmkdir ccmkelem ccmklabel ccmklbtype -syn keyword antElement display ccmreconfigure ccrmtype ccuncheckout ccunlock ccupdate checksum chgrp chmod -syn keyword antElement display chown classconstants classes classfileset classpath commandline comment -syn keyword antElement display compilerarg compilerclasspath concat concatfilter condition copy copydir -syn keyword antElement display copyfile coveragepath csc custom cvs cvschangelog cvspass cvstagdiff cvsversion -syn keyword antElement display daemons date defaultexcludes define delete deletecharacters deltree depend -syn keyword antElement display depends dependset depth description different dirname dirset disable dname -syn keyword antElement display doclet doctitle dtd ear echo echoproperties ejbjar element enable entity entry -syn keyword antElement display env equals escapeunicode exclude excludepackage excludesfile exec execon -syn keyword antElement display existing expandproperties extdirs extension extensionSet extensionset factory -syn keyword antElement display fail filelist filename filepath fileset filesmatch filetokenizer filter -syn keyword antElement display filterchain filterreader filters filterset filtersfile fixcrlf footer format -syn keyword antElement display from ftp generic genkey get gjdoc grant group gunzip gzip header headfilter http -syn keyword antElement display ignoreblank ilasm ildasm import importtypelib include includesfile input iplanet -syn keyword antElement display iplanet-ejbc isfalse isreference isset istrue jar jarlib-available -syn keyword antElement display jarlib-manifest jarlib-resolve java javac javacc javadoc javadoc2 jboss jdepend -syn keyword antElement display jjdoc jjtree jlink jonas jpcoverage jpcovmerge jpcovreport jsharpc jspc -syn keyword antElement display junitreport jvmarg lib libfileset linetokenizer link loadfile loadproperties -syn keyword antElement display location macrodef mail majority manifest map mapper marker mergefiles message -syn keyword antElement display metainf method mimemail mkdir mmetrics modified move mparse none not options or -syn keyword antElement display os outputproperty package packageset parallel param patch path pathconvert -syn keyword antElement display pathelement patternset permissions prefixlines present presetdef project -syn keyword antElement display property propertyfile propertyref propertyset pvcs pvcsproject record reference -syn keyword antElement display regexp rename renameext replace replacefilter replaceregex replaceregexp -syn keyword antElement display replacestring replacetoken replacetokens replacevalue replyto report resource -syn keyword antElement display revoke rmic root rootfileset rpm scp section selector sequential serverdeploy -syn keyword antElement display setproxy signjar size sleep socket soscheckin soscheckout sosget soslabel source -syn keyword antElement display sourcepath sql src srcfile srcfilelist srcfiles srcfileset sshexec stcheckin -syn keyword antElement display stcheckout stlabel stlist stringtokenizer stripjavacomments striplinebreaks -syn keyword antElement display striplinecomments style subant substitution support symlink sync sysproperty -syn keyword antElement display syspropertyset tabstospaces tag taglet tailfilter tar tarfileset target -syn keyword antElement display targetfile targetfilelist targetfileset taskdef tempfile test testlet text title -syn keyword antElement display to token tokenfilter touch transaction translate triggers trim tstamp type -syn keyword antElement display typedef unjar untar unwar unzip uptodate url user vbc vssadd vsscheckin -syn keyword antElement display vsscheckout vsscp vsscreate vssget vsshistory vsslabel waitfor war wasclasspath -syn keyword antElement display webapp webinf weblogic weblogictoplink websphere whichresource wlclasspath -syn keyword antElement display wljspc wsdltodotnet xmlcatalog xmlproperty xmlvalidate xslt zip zipfileset -syn keyword antElement display zipgroupfileset +syn keyword antElement WsdlToDotnet addfiles and ant antcall antstructure apply archives arg argument +syn keyword antElement assertions attrib attribute available basename bcc blgenclient bootclasspath +syn keyword antElement borland bottom buildnumber buildpath buildpathelement bunzip2 bzip2 cab +syn keyword antElement catalogpath cc cccheckin cccheckout cclock ccmcheckin ccmcheckintask ccmcheckout +syn keyword antElement ccmcreatetask ccmkattr ccmkbl ccmkdir ccmkelem ccmklabel ccmklbtype +syn keyword antElement ccmreconfigure ccrmtype ccuncheckout ccunlock ccupdate checksum chgrp chmod +syn keyword antElement chown classconstants classes classfileset classpath commandline comment +syn keyword antElement compilerarg compilerclasspath concat concatfilter condition copy copydir +syn keyword antElement copyfile coveragepath csc custom cvs cvschangelog cvspass cvstagdiff cvsversion +syn keyword antElement daemons date defaultexcludes define delete deletecharacters deltree depend +syn keyword antElement depends dependset depth description different dirname dirset disable dname +syn keyword antElement doclet doctitle dtd ear echo echoproperties ejbjar element enable entity entry +syn keyword antElement env equals escapeunicode exclude excludepackage excludesfile exec execon +syn keyword antElement existing expandproperties extdirs extension extensionSet extensionset factory +syn keyword antElement fail filelist filename filepath fileset filesmatch filetokenizer filter +syn keyword antElement filterchain filterreader filters filterset filtersfile fixcrlf footer format +syn keyword antElement from ftp generic genkey get gjdoc grant group gunzip gzip header headfilter http +syn keyword antElement ignoreblank ilasm ildasm import importtypelib include includesfile input iplanet +syn keyword antElement iplanet-ejbc isfalse isreference isset istrue jar jarlib-available +syn keyword antElement jarlib-manifest jarlib-resolve java javac javacc javadoc javadoc2 jboss jdepend +syn keyword antElement jjdoc jjtree jlink jonas jpcoverage jpcovmerge jpcovreport jsharpc jspc +syn keyword antElement junitreport jvmarg lib libfileset linetokenizer link loadfile loadproperties +syn keyword antElement location macrodef mail majority manifest map mapper marker mergefiles message +syn keyword antElement metainf method mimemail mkdir mmetrics modified move mparse none not options or +syn keyword antElement os outputproperty package packageset parallel param patch path pathconvert +syn keyword antElement pathelement patternset permissions prefixlines present presetdef project +syn keyword antElement property propertyfile propertyref propertyset pvcs pvcsproject record reference +syn keyword antElement regexp rename renameext replace replacefilter replaceregex replaceregexp +syn keyword antElement replacestring replacetoken replacetokens replacevalue replyto report resource +syn keyword antElement revoke rmic root rootfileset rpm scp section selector sequential serverdeploy +syn keyword antElement setproxy signjar size sleep socket soscheckin soscheckout sosget soslabel source +syn keyword antElement sourcepath sql src srcfile srcfilelist srcfiles srcfileset sshexec stcheckin +syn keyword antElement stcheckout stlabel stlist stringtokenizer stripjavacomments striplinebreaks +syn keyword antElement striplinecomments style subant substitution support symlink sync sysproperty +syn keyword antElement syspropertyset tabstospaces tag taglet tailfilter tar tarfileset target +syn keyword antElement targetfile targetfilelist targetfileset taskdef tempfile test testlet text title +syn keyword antElement to token tokenfilter touch transaction translate triggers trim tstamp type +syn keyword antElement typedef unjar untar unwar unzip uptodate url user vbc vssadd vsscheckin +syn keyword antElement vsscheckout vsscp vsscreate vssget vsshistory vsslabel waitfor war wasclasspath +syn keyword antElement webapp webinf weblogic weblogictoplink websphere whichresource wlclasspath +syn keyword antElement wljspc wsdltodotnet xmlcatalog xmlproperty xmlvalidate xslt zip zipfileset +syn keyword antElement zipgroupfileset hi def link antElement Statement diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim index 5ed8fdc847..30db9438d0 100644 --- a/runtime/syntax/c.vim +++ b/runtime/syntax/c.vim @@ -252,7 +252,7 @@ if exists("c_gnu") syn keyword cOperator typeof __typeof__ syn keyword cOperator __real__ __imag__ syn keyword cStorageClass __attribute__ __const__ __extension__ - syn keyword cStorageClass inline __inline__ + syn keyword cStorageClass inline __inline __inline__ syn keyword cStorageClass __restrict__ __volatile__ __noreturn__ endif syn keyword cType int long short char void @@ -444,6 +444,14 @@ syn match cUserLabel display "\I\i*" contained syn match cBitField display "^\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType syn match cBitField display ";\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType +if exists("c_functions") + syn match cFunction "\<\h\w*\ze\_s*(" + endif + +if exists("c_function_pointers") + syn match cFunctionPointer "\%((\s*\*\s*\)\@<=\h\w*\ze\s*)\_s*(.*)" +endif + if exists("c_minlines") let b:c_minlines = c_minlines else @@ -513,6 +521,8 @@ hi def link cCppOutSkip cCppOutIf2 hi def link cCppInElse2 cCppOutIf2 hi def link cCppOutIf2 cCppOut hi def link cCppOut Comment +hi def link cFunction Function +hi def link cFunctionPointer Function let b:current_syntax = "c" diff --git a/runtime/syntax/chuck.vim b/runtime/syntax/chuck.vim new file mode 100644 index 0000000000..6fcf40ca8b --- /dev/null +++ b/runtime/syntax/chuck.vim @@ -0,0 +1,187 @@ +" Vim syntax file +" Language: ChucK +" Maintainer: Andrea Callea +" URL: https://github.com/gacallea/chuck.vim +" Last Change: 2024 Jan 21 by Andrea Callea + +" Sources used for this syntax +" https://chuck.cs.princeton.edu/doc/language/ +" https://chuck.cs.princeton.edu/doc/reference/ + +" HISTORY: +" 2024 Jan 21 - Initial revision + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" https://chuck.cs.princeton.edu/doc/language/type.html +syn keyword chuckPrimitiveType int float time dur void vec3 vec4 +syn keyword chuckComplexType complex polar +syn keyword chuckReferenceType Object Event UGen array string +syn keyword chuckBoolean true false maybe +syn keyword chuckBoolean null NULL + +" https://chuck.cs.princeton.edu/doc/language/oper.html +syn match chuckOperator "=>" +syn match chuckOperator "@=>" + +syn match chuckOperator "=^" + +syn match chuckOperator "+" +syn match chuckOperator "-" +syn match chuckOperator "*" +syn match chuckOperator "/" +syn match chuckOperator "%" +syn match chuckOperator "!" +syn match chuckOperator "&" +syn match chuckOperator "|" +syn match chuckOperator "\^" + +syn match chuckOperator "+=>" +syn match chuckOperator "-=>" +syn match chuckOperator "*=>" +syn match chuckOperator "/=>" +syn match chuckOperator "%=>" +syn match chuckOperator "!=>" +syn match chuckOperator "&=>" +syn match chuckOperator "|=>" +syn match chuckOperator "\^=>" + +syn match chuckOperator "&&" +syn match chuckOperator "||" +syn match chuckOperator "==" +syn match chuckOperator "!=" +syn match chuckOperator ">" +syn match chuckOperator ">=" +syn match chuckOperator "<" +syn match chuckOperator "<=" + +syn match chuckOperator ">>" +syn match chuckOperator "<<" + +syn match chuckOperator "++" +syn match chuckOperator "--" +syn match chuckOperator "<<<" +syn match chuckOperator ">>>" + +syn keyword chuckOperator new + +" https://chuck.cs.princeton.edu/doc/language/ctrl.html +syn keyword chuckConditional if else +syn keyword chuckRepeat while do until for each + +" https://chuck.cs.princeton.edu/doc/language/time.html +syn keyword chuckTimeAndDuration samp ms second minute hour day week +syn keyword chuckTimeAndDuration now later + +" these may need some additional keywords I missed, for a future revision +syn keyword chuckKeyword dac adc +syn keyword chuckKeyword fun function +syn keyword chuckKeyword return +syn keyword chuckKeyword const +syn match chuckKeyword "@" +syn keyword chuckKeyword pi +syn keyword chuckKeyword me +syn keyword chuckKeyword repeat break continue +syn keyword chuckKeyword class extends public private static pure this +syn keyword chuckKeyword spork +syn keyword chuckKeyword cherr chout + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckBaseClasses Shred Math Machine Std + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckBasicUGen Gain Impulse Step SndBuf SndBuf2 +syn keyword chuckBasicUGen ADSR Envelope Delay DelayL DelayA Echo +syn keyword chuckBasicUGen Noise CNoise Osc SinOsc TriOsc SawOsc PulseOsc SqrOsc +syn keyword chuckBasicUGen Phasor HalfRect FullRect +syn keyword chuckBasicUGen Chugraph Chugen UGen_Multi UGen_Stereo Mix2 Pan2 + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckFilterUGen FilterBasic LPF HPF BPF BRF BiQuad ResonZ +syn keyword chuckFilterUGen OnePole OneZero TwoPole TwoZero PoleZero + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckSTKUGen JCRev NRev PRCRev +syn keyword chuckSTKUGen Chorus Modulate PitShift SubNoise +syn keyword chuckSTKUGen BLT Blit BlitSaw BlitSquare FilterStk +syn keyword chuckSTKUGen WvIn WaveLoop WvOut WvOut2 StkInstrument +syn keyword chuckSTKUGen BandedWG BlowBotl BlowHole +syn keyword chuckSTKUGen Bowed Brass Clarinet Flute Mandolin +syn keyword chuckSTKUGen ModalBar Moog Saxofony Shakers Sitar StifKarp +syn keyword chuckSTKUGen VoicForm KrstlChr FM BeeThree FMVoices +syn keyword chuckSTKUGen HevyMetl HnkyTonk FrencHrn PercFlut Rhodey TubeBell Wurley + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckAdvancedUGen LiSa LiSa2 LiSa6 LiSa8 LiSa10 +syn keyword chuckAdvancedUGen LiSa16 GenX Gen5 Gen7 Gen9 Gen10 Gen17 +syn keyword chuckAdvancedUGen CurveTable WarpTable Dyno + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckChugin ABSaturator AmbPan3 Bitcrusher Elliptic ExpDelay ExpEnv FIR +syn keyword chuckChugin FoldbackSaturator GVerb KasFilter MagicSine Mesh2D +syn keyword chuckChugin Multicomb Pan4 Pan8 Pan16 PitchTrack PowerADSR RegEx +syn keyword chuckChugin Sigmund Spectacle WinFuncEnv WPDiodeLadder WPKorg35 + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckUnitAnalyzer UAna UAnaBlob Windowing +syn keyword chuckUnitAnalyzer FFT IFFT DCT IDCT +syn keyword chuckUnitAnalyzer Centroid Flux RMS RollOff +syn keyword chuckUnitAnalyzer Flip UnFlip XCorr +syn keyword chuckUnitAnalyzer Chroma Kurtosis MFCC SFM ZeroX AutoCorr FeatureCollector + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckChAI MLP KNN KNN2 HMM SVM Word2Vec PCA Wekinator AI + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckInputOutput IO FileIO OscIn OscOut OscMsg +syn keyword chuckInputOutput Hid HidMsg KBHit SerialIO +syn keyword chuckInputOutput MidiIn MidiOut MidiMsg MidiFileIn + +" https://chuck.cs.princeton.edu/doc/reference/ +syn keyword chuckUtilities CKDoc StringTokenizer ConsoleInput + +" https://github.com/wilsaj/chuck.vim/blob/master/syntax/chuck.vim +syn match chuckNumber /\%(\i\|\$\)\@<![-]\?\d\+/ display +syn match chuckHex /\<0[xX]\x\+[lL]\=\>/ display +syn match chuckFloat /\%(\i\|\$\)\@<![-]\?\%(\d*\.\d\+\|\d\+\.\)/ display + +" this may need fixing/improvements +syn match chuckComment "//.*$" +syn region chuckComment start="/\*" end="\*/" +syn match chuckSpecialChar contained "\\n" +syn match chuckSpecialChar contained "\\t" +syn match chuckSpecialChar contained "\\a" +syn match chuckSpecialChar contained /\\"/ +syn match chuckSpecialChar contained "\\0" +syn region chuckString start=/"/ end=/"/ display contains=chuckSpecialChar + +hi def link chuckPrimitiveType Type +hi def link chuckComplexType Type +hi def link chuckReferenceType Type +hi def link chuckBoolean Boolean +hi def link chuckOperator Operator +hi def link chuckConditional Conditional +hi def link chuckRepeat Repeat +hi def link chuckTimeAndDuration Keyword +hi def link chuckKeyword Keyword +hi def link chuckBaseClasses Special +hi def link chuckBasicUGen Structure +hi def link chuckFilterUGen Structure +hi def link chuckSTKUGen Structure +hi def link chuckAdvancedUGen Structure +hi def link chuckChugin Structure +hi def link chuckUnitAnalyzer Structure +hi def link chuckChAI Structure +hi def link chuckInputOutput Special +hi def link chuckUtilities Special +hi def link chuckNumber Number +hi def link chuckHex Number +hi def link chuckFloat Float +hi def link chuckComment Comment +hi def link chuckSpecialChar SpecialChar +hi def link chuckString String + +let b:current_syntax = "chuck" diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim index 7340ac238e..c95503beb5 100644 --- a/runtime/syntax/cmake.vim +++ b/runtime/syntax/cmake.vim @@ -1,15 +1,15 @@ " Vim syntax file " Program: CMake - Cross-Platform Makefile Generator -" Version: cmake version 3.9.20170830-ge0713 +" Version: cmake version 3.27.20230713-gdc88dd5 " Language: CMake " Author: Andy Cedilnik <andy.cedilnik@kitware.com>, " Nicholas Hutchinson <nshutchinson@gmail.com>, " Patrick Boettcher <patrick.boettcher@posteo.de> " Maintainer: Dimitri Merejkowsky <d.merej@gmail.com> " Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com> -" Last Change: 2017 Aug 30 +" Last Change: 2023 Jul 13 " -" Licence: The CMake license applies to this file. See +" License: The CMake license applies to this file. See " https://cmake.org/licensing " This implies that distribution with Vim is allowed @@ -19,335 +19,4799 @@ endif let s:keepcpo= &cpo set cpo&vim -syn region cmakeComment start="#" end="$" contains=cmakeTodo,cmakeLuaComment,@Spell -syn region cmakeLuaComment start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell +syn region cmakeBracketArgument start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell + +syn region cmakeComment start="#\(\[=*\[\)\@!" end="$" contains=cmakeTodo,@Spell +syn region cmakeBracketComment start="#\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo -syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped +syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped,@Spell -syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo +syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo,cmakeVariableValue syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo -syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeArguments,cmakeTodo +syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo,@Spell syn case match syn keyword cmakeProperty contained - \ ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ADVANCED ALIASED_TARGET ALLOW_DUPLICATE_CUSTOM_TARGETS ANDROID_ANT_ADDITIONAL_OPTIONS ANDROID_API ANDROID_API_MIN ANDROID_ARCH ANDROID_ASSETS_DIRECTORIES ANDROID_GUI ANDROID_JAR_DEPENDENCIES ANDROID_JAR_DIRECTORIES ANDROID_JAVA_SOURCE_DIR ANDROID_NATIVE_LIB_DEPENDENCIES ANDROID_NATIVE_LIB_DIRECTORIES ANDROID_PROCESS_MAX ANDROID_PROGUARD ANDROID_PROGUARD_CONFIG_PATH ANDROID_SECURE_PROPS_PATH ANDROID_SKIP_ANT_STEP ANDROID_STL_TYPE ARCHIVE_OUTPUT_DIRECTORY ARCHIVE_OUTPUT_NAME ATTACHED_FILES ATTACHED_FILES_ON_FAIL AUTOGEN_BUILD_DIR AUTOGEN_SOURCE_GROUP AUTOGEN_TARGETS_FOLDER AUTOGEN_TARGET_DEPENDS AUTOMOC AUTOMOC_DEPEND_FILTERS AUTOMOC_MACRO_NAMES AUTOMOC_MOC_OPTIONS AUTOMOC_SOURCE_GROUP AUTOMOC_TARGETS_FOLDER AUTORCC AUTORCC_OPTIONS AUTORCC_SOURCE_GROUP AUTOUIC AUTOUIC_OPTIONS AUTOUIC_SEARCH_PATHS BINARY_DIR BUILDSYSTEM_TARGETS BUILD_RPATH BUILD_WITH_INSTALL_NAME_DIR BUILD_WITH_INSTALL_RPATH BUNDLE BUNDLE_EXTENSION CACHE_VARIABLES CLEAN_NO_CUSTOM CMAKE_CONFIGURE_DEPENDS CMAKE_CXX_KNOWN_FEATURES CMAKE_C_KNOWN_FEATURES COMPATIBLE_INTERFACE_BOOL COMPATIBLE_INTERFACE_NUMBER_MAX COMPATIBLE_INTERFACE_NUMBER_MIN COMPATIBLE_INTERFACE_STRING COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_FLAGS COMPILE_OPTIONS COMPILE_PDB_NAME COMPILE_PDB_OUTPUT_DIRECTORY COST CPACK_DESKTOP_SHORTCUTS CPACK_NEVER_OVERWRITE CPACK_PERMANENT CPACK_STARTUP_SHORTCUTS CPACK_START_MENU_SHORTCUTS CPACK_WIX_ACL CROSSCOMPILING_EMULATOR CUDA_EXTENSIONS CUDA_PTX_COMPILATION CUDA_RESOLVE_DEVICE_SYMBOLS CUDA_SEPARABLE_COMPILATION CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEBUG_CONFIGURATIONS DEBUG_POSTFIX DEFINE_SYMBOL DEFINITIONS DEPENDS DEPLOYMENT_REMOTE_DIRECTORY DISABLED DISABLED_FEATURES ECLIPSE_EXTRA_NATURES ENABLED_FEATURES ENABLED_LANGUAGES ENABLE_EXPORTS ENVIRONMENT EXCLUDE_FROM_ALL EXCLUDE_FROM_DEFAULT_BUILD EXPORT_NAME EXTERNAL_OBJECT EchoString FAIL_REGULAR_EXPRESSION FIND_LIBRARY_USE_LIB32_PATHS FIND_LIBRARY_USE_LIB64_PATHS FIND_LIBRARY_USE_LIBX32_PATHS FIND_LIBRARY_USE_OPENBSD_VERSIONING FIXTURES_CLEANUP FIXTURES_REQUIRED FIXTURES_SETUP FOLDER FRAMEWORK FRAMEWORK_VERSION Fortran_FORMAT Fortran_MODULE_DIRECTORY GENERATED GENERATOR_FILE_NAME GENERATOR_IS_MULTI_CONFIG GLOBAL_DEPENDS_DEBUG_MODE GLOBAL_DEPENDS_NO_CYCLES GNUtoMS HAS_CXX HEADER_FILE_ONLY HELPSTRING IMPLICIT_DEPENDS_INCLUDE_TRANSFORM IMPORTED IMPORTED_CONFIGURATIONS IMPORTED_IMPLIB IMPORTED_LIBNAME IMPORTED_LINK_DEPENDENT_LIBRARIES IMPORTED_LINK_INTERFACE_LANGUAGES IMPORTED_LINK_INTERFACE_LIBRARIES IMPORTED_LINK_INTERFACE_MULTIPLICITY IMPORTED_LOCATION IMPORTED_NO_SONAME IMPORTED_OBJECTS IMPORTED_SONAME IMPORT_PREFIX IMPORT_SUFFIX INCLUDE_DIRECTORIES INCLUDE_REGULAR_EXPRESSION INSTALL_NAME_DIR INSTALL_RPATH INSTALL_RPATH_USE_LINK_PATH INTERFACE_AUTOUIC_OPTIONS INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_FEATURES INTERFACE_COMPILE_OPTIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_POSITION_INDEPENDENT_CODE INTERFACE_SOURCES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES INTERPROCEDURAL_OPTIMIZATION IN_TRY_COMPILE IOS_INSTALL_COMBINED JOB_POOLS JOB_POOL_COMPILE JOB_POOL_LINK KEEP_EXTENSION LABELS LANGUAGE LIBRARY_OUTPUT_DIRECTORY LIBRARY_OUTPUT_NAME LINKER_LANGUAGE LINK_DEPENDS LINK_DEPENDS_NO_SHARED LINK_DIRECTORIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_MULTIPLICITY LINK_LIBRARIES LINK_SEARCH_END_STATIC LINK_SEARCH_START_STATIC LINK_WHAT_YOU_USE LISTFILE_STACK LOCATION MACOSX_BUNDLE MACOSX_BUNDLE_INFO_PLIST MACOSX_FRAMEWORK_INFO_PLIST MACOSX_PACKAGE_LOCATION MACOSX_RPATH MACROS MANUALLY_ADDED_DEPENDENCIES MEASUREMENT MODIFIED NAME NO_SONAME NO_SYSTEM_FROM_IMPORTED OBJECT_DEPENDS OBJECT_OUTPUTS OSX_ARCHITECTURES OUTPUT_NAME PACKAGES_FOUND PACKAGES_NOT_FOUND PARENT_DIRECTORY PASS_REGULAR_EXPRESSION PDB_NAME PDB_OUTPUT_DIRECTORY POSITION_INDEPENDENT_CODE POST_INSTALL_SCRIPT PREDEFINED_TARGETS_FOLDER PREFIX PRE_INSTALL_SCRIPT PRIVATE_HEADER PROCESSORS PROJECT_LABEL PUBLIC_HEADER REPORT_UNDEFINED_PROPERTIES REQUIRED_FILES RESOURCE RESOURCE_LOCK RULE_LAUNCH_COMPILE RULE_LAUNCH_CUSTOM RULE_LAUNCH_LINK RULE_MESSAGES RUNTIME_OUTPUT_DIRECTORY RUNTIME_OUTPUT_NAME RUN_SERIAL SKIP_AUTOGEN SKIP_AUTOMOC SKIP_AUTORCC SKIP_AUTOUIC SKIP_BUILD_RPATH SKIP_RETURN_CODE SOURCES SOURCE_DIR SOVERSION STATIC_LIBRARY_FLAGS STRINGS SUBDIRECTORIES SUFFIX SYMBOLIC TARGET_ARCHIVES_MAY_BE_SHARED_LIBS TARGET_MESSAGES TARGET_SUPPORTS_SHARED_LIBS TEST_INCLUDE_FILE TEST_INCLUDE_FILES TIMEOUT TIMEOUT_AFTER_MATCH TYPE USE_FOLDERS VALUE VARIABLES VERSION VISIBILITY_INLINES_HIDDEN VS_CONFIGURATION_TYPE VS_COPY_TO_OUT_DIR VS_DEBUGGER_WORKING_DIRECTORY VS_DEPLOYMENT_CONTENT VS_DEPLOYMENT_LOCATION VS_DESKTOP_EXTENSIONS_VERSION VS_DOTNET_REFERENCES VS_DOTNET_REFERENCES_COPY_LOCAL VS_DOTNET_TARGET_FRAMEWORK_VERSION VS_GLOBAL_KEYWORD VS_GLOBAL_PROJECT_TYPES VS_GLOBAL_ROOTNAMESPACE VS_INCLUDE_IN_VSIX VS_IOT_EXTENSIONS_VERSION VS_IOT_STARTUP_TASK VS_KEYWORD VS_MOBILE_EXTENSIONS_VERSION VS_RESOURCE_GENERATOR VS_SCC_AUXPATH VS_SCC_LOCALPATH VS_SCC_PROJECTNAME VS_SCC_PROVIDER VS_SDK_REFERENCES VS_SHADER_ENTRYPOINT VS_SHADER_FLAGS VS_SHADER_MODEL VS_SHADER_TYPE VS_STARTUP_PROJECT VS_TOOL_OVERRIDE VS_USER_PROPS VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION VS_WINRT_COMPONENT VS_WINRT_EXTENSIONS VS_WINRT_REFERENCES VS_XAML_TYPE WILL_FAIL WIN32_EXECUTABLE WINDOWS_EXPORT_ALL_SYMBOLS WORKING_DIRECTORY WRAP_EXCLUDE XCODE_EMIT_EFFECTIVE_PLATFORM_NAME XCODE_EXPLICIT_FILE_TYPE XCODE_FILE_ATTRIBUTES XCODE_LAST_KNOWN_FILE_TYPE XCODE_PRODUCT_TYPE XCTEST + \ ABSTRACT + \ ADDITIONAL_CLEAN_FILES + \ ADDITIONAL_MAKE_CLEAN_FILES + \ ADVANCED + \ AIX_EXPORT_ALL_SYMBOLS + \ ALIASED_TARGET + \ ALIAS_GLOBAL + \ ALLOW_DUPLICATE_CUSTOM_TARGETS + \ ANDROID_ANT_ADDITIONAL_OPTIONS + \ ANDROID_API + \ ANDROID_API_MIN + \ ANDROID_ARCH + \ ANDROID_ASSETS_DIRECTORIES + \ ANDROID_GUI + \ ANDROID_JAR_DEPENDENCIES + \ ANDROID_JAR_DIRECTORIES + \ ANDROID_JAVA_SOURCE_DIR + \ ANDROID_NATIVE_LIB_DEPENDENCIES + \ ANDROID_NATIVE_LIB_DIRECTORIES + \ ANDROID_PROCESS_MAX + \ ANDROID_PROGUARD + \ ANDROID_PROGUARD_CONFIG_PATH + \ ANDROID_SECURE_PROPS_PATH + \ ANDROID_SKIP_ANT_STEP + \ ANDROID_STL_TYPE + \ ARCHIVE_OUTPUT_DIRECTORY + \ ARCHIVE_OUTPUT_NAME + \ ATTACHED_FILES + \ ATTACHED_FILES_ON_FAIL + \ AUTOGEN_BUILD_DIR + \ AUTOGEN_COMMAND_LINE_LENGTH_MAX + \ AUTOGEN_ORIGIN_DEPENDS + \ AUTOGEN_PARALLEL + \ AUTOGEN_SOURCE_GROUP + \ AUTOGEN_USE_SYSTEM_INCLUDE + \ AUTOGEN_TARGETS_FOLDER + \ AUTOGEN_TARGET_DEPENDS + \ AUTOGEN_USE_SYSTEM_INCLUDE + \ AUTOMOC + \ AUTOMOC_COMPILER_PREDEFINES + \ AUTOMOC_DEPEND_FILTERS + \ AUTOMOC_EXECUTABLE + \ AUTOMOC_MACRO_NAMES + \ AUTOMOC_MOC_OPTIONS + \ AUTOMOC_PATH_PREFIX + \ AUTOMOC_SOURCE_GROUP + \ AUTOMOC_TARGETS_FOLDER + \ AUTORCC + \ AUTORCC_EXECUTABLE + \ AUTORCC_OPTIONS + \ AUTORCC_SOURCE_GROUP + \ AUTOUIC + \ AUTOUIC_EXECUTABLE + \ AUTOUIC_OPTIONS + \ AUTOUIC_SEARCH_PATHS + \ AUTOUIC_SOURCE_GROUP + \ BINARY_DIR + \ BUILDSYSTEM_TARGETS + \ BUILD_RPATH + \ BUILD_RPATH_USE_ORIGIN + \ BUILD_WITH_INSTALL_NAME_DIR + \ BUILD_WITH_INSTALL_RPATH + \ BUNDLE + \ BUNDLE_EXTENSION + \ CACHE_VARIABLES + \ CLEAN_NO_CUSTOM + \ CMAKE_CONFIGURE_DEPENDS + \ CMAKE_CUDA_KNOWN_FEATURES + \ CMAKE_CXX_KNOWN_FEATURES + \ CMAKE_C_KNOWN_FEATURES + \ CMAKE_ROLE + \ COMMON_LANGUAGE_RUNTIME + \ COMPATIBLE_INTERFACE_BOOL + \ COMPATIBLE_INTERFACE_NUMBER_MAX + \ COMPATIBLE_INTERFACE_NUMBER_MIN + \ COMPATIBLE_INTERFACE_STRING + \ COMPILE_DEFINITIONS + \ COMPILE_FEATURES + \ COMPILE_FLAGS + \ COMPILE_OPTIONS + \ COMPILE_PDB_NAME + \ COMPILE_PDB_OUTPUT_DIRECTORY + \ COMPILE_WARNING_AS_ERROR + \ COST + \ CPACK_DESKTOP_SHORTCUTS + \ CPACK_NEVER_OVERWRITE + \ CPACK_PERMANENT + \ CPACK_STARTUP_SHORTCUTS + \ CPACK_START_MENU_SHORTCUTS + \ CPACK_WIX_ACL + \ CROSSCOMPILING_EMULATOR + \ CUDA_ARCHITECTURES + \ CUDA_CUBIN_COMPILATION + \ CUDA_EXTENSIONS + \ CUDA_FATBIN_COMPILATION + \ CUDA_OPTIX_COMPILATION + \ CUDA_PTX_COMPILATION + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_RUNTIME_LIBRARY + \ CUDA_SEPARABLE_COMPILATION + \ CUDA_STANDARD + \ CUDA_STANDARD_REQUIRED + \ CXX_EXTENSIONS + \ CXX_MODULE_DIRS + \ CXX_MODULE_SET + \ CXX_MODULE_SETS + \ CXX_SCAN_FOR_MODULES + \ CXX_STANDARD + \ CXX_STANDARD_REQUIRED + \ C_EXTENSIONS + \ C_STANDARD + \ C_STANDARD_REQUIRED + \ DEBUG_CONFIGURATIONS + \ DEBUG_POSTFIX + \ DEFINE_SYMBOL + \ DEFINITIONS + \ DEPENDS + \ DEPLOYMENT_ADDITIONAL_FILES + \ DEPLOYMENT_REMOTE_DIRECTORY + \ DEPRECATION + \ DISABLED + \ DISABLED_FEATURES + \ DISABLE_PRECOMPILE_HEADERS + \ DLL_NAME_WITH_SOVERSION + \ DOTNET_SDK + \ DOTNET_TARGET_FRAMEWORK + \ DOTNET_TARGET_FRAMEWORK_VERSION + \ ECLIPSE_EXTRA_CPROJECT_CONTENTS + \ ECLIPSE_EXTRA_NATURES + \ ENABLED_FEATURES + \ ENABLED_LANGUAGES + \ ENABLE_EXPORTS + \ ENVIRONMENT + \ ENVIRONMENT_MODIFICATION + \ EXCLUDE_FROM_ALL + \ EXCLUDE_FROM_DEFAULT_BUILD + \ EXPORT_COMPILE_COMMANDS + \ EXPORT_NAME + \ EXPORT_NO_SYSTEM + \ EXPORT_PROPERTIES + \ EXTERNAL_OBJECT + \ EchoString + \ FAIL_REGULAR_EXPRESSION + \ FIND_LIBRARY_USE_LIB32_PATHS + \ FIND_LIBRARY_USE_LIB64_PATHS + \ FIND_LIBRARY_USE_LIBX32_PATHS + \ FIND_LIBRARY_USE_OPENBSD_VERSIONING + \ FIXTURES_CLEANUP + \ FIXTURES_REQUIRED + \ FIXTURES_SETUP + \ FOLDER + \ FRAMEWORK + \ FRAMEWORK_VERSION + \ Fortran_BUILDING_INSTRINSIC_MODULES + \ Fortran_FORMAT + \ Fortran_MODULE_DIRECTORY + \ Fortran_PREPROCESS + \ GENERATED + \ GENERATOR_FILE_NAME + \ GENERATOR_IS_MULTI_CONFIG + \ GHS_INTEGRITY_APP + \ GHS_NO_SOURCE_GROUP_FILE + \ GLOBAL_DEPENDS_DEBUG_MODE + \ GLOBAL_DEPENDS_NO_CYCLES + \ GNUtoMS + \ HAS_CXX + \ HEADER_DIRS + \ HEADER_FILE_ONLY + \ HEADER_SET + \ HEADER_SETS + \ HELPSTRING + \ HIP_ARCHITECTURES + \ HIP_EXTENSIONS + \ HIP_STANDARD + \ HIP_STANDARD_REQUIRED + \ IMPLICIT_DEPENDS_INCLUDE_TRANSFORM + \ IMPORTED + \ IMPORTED_COMMON_LANGUAGE_RUNTIME + \ IMPORTED_CONFIGURATIONS + \ IMPORTED_GLOBAL + \ IMPORTED_IMPLIB + \ IMPORTED_LIBNAME + \ IMPORTED_LINK_DEPENDENT_LIBRARIES + \ IMPORTED_LINK_INTERFACE_LANGUAGES + \ IMPORTED_LINK_INTERFACE_LIBRARIES + \ IMPORTED_LINK_INTERFACE_MULTIPLICITY + \ IMPORTED_LOCATION + \ IMPORTED_NO_SONAME + \ IMPORTED_NO_SYSTEM + \ IMPORTED_OBJECTS + \ IMPORTED_SONAME + \ IMPORTED_TARGETS + \ IMPORT_PREFIX + \ IMPORT_SUFFIX + \ INCLUDE_DIRECTORIES + \ INCLUDE_REGULAR_EXPRESSION + \ INSTALL_NAME_DIR + \ INSTALL_REMOVE_ENVIRONMENT_RPATH + \ INSTALL_RPATH + \ INSTALL_RPATH_USE_LINK_PATH + \ INTERFACE_AUTOMOC_MACRO_NAMES + \ INTERFACE_AUTOUIC_OPTIONS + \ INTERFACE_AUTOMOC_MACRO_NAMES + \ INTERFACE_COMPILE_DEFINITIONS + \ INTERFACE_COMPILE_FEATURES + \ INTERFACE_COMPILE_OPTIONS + \ INTERFACE_CXX_MODULE_SETS + \ INTERFACE_HEADER_SETS + \ INTERFACE_HEADER_SETS_TO_VERIFY + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_LINK_DEPENDS + \ INTERFACE_LINK_DIRECTORIES + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_LINK_LIBRARIES_DIRECT + \ INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE + \ INTERFACE_LINK_OPTIONS + \ INTERFACE_POSITION_INDEPENDENT_CODE + \ INTERFACE_PRECOMPILE_HEADERS + \ INTERFACE_SOURCES + \ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES + \ INTERPROCEDURAL_OPTIMIZATION + \ IN_TRY_COMPILE + \ IOS_INSTALL_COMBINED + \ ISPC_HEADER_DIRECTORY + \ ISPC_HEADER_SUFFIX + \ ISPC_INSTRUCTION_SETS + \ JOB_POOLS + \ JOB_POOL_COMPILE + \ JOB_POOL_LINK + \ JOB_POOL_PRECOMPILE_HEADER + \ KEEP_EXTENSION + \ LABELS + \ LANGUAGE + \ LIBRARY_OUTPUT_DIRECTORY + \ LIBRARY_OUTPUT_NAME + \ LINKER_LANGUAGE + \ LINK_DEPENDS + \ LINK_DEPENDS_NO_SHARED + \ LINK_DIRECTORIES + \ LINK_FLAGS + \ LINK_INTERFACE_LIBRARIES + \ LINK_INTERFACE_MULTIPLICITY + \ LINK_LIBRARIES + \ LINK_LIBRARIES_ONLY_TARGETS + \ LINK_LIBRARY_OVERRIDE + \ LINK_OPTIONS + \ LINK_SEARCH_END_STATIC + \ LINK_SEARCH_START_STATIC + \ LINK_WHAT_YOU_USE + \ LISTFILE_STACK + \ LOCATION + \ MACHO_COMPATIBILITY_VERSION + \ MACHO_CURRENT_VERSION + \ MACOSX_BUNDLE + \ MACOSX_BUNDLE_INFO_PLIST + \ MACOSX_FRAMEWORK_INFO_PLIST + \ MACOSX_PACKAGE_LOCATION + \ MACOSX_RPATH + \ MACROS + \ MANUALLY_ADDED_DEPENDENCIES + \ MEASUREMENT + \ MODIFIED + \ MSVC_DEBUG_INFORMATION_FORMAT + \ MSVC_RUNTIME_LIBRARY + \ NAME + \ NO_SONAME + \ NO_SYSTEM_FROM_IMPORTED + \ OBJCXX_EXTENSIONS + \ OBJCXX_STANDARD + \ OBJCXX_STANDARD_REQUIRED + \ OBJC_EXTENSIONS + \ OBJC_STANDARD + \ OBJC_STANDARD_REQUIRED + \ OBJECT_DEPENDS + \ OBJECT_OUTPUTS + \ OPTIMIZE_DEPENDENCIES + \ OSX_ARCHITECTURES + \ OUTPUT_NAME + \ PACKAGES_FOUND + \ PACKAGES_NOT_FOUND + \ PARENT_DIRECTORY + \ PASS_REGULAR_EXPRESSION + \ PCH_INSTANTIATE_TEMPLATES + \ PCH_WARN_INVALID + \ PDB_NAME + \ PDB_OUTPUT_DIRECTORY + \ POSITION_INDEPENDENT_CODE + \ POST_INSTALL_SCRIPT + \ PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS_REUSE_FROM + \ PREDEFINED_TARGETS_FOLDER + \ PREFIX + \ PRE_INSTALL_SCRIPT + \ PRIVATE_HEADER + \ PROCESSORS + \ PROCESSOR_AFFINITY + \ PROJECT_LABEL + \ PUBLIC_HEADER + \ REPORT_UNDEFINED_PROPERTIES + \ REQUIRED_FILES + \ RESOURCE + \ RESOURCE_GROUPS + \ RESOURCE_LOCK + \ RULE_LAUNCH_COMPILE + \ RULE_LAUNCH_CUSTOM + \ RULE_LAUNCH_LINK + \ RULE_MESSAGES + \ RUNTIME_OUTPUT_DIRECTORY + \ RUNTIME_OUTPUT_NAME + \ RUN_SERIAL + \ SKIP_AUTOGEN + \ SKIP_AUTOMOC + \ SKIP_AUTORCC + \ SKIP_AUTOUIC + \ SKIP_BUILD_RPATH + \ SKIP_LINTING + \ SKIP_PRECOMPILE_HEADERS + \ SKIP_REGULAR_EXPRESSION + \ SKIP_RETURN_CODE + \ SKIP_UNITY_BUILD_INCLUSION + \ SOURCES + \ SOURCE_DIR + \ SOVERSION + \ STATIC_LIBRARY_FLAGS + \ STATIC_LIBRARY_OPTIONS + \ STRINGS + \ SUBDIRECTORIES + \ SUFFIX + \ SYMBOLIC + \ SYSTEM + \ Swift_DEPENDENCIES_FILE + \ Swift_DIAGNOSTICS_FILE + \ Swift_LANGUAGE_VERSION + \ Swift_MODULE_DIRECTORY + \ Swift_MODULE_NAME + \ Swift_COMPILATION_MODE + \ TARGET_ARCHIVES_MAY_BE_SHARED_LIBS + \ TARGET_MESSAGES + \ TARGET_SUPPORTS_SHARED_LIBS + \ TESTS + \ TEST_INCLUDE_FILE + \ TEST_INCLUDE_FILES + \ TIMEOUT + \ TIMEOUT_AFTER_MATCH + \ TIMEOUT_SIGNAL_GRACE_PERIOD + \ TIMEOUT_SIGNAL_NAME + \ TYPE + \ UNITY_BUILD + \ UNITY_BUILD_BATCH_SIZE + \ UNITY_BUILD_CODE_AFTER_INCLUDE + \ UNITY_BUILD_CODE_BEFORE_INCLUDE + \ UNITY_BUILD_MODE + \ UNITY_BUILD_UNIQUE_ID + \ UNITY_GROUP + \ USE_FOLDERS + \ VALUE + \ VARIABLES + \ VERIFY_INTERFACE_HEADER_SETS + \ VERSION + \ VISIBILITY_INLINES_HIDDEN + \ VS_CONFIGURATION_TYPE + \ VS_COPY_TO_OUT_DIR + \ VS_DEBUGGER_COMMAND + \ VS_DEBUGGER_COMMAND_ARGUMENTS + \ VS_DEBUGGER_ENVIRONMENT + \ VS_DEBUGGER_WORKING_DIRECTORY + \ VS_DEPLOYMENT_CONTENT + \ VS_DEPLOYMENT_LOCATION + \ VS_DESKTOP_EXTENSIONS_VERSION + \ VS_DOTNET_DOCUMENTATION_FILE + \ VS_DOTNET_REFERENCES + \ VS_DOTNET_REFERENCES_COPY_LOCAL + \ VS_DOTNET_STARTUP_OBJECT + \ VS_DOTNET_TARGET_FRAMEWORK_VERSION + \ VS_DPI_AWARE + \ VS_GLOBAL_KEYWORD + \ VS_GLOBAL_PROJECT_TYPES + \ VS_GLOBAL_ROOTNAMESPACE + \ VS_INCLUDE_IN_VSIX + \ VS_IOT_EXTENSIONS_VERSION + \ VS_IOT_STARTUP_TASK + \ VS_JUST_MY_CODE_DEBUGGING + \ VS_KEYWORD + \ VS_MOBILE_EXTENSIONS_VERSION + \ VS_NO_COMPILE_BATCHING + \ VS_NO_SOLUTION_DEPLOY + \ VS_PACKAGE_REFERENCES + \ VS_PLATFORM_TOOLSET + \ VS_PROJECT_IMPORT + \ VS_RESOURCE_GENERATOR + \ VS_SCC_AUXPATH + \ VS_SCC_LOCALPATH + \ VS_SCC_PROJECTNAME + \ VS_SCC_PROVIDER + \ VS_SDK_REFERENCES + \ VS_SETTINGS + \ VS_SHADER_DISABLE_OPTIMIZATIONS + \ VS_SHADER_ENABLE_DEBUG + \ VS_SHADER_ENTRYPOINT + \ VS_SHADER_FLAGS + \ VS_SHADER_MODEL + \ VS_SHADER_OBJECT_FILE_NAME + \ VS_SHADER_OUTPUT_HEADER_FILE + \ VS_SHADER_TYPE + \ VS_SHADER_VARIABLE_NAME + \ VS_SOLUTION_DEPLOY + \ VS_STARTUP_PROJECT + \ VS_TOOL_OVERRIDE + \ VS_USER_PROPS + \ VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION + \ VS_WINRT_COMPONENT + \ VS_WINRT_EXTENSIONS + \ VS_WINRT_REFERENCES + \ VS_XAML_TYPE + \ WATCOM_RUNTIME_LIBRARY + \ WILL_FAIL + \ WIN32_EXECUTABLE + \ WINDOWS_EXPORT_ALL_SYMBOLS + \ WORKING_DIRECTORY + \ WRAP_EXCLUDE + \ XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY + \ XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY + \ XCODE_EMIT_EFFECTIVE_PLATFORM_NAME + \ XCODE_EXPLICIT_FILE_TYPE + \ XCODE_FILE_ATTRIBUTES + \ XCODE_GENERATE_SCHEME + \ XCODE_LAST_KNOWN_FILE_TYPE + \ XCODE_LINK_BUILD_PHASE_MODE + \ XCODE_PRODUCT_TYPE + \ XCODE_SCHEME_ADDRESS_SANITIZER + \ XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN + \ XCODE_SCHEME_ARGUMENTS + \ XCODE_SCHEME_DEBUG_AS_ROOT + \ XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING + \ XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER + \ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS + \ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE + \ XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ XCODE_SCHEME_ENVIRONMENT + \ XCODE_SCHEME_EXECUTABLE + \ XCODE_SCHEME_GUARD_MALLOC + \ XCODE_SCHEME_LAUNCH_CONFIGURATION + \ XCODE_SCHEME_LAUNCH_MODE + \ XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP + \ XCODE_SCHEME_MALLOC_GUARD_EDGES + \ XCODE_SCHEME_MALLOC_SCRIBBLE + \ XCODE_SCHEME_MALLOC_STACK + \ XCODE_SCHEME_THREAD_SANITIZER + \ XCODE_SCHEME_THREAD_SANITIZER_STOP + \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER + \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP + \ XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ XCODE_SCHEME_LAUNCH_CONFIGURATION + \ XCODE_SCHEME_WORKING_DIRECTORY + \ XCODE_SCHEME_ZOMBIE_OBJECTS + \ XCODE_XCCONFIG + \ XCTEST syn keyword cmakeVariable contained - \ ANDROID APPLE BORLAND BUILD_SHARED_LIBS CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS CMAKE_ANDROID_API CMAKE_ANDROID_API_MIN CMAKE_ANDROID_ARCH CMAKE_ANDROID_ARCH_ABI CMAKE_ANDROID_ARM_MODE CMAKE_ANDROID_ARM_NEON CMAKE_ANDROID_ASSETS_DIRECTORIES CMAKE_ANDROID_GUI CMAKE_ANDROID_JAR_DEPENDENCIES CMAKE_ANDROID_JAR_DIRECTORIES CMAKE_ANDROID_JAVA_SOURCE_DIR CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_DEPRECATED_HEADERS CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION CMAKE_ANDROID_PROCESS_MAX CMAKE_ANDROID_PROGUARD CMAKE_ANDROID_PROGUARD_CONFIG_PATH CMAKE_ANDROID_SECURE_PROPS_PATH CMAKE_ANDROID_SKIP_ANT_STEP CMAKE_ANDROID_STANDALONE_TOOLCHAIN CMAKE_ANDROID_STL_TYPE CMAKE_APPBUNDLE_PATH CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOMOC CMAKE_AUTOMOC_DEPEND_FILTERS CMAKE_AUTOMOC_MACRO_NAMES CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_AUTORCC CMAKE_AUTORCC_OPTIONS CMAKE_AUTOUIC CMAKE_AUTOUIC_OPTIONS CMAKE_AUTOUIC_SEARCH_PATHS CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR CMAKE_BUILD_RPATH CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE CMAKE_BUILD_WITH_INSTALL_NAME_DIR CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION CMAKE_CACHE_MINOR_VERSION CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 CMAKE_CODELITE_USE_TARGETS CMAKE_COLOR_MAKEFILE CMAKE_COMMAND CMAKE_COMPILER_2005 CMAKE_COMPILER_IS_GNUCC CMAKE_COMPILER_IS_GNUCXX CMAKE_COMPILER_IS_GNUG77 CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY CMAKE_CONFIGURATION_TYPES CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND CMAKE_CUDA_EXTENSIONS CMAKE_CUDA_STANDARD CMAKE_CUDA_STANDARD_REQUIRED CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE CMAKE_CURRENT_LIST_LINE CMAKE_CURRENT_SOURCE_DIR CMAKE_CXX_COMPILE_FEATURES CMAKE_CXX_EXTENSIONS CMAKE_CXX_STANDARD CMAKE_CXX_STANDARD_REQUIRED CMAKE_C_COMPILE_FEATURES CMAKE_C_EXTENSIONS CMAKE_C_STANDARD CMAKE_C_STANDARD_REQUIRED CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES CMAKE_DEPENDS_IN_PROJECT_ONLY CMAKE_DIRECTORY_LABELS CMAKE_DL_LIBS CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT CMAKE_ECLIPSE_MAKE_ARGUMENTS CMAKE_ECLIPSE_VERSION CMAKE_EDIT_COMMAND CMAKE_ENABLE_EXPORTS CMAKE_ERROR_DEPRECATED CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_INIT CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_EXTRA_GENERATOR CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES CMAKE_FIND_APPBUNDLE CMAKE_FIND_FRAMEWORK CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_NO_INSTALL_PREFIX CMAKE_FIND_PACKAGE_NAME CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_SORT_DIRECTION CMAKE_FIND_PACKAGE_SORT_ORDER CMAKE_FIND_PACKAGE_WARN_NO_MODULE CMAKE_FIND_ROOT_PATH CMAKE_FIND_ROOT_PATH_MODE_INCLUDE CMAKE_FIND_ROOT_PATH_MODE_LIBRARY CMAKE_FIND_ROOT_PATH_MODE_PACKAGE CMAKE_FIND_ROOT_PATH_MODE_PROGRAM CMAKE_FRAMEWORK_PATH CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT CMAKE_Fortran_MODDIR_FLAG CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR CMAKE_GENERATOR_PLATFORM CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE CMAKE_HOST_SOLARIS CMAKE_HOST_SYSTEM CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_UNIX CMAKE_HOST_WIN32 CMAKE_IGNORE_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX CMAKE_INCLUDE_CURRENT_DIR CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE CMAKE_INCLUDE_DIRECTORIES_BEFORE CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE CMAKE_INCLUDE_PATH CMAKE_INSTALL_DEFAULT_COMPONENT_NAME CMAKE_INSTALL_MESSAGE CMAKE_INSTALL_NAME_DIR CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH CMAKE_INTERNAL_PLATFORM_ABI CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_IOS_INSTALL_COMBINED CMAKE_JOB_POOL_COMPILE CMAKE_JOB_POOL_LINK CMAKE_LIBRARY_ARCHITECTURE CMAKE_LIBRARY_ARCHITECTURE_REGEX CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_LIBRARY_PATH CMAKE_LIBRARY_PATH_FLAG CMAKE_LINK_DEF_FILE_FLAG CMAKE_LINK_DEPENDS_NO_SHARED CMAKE_LINK_INTERFACE_LIBRARIES CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX CMAKE_LINK_SEARCH_END_STATIC CMAKE_LINK_SEARCH_START_STATIC CMAKE_LINK_WHAT_YOU_USE CMAKE_MACOSX_BUNDLE CMAKE_MACOSX_RPATH CMAKE_MAJOR_VERSION CMAKE_MAKE_PROGRAM CMAKE_MATCH_COUNT CMAKE_MFC_FLAG CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_MINOR_VERSION CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS_INIT CMAKE_MODULE_PATH CMAKE_MSVCIDE_RUN_PATH CMAKE_NINJA_OUTPUT_PATH_PREFIX CMAKE_NOT_USING_CONFIG_FLAGS CMAKE_NO_BUILTIN_CHRPATH CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJECT_PATH_MAX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT CMAKE_PARENT_LIST_FILE CMAKE_PATCH_VERSION CMAKE_PDB_OUTPUT_DIRECTORY CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH CMAKE_PROJECT_DESCRIPTION CMAKE_PROJECT_NAME CMAKE_RANLIB CMAKE_ROOT CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE CMAKE_SHARED_LIBRARY_PREFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS_INIT CMAKE_SHARED_MODULE_PREFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_SIZEOF_VOID_P CMAKE_SKIP_BUILD_RPATH CMAKE_SKIP_INSTALL_ALL_DEPENDENCY CMAKE_SKIP_INSTALL_RPATH CMAKE_SKIP_INSTALL_RULES CMAKE_SKIP_RPATH CMAKE_SOURCE_DIR CMAKE_STAGING_PREFIX CMAKE_STATIC_LIBRARY_PREFIX CMAKE_STATIC_LIBRARY_SUFFIX CMAKE_STATIC_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS_INIT CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE CMAKE_SYSROOT CMAKE_SYSROOT_COMPILE CMAKE_SYSROOT_LINK CMAKE_SYSTEM CMAKE_SYSTEM_APPBUNDLE_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_IGNORE_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_PROGRAM_PATH CMAKE_SYSTEM_VERSION CMAKE_Swift_LANGUAGE_VERSION CMAKE_TOOLCHAIN_FILE CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_TRY_COMPILE_TARGET_TYPE CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE CMAKE_USE_RELATIVE_PATHS CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VISIBILITY_INLINES_HIDDEN CMAKE_VS_DEVENV_COMMAND CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD CMAKE_VS_INTEL_Fortran_PROJECT_VERSION CMAKE_VS_MSBUILD_COMMAND CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET CMAKE_VS_PLATFORM_TOOLSET_CUDA CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS CMAKE_XCODE_GENERATE_SCHEME CMAKE_XCODE_PLATFORM_TOOLSET CPACK_ABSOLUTE_DESTINATION_FILES CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CPACK_INCLUDE_TOPLEVEL_DIRECTORY CPACK_INSTALL_SCRIPT CPACK_PACKAGING_INSTALL_PREFIX CPACK_SET_DESTDIR CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CTEST_BINARY_DIRECTORY CTEST_BUILD_COMMAND CTEST_BUILD_NAME CTEST_BZR_COMMAND CTEST_BZR_UPDATE_OPTIONS CTEST_CHANGE_ID CTEST_CHECKOUT_COMMAND CTEST_CONFIGURATION_TYPE CTEST_CONFIGURE_COMMAND CTEST_COVERAGE_COMMAND CTEST_COVERAGE_EXTRA_FLAGS CTEST_CURL_OPTIONS CTEST_CUSTOM_COVERAGE_EXCLUDE CTEST_CUSTOM_ERROR_EXCEPTION CTEST_CUSTOM_ERROR_MATCH CTEST_CUSTOM_ERROR_POST_CONTEXT CTEST_CUSTOM_ERROR_PRE_CONTEXT CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MEMCHECK_IGNORE CTEST_CUSTOM_POST_MEMCHECK CTEST_CUSTOM_POST_TEST CTEST_CUSTOM_PRE_MEMCHECK CTEST_CUSTOM_PRE_TEST CTEST_CUSTOM_TEST_IGNORE CTEST_CUSTOM_WARNING_EXCEPTION CTEST_CUSTOM_WARNING_MATCH CTEST_CVS_CHECKOUT CTEST_CVS_COMMAND CTEST_CVS_UPDATE_OPTIONS CTEST_DROP_LOCATION CTEST_DROP_METHOD CTEST_DROP_SITE CTEST_DROP_SITE_CDASH CTEST_DROP_SITE_PASSWORD CTEST_DROP_SITE_USER CTEST_EXTRA_COVERAGE_GLOB CTEST_GIT_COMMAND CTEST_GIT_INIT_SUBMODULES CTEST_GIT_UPDATE_CUSTOM CTEST_GIT_UPDATE_OPTIONS CTEST_HG_COMMAND CTEST_HG_UPDATE_OPTIONS CTEST_LABELS_FOR_SUBPROJECTS CTEST_MEMORYCHECK_COMMAND CTEST_MEMORYCHECK_COMMAND_OPTIONS CTEST_MEMORYCHECK_SANITIZER_OPTIONS CTEST_MEMORYCHECK_SUPPRESSIONS_FILE CTEST_MEMORYCHECK_TYPE CTEST_NIGHTLY_START_TIME CTEST_P4_CLIENT CTEST_P4_COMMAND CTEST_P4_OPTIONS CTEST_P4_UPDATE_OPTIONS CTEST_SCP_COMMAND CTEST_SITE CTEST_SOURCE_DIRECTORY CTEST_SVN_COMMAND CTEST_SVN_OPTIONS CTEST_SVN_UPDATE_OPTIONS CTEST_TEST_LOAD CTEST_TEST_TIMEOUT CTEST_TRIGGER_SITE CTEST_UPDATE_COMMAND CTEST_UPDATE_OPTIONS CTEST_UPDATE_VERSION_ONLY CTEST_USE_LAUNCHERS CYGWIN ENV EXECUTABLE_OUTPUT_PATH GHS-MULTI LIBRARY_OUTPUT_PATH MINGW MSVC MSVC10 MSVC11 MSVC12 MSVC14 MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 MSVC_IDE MSVC_VERSION PROJECT_BINARY_DIR PROJECT_DESCRIPTION PROJECT_NAME PROJECT_SOURCE_DIR PROJECT_VERSION PROJECT_VERSION_MAJOR PROJECT_VERSION_MINOR PROJECT_VERSION_PATCH PROJECT_VERSION_TWEAK UNIX WIN32 WINCE WINDOWS_PHONE WINDOWS_STORE XCODE XCODE_VERSION + \ ANDROID + \ APPLE + \ BORLAND + \ BSD + \ BUILD_SHARED_LIBS + \ CACHE + \ CMAKE_ABSOLUTE_DESTINATION_FILES + \ CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY + \ CMAKE_ADSP_ROOT + \ CMAKE_AIX_EXPORT_ALL_SYMBOLS + \ CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS + \ CMAKE_ANDROID_API + \ CMAKE_ANDROID_API_MIN + \ CMAKE_ANDROID_ARCH + \ CMAKE_ANDROID_ARCH_ABI + \ CMAKE_ANDROID_ARM_MODE + \ CMAKE_ANDROID_ARM_NEON + \ CMAKE_ANDROID_ASSETS_DIRECTORIES + \ CMAKE_ANDROID_EXCEPTIONS + \ CMAKE_ANDROID_GUI + \ CMAKE_ANDROID_JAR_DEPENDENCIES + \ CMAKE_ANDROID_JAR_DIRECTORIES + \ CMAKE_ANDROID_JAVA_SOURCE_DIR + \ CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES + \ CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES + \ CMAKE_ANDROID_NDK + \ CMAKE_ANDROID_NDK_DEPRECATED_HEADERS + \ CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG + \ CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION + \ CMAKE_ANDROID_NDK_VERSION + \ CMAKE_ANDROID_PROCESS_MAX + \ CMAKE_ANDROID_PROGUARD + \ CMAKE_ANDROID_PROGUARD_CONFIG_PATH + \ CMAKE_ANDROID_RTTI + \ CMAKE_ANDROID_SECURE_PROPS_PATH + \ CMAKE_ANDROID_SKIP_ANT_STEP + \ CMAKE_ANDROID_STANDALONE_TOOLCHAIN + \ CMAKE_ANDROID_STL_TYPE + \ CMAKE_APPBUNDLE_PATH + \ CMAKE_APPLE_SILICON_PROCESSOR + \ CMAKE_AR + \ CMAKE_ARCHIVE_OUTPUT_DIRECTORY + \ CMAKE_ARGC + \ CMAKE_ARGV0 + \ CMAKE_ASM + \ CMAKE_ASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_ARCHIVE_APPEND + \ CMAKE_ASM_ARCHIVE_CREATE + \ CMAKE_ASM_ARCHIVE_FINISH + \ CMAKE_ASM_BYTE_ORDER + \ CMAKE_ASM_CLANG_TIDY + \ CMAKE_ASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_COMPILER + \ CMAKE_ASM_COMPILER_ABI + \ CMAKE_ASM_COMPILER_AR + \ CMAKE_ASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_COMPILER_ID + \ CMAKE_ASM_COMPILER_LAUNCHER + \ CMAKE_ASM_COMPILER_LOADED + \ CMAKE_ASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_COMPILER_RANLIB + \ CMAKE_ASM_COMPILER_TARGET + \ CMAKE_ASM_COMPILER_VERSION + \ CMAKE_ASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_COMPILE_OBJECT + \ CMAKE_ASM_CPPCHECK + \ CMAKE_ASM_CPPLINT + \ CMAKE_ASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_EXTENSIONS + \ CMAKE_ASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_FLAGS + \ CMAKE_ASM_FLAGS_DEBUG + \ CMAKE_ASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_FLAGS_INIT + \ CMAKE_ASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_FLAGS_RELEASE + \ CMAKE_ASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_INIT + \ CMAKE_ASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_LINKER_LAUNCHER + \ CMAKE_ASM_LINKER_PREFERENCE + \ CMAKE_ASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_LINK_EXECUTABLE + \ CMAKE_ASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_MASM + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_MASM_ARCHIVE_APPEND + \ CMAKE_ASM_MASM_ARCHIVE_CREATE + \ CMAKE_ASM_MASM_ARCHIVE_FINISH + \ CMAKE_ASM_MASM_BYTE_ORDER + \ CMAKE_ASM_MASM_CLANG_TIDY + \ CMAKE_ASM_MASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_MASM_COMPILER + \ CMAKE_ASM_MASM_COMPILER_ABI + \ CMAKE_ASM_MASM_COMPILER_AR + \ CMAKE_ASM_MASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_MASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_MASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_MASM_COMPILER_ID + \ CMAKE_ASM_MASM_COMPILER_LAUNCHER + \ CMAKE_ASM_MASM_COMPILER_LOADED + \ CMAKE_ASM_MASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_MASM_COMPILER_RANLIB + \ CMAKE_ASM_MASM_COMPILER_TARGET + \ CMAKE_ASM_MASM_COMPILER_VERSION + \ CMAKE_ASM_MASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_MASM_COMPILE_OBJECT + \ CMAKE_ASM_MASM_CPPCHECK + \ CMAKE_ASM_MASM_CPPLINT + \ CMAKE_ASM_MASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_MASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_MASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_MASM_EXTENSIONS + \ CMAKE_ASM_MASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_MASM_FLAGS + \ CMAKE_ASM_MASM_FLAGS_DEBUG + \ CMAKE_ASM_MASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_MASM_FLAGS_INIT + \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_MASM_FLAGS_RELEASE + \ CMAKE_ASM_MASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_MASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_MASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_MASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_MASM_INIT + \ CMAKE_ASM_MASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_MASM_LINKER_LAUNCHER + \ CMAKE_ASM_MASM_LINKER_PREFERENCE + \ CMAKE_ASM_MASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_MASM_LINK_EXECUTABLE + \ CMAKE_ASM_MASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_MASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_MASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_MASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_MASM_OUTPUT_EXTENSION + \ CMAKE_ASM_MASM_PLATFORM_ID + \ CMAKE_ASM_MASM_SIMULATE_ID + \ CMAKE_ASM_MASM_SIMULATE_VERSION + \ CMAKE_ASM_MASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_MASM_STANDARD + \ CMAKE_ASM_MASM_STANDARD_DEFAULT + \ CMAKE_ASM_MASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_MASM_STANDARD_LIBRARIES + \ CMAKE_ASM_MASM_STANDARD_REQUIRED + \ CMAKE_ASM_MASM_SUPPORTED + \ CMAKE_ASM_MASM_VISIBILITY_PRESET + \ CMAKE_ASM_NASM + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_NASM_ARCHIVE_APPEND + \ CMAKE_ASM_NASM_ARCHIVE_CREATE + \ CMAKE_ASM_NASM_ARCHIVE_FINISH + \ CMAKE_ASM_NASM_BYTE_ORDER + \ CMAKE_ASM_NASM_CLANG_TIDY + \ CMAKE_ASM_NASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_NASM_COMPILER + \ CMAKE_ASM_NASM_COMPILER_ABI + \ CMAKE_ASM_NASM_COMPILER_AR + \ CMAKE_ASM_NASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_NASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_NASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_NASM_COMPILER_ID + \ CMAKE_ASM_NASM_COMPILER_LAUNCHER + \ CMAKE_ASM_NASM_COMPILER_LOADED + \ CMAKE_ASM_NASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_NASM_COMPILER_RANLIB + \ CMAKE_ASM_NASM_COMPILER_TARGET + \ CMAKE_ASM_NASM_COMPILER_VERSION + \ CMAKE_ASM_NASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_NASM_COMPILE_OBJECT + \ CMAKE_ASM_NASM_CPPCHECK + \ CMAKE_ASM_NASM_CPPLINT + \ CMAKE_ASM_NASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_NASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_NASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_NASM_EXTENSIONS + \ CMAKE_ASM_NASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_NASM_FLAGS + \ CMAKE_ASM_NASM_FLAGS_DEBUG + \ CMAKE_ASM_NASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_NASM_FLAGS_INIT + \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_NASM_FLAGS_RELEASE + \ CMAKE_ASM_NASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_NASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_NASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_NASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_NASM_INIT + \ CMAKE_ASM_NASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_NASM_LINKER_LAUNCHER + \ CMAKE_ASM_NASM_LINKER_PREFERENCE + \ CMAKE_ASM_NASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_NASM_LINK_EXECUTABLE + \ CMAKE_ASM_NASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_NASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_NASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_NASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_NASM_OUTPUT_EXTENSION + \ CMAKE_ASM_NASM_PLATFORM_ID + \ CMAKE_ASM_NASM_SIMULATE_ID + \ CMAKE_ASM_NASM_SIMULATE_VERSION + \ CMAKE_ASM_NASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_NASM_STANDARD + \ CMAKE_ASM_NASM_STANDARD_DEFAULT + \ CMAKE_ASM_NASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_NASM_STANDARD_LIBRARIES + \ CMAKE_ASM_NASM_STANDARD_REQUIRED + \ CMAKE_ASM_NASM_SUPPORTED + \ CMAKE_ASM_NASM_VISIBILITY_PRESET + \ CMAKE_ASM_OUTPUT_EXTENSION + \ CMAKE_ASM_PLATFORM_ID + \ CMAKE_ASM_SIMULATE_ID + \ CMAKE_ASM_SIMULATE_VERSION + \ CMAKE_ASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_STANDARD + \ CMAKE_ASM_STANDARD_DEFAULT + \ CMAKE_ASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_STANDARD_LIBRARIES + \ CMAKE_ASM_STANDARD_REQUIRED + \ CMAKE_ASM_SUPPORTED + \ CMAKE_ASM_VISIBILITY_PRESET + \ CMAKE_AUTOGEN_COMMAND_LINE_LENGTH_MAX + \ CMAKE_AUTOGEN_ORIGIN_DEPENDS + \ CMAKE_AUTOGEN_PARALLEL + \ CMAKE_AUTOGEN_USE_SYSTEM_INCLUDE + \ CMAKE_AUTOGEN_VERBOSE + \ CMAKE_AUTOMOC + \ CMAKE_AUTOMOC_COMPILER_PREDEFINES + \ CMAKE_AUTOMOC_DEPEND_FILTERS + \ CMAKE_AUTOMOC_EXECUTABLE + \ CMAKE_AUTOMOC_MACRO_NAMES + \ CMAKE_AUTOMOC_MOC_OPTIONS + \ CMAKE_AUTOMOC_PATH_PREFIX + \ CMAKE_AUTOMOC_RELAXED_MODE + \ CMAKE_AUTOMOC_EXECUTABLE + \ CMAKE_AUTORCC + \ CMAKE_AUTORCC_EXECUTABLE + \ CMAKE_AUTORCC_OPTIONS + \ CMAKE_AUTORCC_EXECUTABLE + \ CMAKE_AUTOUIC + \ CMAKE_AUTOUIC_EXECUTABLE + \ CMAKE_AUTOUIC_OPTIONS + \ CMAKE_AUTOUIC_SEARCH_PATHS + \ CMAKE_AUTOUIC_EXECUTABLE + \ CMAKE_BACKWARDS_COMPATIBILITY + \ CMAKE_BINARY_DIR + \ CMAKE_BUILD_RPATH + \ CMAKE_BUILD_RPATH_USE_ORIGIN + \ CMAKE_BUILD_TOOL + \ CMAKE_BUILD_TYPE + \ CMAKE_BUILD_WITH_INSTALL_NAME_DIR + \ CMAKE_BUILD_WITH_INSTALL_RPATH + \ CMAKE_C + \ CMAKE_CACHEFILE_DIR + \ CMAKE_CACHE_MAJOR_VERSION + \ CMAKE_CACHE_MINOR_VERSION + \ CMAKE_CACHE_PATCH_VERSION + \ CMAKE_CFG_INTDIR + \ CMAKE_CLANG_VFS_OVERLAY + \ CMAKE_CL_64 + \ CMAKE_CODEBLOCKS_COMPILER_ID + \ CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES + \ CMAKE_CODELITE_USE_TARGETS + \ CMAKE_COLOR_DIAGNOSTICS + \ CMAKE_COLOR_MAKEFILE + \ CMAKE_COMMAND + \ CMAKE_COMPILER_2005 + \ CMAKE_COMPILER_IS_GNUCC + \ CMAKE_COMPILER_IS_GNUCXX + \ CMAKE_COMPILER_IS_GNUG77 + \ CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY + \ CMAKE_COMPILE_WARNING_AS_ERROR + \ CMAKE_CONFIGURATION_TYPES + \ CMAKE_CPACK_COMMAND + \ CMAKE_CROSSCOMPILING + \ CMAKE_CROSSCOMPILING_EMULATOR + \ CMAKE_CROSS_CONFIGS + \ CMAKE_CSharp + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CSharp_ARCHIVE_APPEND + \ CMAKE_CSharp_ARCHIVE_CREATE + \ CMAKE_CSharp_ARCHIVE_FINISH + \ CMAKE_CSharp_BYTE_ORDER + \ CMAKE_CSharp_CLANG_TIDY + \ CMAKE_CSharp_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CSharp_COMPILER + \ CMAKE_CSharp_COMPILER_ABI + \ CMAKE_CSharp_COMPILER_AR + \ CMAKE_CSharp_COMPILER_ARCHITECTURE_ID + \ CMAKE_CSharp_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CSharp_COMPILER_FRONTEND_VARIANT + \ CMAKE_CSharp_COMPILER_ID + \ CMAKE_CSharp_COMPILER_LAUNCHER + \ CMAKE_CSharp_COMPILER_LOADED + \ CMAKE_CSharp_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CSharp_COMPILER_RANLIB + \ CMAKE_CSharp_COMPILER_TARGET + \ CMAKE_CSharp_COMPILER_VERSION + \ CMAKE_CSharp_COMPILER_VERSION_INTERNAL + \ CMAKE_CSharp_COMPILE_OBJECT + \ CMAKE_CSharp_CPPCHECK + \ CMAKE_CSharp_CPPLINT + \ CMAKE_CSharp_CREATE_SHARED_LIBRARY + \ CMAKE_CSharp_CREATE_SHARED_MODULE + \ CMAKE_CSharp_CREATE_STATIC_LIBRARY + \ CMAKE_CSharp_EXTENSIONS + \ CMAKE_CSharp_EXTENSIONS_DEFAULT + \ CMAKE_CSharp_FLAGS + \ CMAKE_CSharp_FLAGS_DEBUG + \ CMAKE_CSharp_FLAGS_DEBUG_INIT + \ CMAKE_CSharp_FLAGS_INIT + \ CMAKE_CSharp_FLAGS_MINSIZEREL + \ CMAKE_CSharp_FLAGS_MINSIZEREL_INIT + \ CMAKE_CSharp_FLAGS_RELEASE + \ CMAKE_CSharp_FLAGS_RELEASE_INIT + \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO + \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CSharp_IGNORE_EXTENSIONS + \ CMAKE_CSharp_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CSharp_INCLUDE_WHAT_YOU_USE + \ CMAKE_CSharp_INIT + \ CMAKE_CSharp_LIBRARY_ARCHITECTURE + \ CMAKE_CSharp_LINKER_LAUNCHER + \ CMAKE_CSharp_LINKER_PREFERENCE + \ CMAKE_CSharp_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CSharp_LINKER_WRAPPER_FLAG + \ CMAKE_CSharp_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CSharp_LINK_EXECUTABLE + \ CMAKE_CSharp_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CSharp_LINK_LIBRARY_FLAG + \ CMAKE_CSharp_LINK_LIBRARY_SUFFIX + \ CMAKE_CSharp_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CSharp_OUTPUT_EXTENSION + \ CMAKE_CSharp_PLATFORM_ID + \ CMAKE_CSharp_SIMULATE_ID + \ CMAKE_CSharp_SIMULATE_VERSION + \ CMAKE_CSharp_SIZEOF_DATA_PTR + \ CMAKE_CSharp_SOURCE_FILE_EXTENSIONS + \ CMAKE_CSharp_STANDARD + \ CMAKE_CSharp_STANDARD_DEFAULT + \ CMAKE_CSharp_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CSharp_STANDARD_LIBRARIES + \ CMAKE_CSharp_STANDARD_REQUIRED + \ CMAKE_CSharp_SUPPORTED + \ CMAKE_CSharp_VISIBILITY_PRESET + \ CMAKE_CTEST_ARGUMENTS + \ CMAKE_CTEST_COMMAND + \ CMAKE_CUDA + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CUDA_ARCHITECTURES + \ CMAKE_CUDA_ARCHIVE_APPEND + \ CMAKE_CUDA_ARCHIVE_CREATE + \ CMAKE_CUDA_ARCHIVE_FINISH + \ CMAKE_CUDA_BYTE_ORDER + \ CMAKE_CUDA_CLANG_TIDY + \ CMAKE_CUDA_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CUDA_COMPILER + \ CMAKE_CUDA_COMPILER_ABI + \ CMAKE_CUDA_COMPILER_AR + \ CMAKE_CUDA_COMPILER_ARCHITECTURE_ID + \ CMAKE_CUDA_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CUDA_COMPILER_FRONTEND_VARIANT + \ CMAKE_CUDA_COMPILER_ID + \ CMAKE_CUDA_COMPILER_LAUNCHER + \ CMAKE_CUDA_COMPILER_LOADED + \ CMAKE_CUDA_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CUDA_COMPILER_RANLIB + \ CMAKE_CUDA_COMPILER_TARGET + \ CMAKE_CUDA_COMPILER_VERSION + \ CMAKE_CUDA_COMPILER_VERSION_INTERNAL + \ CMAKE_CUDA_COMPILE_FEATURES + \ CMAKE_CUDA_COMPILE_OBJECT + \ CMAKE_CUDA_CPPCHECK + \ CMAKE_CUDA_CPPLINT + \ CMAKE_CUDA_CREATE_SHARED_LIBRARY + \ CMAKE_CUDA_CREATE_SHARED_MODULE + \ CMAKE_CUDA_CREATE_STATIC_LIBRARY + \ CMAKE_CUDA_EXTENSIONS + \ CMAKE_CUDA_EXTENSIONS_DEFAULT + \ CMAKE_CUDA_FLAGS + \ CMAKE_CUDA_FLAGS_DEBUG + \ CMAKE_CUDA_FLAGS_DEBUG_INIT + \ CMAKE_CUDA_FLAGS_INIT + \ CMAKE_CUDA_FLAGS_MINSIZEREL + \ CMAKE_CUDA_FLAGS_MINSIZEREL_INIT + \ CMAKE_CUDA_FLAGS_RELEASE + \ CMAKE_CUDA_FLAGS_RELEASE_INIT + \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO + \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CUDA_HOST_COMPILER + \ CMAKE_CUDA_IGNORE_EXTENSIONS + \ CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CUDA_INCLUDE_WHAT_YOU_USE + \ CMAKE_CUDA_INIT + \ CMAKE_CUDA_LIBRARY_ARCHITECTURE + \ CMAKE_CUDA_LINKER_LAUNCHER + \ CMAKE_CUDA_LINKER_PREFERENCE + \ CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CUDA_LINKER_WRAPPER_FLAG + \ CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CUDA_LINK_EXECUTABLE + \ CMAKE_CUDA_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CUDA_LINK_LIBRARY_FLAG + \ CMAKE_CUDA_LINK_LIBRARY_SUFFIX + \ CMAKE_CUDA_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CUDA_OUTPUT_EXTENSION + \ CMAKE_CUDA_PLATFORM_ID + \ CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS + \ CMAKE_CUDA_RUNTIME_LIBRARY + \ CMAKE_CUDA_SEPARABLE_COMPILATION + \ CMAKE_CUDA_SIMULATE_ID + \ CMAKE_CUDA_SIMULATE_VERSION + \ CMAKE_CUDA_SIZEOF_DATA_PTR + \ CMAKE_CUDA_SOURCE_FILE_EXTENSIONS + \ CMAKE_CUDA_STANDARD + \ CMAKE_CUDA_STANDARD_DEFAULT + \ CMAKE_CUDA_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_STANDARD_LIBRARIES + \ CMAKE_CUDA_STANDARD_REQUIRED + \ CMAKE_CUDA_SUPPORTED + \ CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_VISIBILITY_PRESET + \ CMAKE_CURRENT_BINARY_DIR + \ CMAKE_CURRENT_FUNCTION + \ CMAKE_CURRENT_FUNCTION_LIST_DIR + \ CMAKE_CURRENT_FUNCTION_LIST_FILE + \ CMAKE_CURRENT_FUNCTION_LIST_LINE + \ CMAKE_CURRENT_LIST_DIR + \ CMAKE_CURRENT_LIST_FILE + \ CMAKE_CURRENT_LIST_LINE + \ CMAKE_CURRENT_SOURCE_DIR + \ CMAKE_CXX + \ CMAKE_CXX_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CXX_ARCHIVE_APPEND + \ CMAKE_CXX_ARCHIVE_CREATE + \ CMAKE_CXX_ARCHIVE_FINISH + \ CMAKE_CXX_BYTE_ORDER + \ CMAKE_CXX_CLANG_TIDY + \ CMAKE_CXX_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CXX_COMPILER + \ CMAKE_CXX_COMPILER_ABI + \ CMAKE_CXX_COMPILER_AR + \ CMAKE_CXX_COMPILER_ARCHITECTURE_ID + \ CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CXX_COMPILER_FRONTEND_VARIANT + \ CMAKE_CXX_COMPILER_ID + \ CMAKE_CXX_COMPILER_LAUNCHER + \ CMAKE_CXX_COMPILER_LOADED + \ CMAKE_CXX_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CXX_COMPILER_RANLIB + \ CMAKE_CXX_COMPILER_TARGET + \ CMAKE_CXX_COMPILER_VERSION + \ CMAKE_CXX_COMPILER_VERSION_INTERNAL + \ CMAKE_CXX_COMPILE_FEATURES + \ CMAKE_CXX_COMPILE_OBJECT + \ CMAKE_CXX_CPPCHECK + \ CMAKE_CXX_CPPLINT + \ CMAKE_CXX_CREATE_SHARED_LIBRARY + \ CMAKE_CXX_CREATE_SHARED_MODULE + \ CMAKE_CXX_CREATE_STATIC_LIBRARY + \ CMAKE_CXX_EXTENSIONS + \ CMAKE_CXX_EXTENSIONS_DEFAULT + \ CMAKE_CXX_FLAGS + \ CMAKE_CXX_FLAGS_DEBUG + \ CMAKE_CXX_FLAGS_DEBUG_INIT + \ CMAKE_CXX_FLAGS_INIT + \ CMAKE_CXX_FLAGS_MINSIZEREL + \ CMAKE_CXX_FLAGS_MINSIZEREL_INIT + \ CMAKE_CXX_FLAGS_RELEASE + \ CMAKE_CXX_FLAGS_RELEASE_INIT + \ CMAKE_CXX_FLAGS_RELWITHDEBINFO + \ CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CXX_IGNORE_EXTENSIONS + \ CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CXX_INCLUDE_WHAT_YOU_USE + \ CMAKE_CXX_INIT + \ CMAKE_CXX_LIBRARY_ARCHITECTURE + \ CMAKE_CXX_LINKER_LAUNCHER + \ CMAKE_CXX_LINKER_PREFERENCE + \ CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CXX_LINKER_WRAPPER_FLAG + \ CMAKE_CXX_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CXX_LINK_EXECUTABLE + \ CMAKE_CXX_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CXX_LINK_LIBRARY_FLAG + \ CMAKE_CXX_LINK_LIBRARY_SUFFIX + \ CMAKE_CXX_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CXX_OUTPUT_EXTENSION + \ CMAKE_CXX_PLATFORM_ID + \ CMAKE_CXX_SCAN_FOR_MODULES + \ CMAKE_CXX_SIMULATE_ID + \ CMAKE_CXX_SIMULATE_VERSION + \ CMAKE_CXX_SIZEOF_DATA_PTR + \ CMAKE_CXX_SOURCE_FILE_EXTENSIONS + \ CMAKE_CXX_STANDARD + \ CMAKE_CXX_STANDARD_DEFAULT + \ CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CXX_STANDARD_LIBRARIES + \ CMAKE_CXX_STANDARD_REQUIRED + \ CMAKE_CXX_SUPPORTED + \ CMAKE_CXX_VISIBILITY_PRESET + \ CMAKE_C_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_C_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_C_ARCHIVE_APPEND + \ CMAKE_C_ARCHIVE_CREATE + \ CMAKE_C_ARCHIVE_FINISH + \ CMAKE_C_BYTE_ORDER + \ CMAKE_C_CLANG_TIDY + \ CMAKE_C_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_C_COMPILER + \ CMAKE_C_COMPILER_ABI + \ CMAKE_C_COMPILER_AR + \ CMAKE_C_COMPILER_ARCHITECTURE_ID + \ CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_C_COMPILER_FRONTEND_VARIANT + \ CMAKE_C_COMPILER_ID + \ CMAKE_C_COMPILER_LAUNCHER + \ CMAKE_C_COMPILER_LOADED + \ CMAKE_C_COMPILER_PREDEFINES_COMMAND + \ CMAKE_C_COMPILER_RANLIB + \ CMAKE_C_COMPILER_TARGET + \ CMAKE_C_COMPILER_VERSION + \ CMAKE_C_COMPILER_VERSION_INTERNAL + \ CMAKE_C_COMPILE_FEATURES + \ CMAKE_C_COMPILE_OBJECT + \ CMAKE_C_CPPCHECK + \ CMAKE_C_CPPLINT + \ CMAKE_C_CREATE_SHARED_LIBRARY + \ CMAKE_C_CREATE_SHARED_MODULE + \ CMAKE_C_CREATE_STATIC_LIBRARY + \ CMAKE_C_EXTENSIONS + \ CMAKE_C_EXTENSIONS_DEFAULT + \ CMAKE_C_FLAGS + \ CMAKE_C_FLAGS_DEBUG + \ CMAKE_C_FLAGS_DEBUG_INIT + \ CMAKE_C_FLAGS_INIT + \ CMAKE_C_FLAGS_MINSIZEREL + \ CMAKE_C_FLAGS_MINSIZEREL_INIT + \ CMAKE_C_FLAGS_RELEASE + \ CMAKE_C_FLAGS_RELEASE_INIT + \ CMAKE_C_FLAGS_RELWITHDEBINFO + \ CMAKE_C_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_C_IGNORE_EXTENSIONS + \ CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_LIBRARIES + \ CMAKE_C_INCLUDE_WHAT_YOU_USE + \ CMAKE_C_INIT + \ CMAKE_C_LIBRARY_ARCHITECTURE + \ CMAKE_C_LINKER_LAUNCHER + \ CMAKE_C_LINKER_PREFERENCE + \ CMAKE_C_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_C_LINKER_WRAPPER_FLAG + \ CMAKE_C_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_C_LINK_EXECUTABLE + \ CMAKE_C_LINK_LIBRARY_FILE_FLAG + \ CMAKE_C_LINK_LIBRARY_FLAG + \ CMAKE_C_LINK_LIBRARY_SUFFIX + \ CMAKE_C_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_C_OUTPUT_EXTENSION + \ CMAKE_C_PLATFORM_ID + \ CMAKE_C_SIMULATE_ID + \ CMAKE_C_SIMULATE_VERSION + \ CMAKE_C_SIZEOF_DATA_PTR + \ CMAKE_C_SOURCE_FILE_EXTENSIONS + \ CMAKE_C_STANDARD + \ CMAKE_C_STANDARD_DEFAULT + \ CMAKE_C_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_C_STANDARD_LIBRARIES + \ CMAKE_C_STANDARD_REQUIRED + \ CMAKE_C_SUPPORTED + \ CMAKE_C_VISIBILITY_PRESET + \ CMAKE_DEBUG_POSTFIX + \ CMAKE_DEBUG_TARGET_PROPERTIES + \ CMAKE_DEFAULT_BUILD_TYPE + \ CMAKE_DEFAULT_CONFIGS + \ CMAKE_DEPENDS_IN_PROJECT_ONLY + \ CMAKE_DEPENDS_USE_COMPILER + \ CMAKE_DIRECTORY_LABELS + \ CMAKE_DISABLE_PRECOMPILE_HEADERS + \ CMAKE_DLL_NAME_WITH_SOVERSION + \ CMAKE_DL_LIBS + \ CMAKE_DOTNET_SDK + \ CMAKE_DOTNET_TARGET_FRAMEWORK + \ CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION + \ CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES + \ CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT + \ CMAKE_ECLIPSE_MAKE_ARGUMENTS + \ CMAKE_ECLIPSE_RESOURCE_ENCODING + \ CMAKE_ECLIPSE_VERSION + \ CMAKE_EDIT_COMMAND + \ CMAKE_ENABLE_EXPORTS + \ CMAKE_ERROR_DEPRECATED + \ CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION + \ CMAKE_EXECUTABLE_ENABLE_EXPORTS + \ CMAKE_EXECUTABLE_SUFFIX + \ CMAKE_EXECUTABLE_SUFFIX_ASM + \ CMAKE_EXECUTABLE_SUFFIX_ASM_MASM + \ CMAKE_EXECUTABLE_SUFFIX_ASM_NASM + \ CMAKE_EXECUTABLE_SUFFIX_C + \ CMAKE_EXECUTABLE_SUFFIX_CSharp + \ CMAKE_EXECUTABLE_SUFFIX_CUDA + \ CMAKE_EXECUTABLE_SUFFIX_CXX + \ CMAKE_EXECUTABLE_SUFFIX_Fortran + \ CMAKE_EXECUTABLE_SUFFIX_HIP + \ CMAKE_EXECUTABLE_SUFFIX_Java + \ CMAKE_EXECUTABLE_SUFFIX_RC + \ CMAKE_EXECUTABLE_SUFFIX_Swift + \ CMAKE_EXECUTE_PROCESS_COMMAND_ECHO + \ CMAKE_EXE_LINKER_FLAGS + \ CMAKE_EXE_LINKER_FLAGS_INIT + \ CMAKE_EXPORT_COMPILE_COMMANDS + \ CMAKE_EXPORT_NO_PACKAGE_REGISTRY + \ CMAKE_EXPORT_PACKAGE_REGISTRY + \ CMAKE_EXTRA_GENERATOR + \ CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES + \ CMAKE_FIND_APPBUNDLE + \ CMAKE_FIND_DEBUG_MODE + \ CMAKE_FIND_FRAMEWORK + \ CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX + \ CMAKE_FIND_LIBRARY_PREFIXES + \ CMAKE_FIND_LIBRARY_SUFFIXES + \ CMAKE_FIND_NO_INSTALL_PREFIX + \ CMAKE_FIND_PACKAGE_NAME + \ CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY + \ CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY + \ CMAKE_FIND_PACKAGE_PREFER_CONFIG + \ CMAKE_FIND_PACKAGE_REDIRECTS_DIR + \ CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS + \ CMAKE_FIND_PACKAGE_SORT_DIRECTION + \ CMAKE_FIND_PACKAGE_SORT_ORDER + \ CMAKE_FIND_PACKAGE_TARGETS_GLOBAL + \ CMAKE_FIND_PACKAGE_WARN_NO_MODULE + \ CMAKE_FIND_ROOT_PATH + \ CMAKE_FIND_ROOT_PATH_MODE_INCLUDE + \ CMAKE_FIND_ROOT_PATH_MODE_LIBRARY + \ CMAKE_FIND_ROOT_PATH_MODE_PACKAGE + \ CMAKE_FIND_ROOT_PATH_MODE_PROGRAM + \ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH + \ CMAKE_FIND_USE_INSTALL_PREFIX + \ CMAKE_FIND_USE_CMAKE_PATH + \ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH + \ CMAKE_FIND_USE_INSTALL_PREFIX + \ CMAKE_FIND_USE_PACKAGE_REGISTRY + \ CMAKE_FIND_USE_PACKAGE_ROOT_PATH + \ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH + \ CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY + \ CMAKE_FOLDER + \ CMAKE_FRAMEWORK + \ CMAKE_FRAMEWORK_PATH + \ CMAKE_Fortran + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Fortran_ARCHIVE_APPEND + \ CMAKE_Fortran_ARCHIVE_CREATE + \ CMAKE_Fortran_ARCHIVE_FINISH + \ CMAKE_Fortran_BYTE_ORDER + \ CMAKE_Fortran_CLANG_TIDY + \ CMAKE_Fortran_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Fortran_COMPILER + \ CMAKE_Fortran_COMPILER_ABI + \ CMAKE_Fortran_COMPILER_AR + \ CMAKE_Fortran_COMPILER_ARCHITECTURE_ID + \ CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Fortran_COMPILER_FRONTEND_VARIANT + \ CMAKE_Fortran_COMPILER_ID + \ CMAKE_Fortran_COMPILER_LAUNCHER + \ CMAKE_Fortran_COMPILER_LOADED + \ CMAKE_Fortran_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Fortran_COMPILER_RANLIB + \ CMAKE_Fortran_COMPILER_TARGET + \ CMAKE_Fortran_COMPILER_VERSION + \ CMAKE_Fortran_COMPILER_VERSION_INTERNAL + \ CMAKE_Fortran_COMPILE_OBJECT + \ CMAKE_Fortran_CPPCHECK + \ CMAKE_Fortran_CPPLINT + \ CMAKE_Fortran_CREATE_SHARED_LIBRARY + \ CMAKE_Fortran_CREATE_SHARED_MODULE + \ CMAKE_Fortran_CREATE_STATIC_LIBRARY + \ CMAKE_Fortran_EXTENSIONS + \ CMAKE_Fortran_EXTENSIONS_DEFAULT + \ CMAKE_Fortran_FLAGS + \ CMAKE_Fortran_FLAGS_DEBUG + \ CMAKE_Fortran_FLAGS_DEBUG_INIT + \ CMAKE_Fortran_FLAGS_INIT + \ CMAKE_Fortran_FLAGS_MINSIZEREL + \ CMAKE_Fortran_FLAGS_MINSIZEREL_INIT + \ CMAKE_Fortran_FLAGS_RELEASE + \ CMAKE_Fortran_FLAGS_RELEASE_INIT + \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO + \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Fortran_FORMAT + \ CMAKE_Fortran_IGNORE_EXTENSIONS + \ CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Fortran_INCLUDE_WHAT_YOU_USE + \ CMAKE_Fortran_INIT + \ CMAKE_Fortran_LIBRARY_ARCHITECTURE + \ CMAKE_Fortran_LINKER_LAUNCHER + \ CMAKE_Fortran_LINKER_PREFERENCE + \ CMAKE_Fortran_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Fortran_LINKER_WRAPPER_FLAG + \ CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Fortran_LINK_EXECUTABLE + \ CMAKE_Fortran_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Fortran_LINK_LIBRARY_FLAG + \ CMAKE_Fortran_LINK_LIBRARY_SUFFIX + \ CMAKE_Fortran_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Fortran_MODDIR_DEFAULT + \ CMAKE_Fortran_MODDIR_FLAG + \ CMAKE_Fortran_MODOUT_FLAG + \ CMAKE_Fortran_MODULE_DIRECTORY + \ CMAKE_Fortran_OUTPUT_EXTENSION + \ CMAKE_Fortran_PLATFORM_ID + \ CMAKE_Fortran_PREPROCESS + \ CMAKE_Fortran_SIMULATE_ID + \ CMAKE_Fortran_SIMULATE_VERSION + \ CMAKE_Fortran_SIZEOF_DATA_PTR + \ CMAKE_Fortran_SOURCE_FILE_EXTENSIONS + \ CMAKE_Fortran_STANDARD + \ CMAKE_Fortran_STANDARD_DEFAULT + \ CMAKE_Fortran_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Fortran_STANDARD_LIBRARIES + \ CMAKE_Fortran_STANDARD_REQUIRED + \ CMAKE_Fortran_SUPPORTED + \ CMAKE_Fortran_VISIBILITY_PRESET + \ CMAKE_GENERATOR + \ CMAKE_GENERATOR_INSTANCE + \ CMAKE_GENERATOR_PLATFORM + \ CMAKE_GENERATOR_TOOLSET + \ CMAKE_GHS_NO_SOURCE_GROUP_FILE + \ CMAKE_GLOBAL_AUTOGEN_TARGET + \ CMAKE_GLOBAL_AUTOGEN_TARGET_NAME + \ CMAKE_GLOBAL_AUTORCC_TARGET + \ CMAKE_GLOBAL_AUTORCC_TARGET_NAME + \ CMAKE_GNUtoMS + \ CMAKE_HIP + \ CMAKE_HIP_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_HIP_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_HIP_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_HIP_ARCHITECTURES + \ CMAKE_HIP_ARCHIVE_APPEND + \ CMAKE_HIP_ARCHIVE_CREATE + \ CMAKE_HIP_ARCHIVE_FINISH + \ CMAKE_HIP_BYTE_ORDER + \ CMAKE_HIP_CLANG_TIDY + \ CMAKE_HIP_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_HIP_COMPILER + \ CMAKE_HIP_COMPILER_ABI + \ CMAKE_HIP_COMPILER_AR + \ CMAKE_HIP_COMPILER_ARCHITECTURE_ID + \ CMAKE_HIP_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_HIP_COMPILER_FRONTEND_VARIANT + \ CMAKE_HIP_COMPILER_ID + \ CMAKE_HIP_COMPILER_LAUNCHER + \ CMAKE_HIP_COMPILER_LOADED + \ CMAKE_HIP_COMPILER_PREDEFINES_COMMAND + \ CMAKE_HIP_COMPILER_RANLIB + \ CMAKE_HIP_COMPILER_TARGET + \ CMAKE_HIP_COMPILER_VERSION + \ CMAKE_HIP_COMPILER_VERSION_INTERNAL + \ CMAKE_HIP_COMPILE_FEATURES + \ CMAKE_HIP_COMPILE_OBJECT + \ CMAKE_HIP_CPPCHECK + \ CMAKE_HIP_CPPLINT + \ CMAKE_HIP_CREATE_SHARED_LIBRARY + \ CMAKE_HIP_CREATE_SHARED_MODULE + \ CMAKE_HIP_CREATE_STATIC_LIBRARY + \ CMAKE_HIP_EXTENSIONS + \ CMAKE_HIP_EXTENSIONS_DEFAULT + \ CMAKE_HIP_FLAGS + \ CMAKE_HIP_FLAGS_DEBUG + \ CMAKE_HIP_FLAGS_DEBUG_INIT + \ CMAKE_HIP_FLAGS_INIT + \ CMAKE_HIP_FLAGS_MINSIZEREL + \ CMAKE_HIP_FLAGS_MINSIZEREL_INIT + \ CMAKE_HIP_FLAGS_RELEASE + \ CMAKE_HIP_FLAGS_RELEASE_INIT + \ CMAKE_HIP_FLAGS_RELWITHDEBINFO + \ CMAKE_HIP_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_HIP_IGNORE_EXTENSIONS + \ CMAKE_HIP_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_LIBRARIES + \ CMAKE_HIP_INCLUDE_WHAT_YOU_USE + \ CMAKE_HIP_INIT + \ CMAKE_HIP_LIBRARY_ARCHITECTURE + \ CMAKE_HIP_LINKER_LAUNCHER + \ CMAKE_HIP_LINKER_PREFERENCE + \ CMAKE_HIP_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_HIP_LINKER_WRAPPER_FLAG + \ CMAKE_HIP_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_HIP_LINK_EXECUTABLE + \ CMAKE_HIP_LINK_LIBRARY_FILE_FLAG + \ CMAKE_HIP_LINK_LIBRARY_FLAG + \ CMAKE_HIP_LINK_LIBRARY_SUFFIX + \ CMAKE_HIP_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_HIP_OUTPUT_EXTENSION + \ CMAKE_HIP_PLATFORM_ID + \ CMAKE_HIP_SIMULATE_ID + \ CMAKE_HIP_SIMULATE_VERSION + \ CMAKE_HIP_SIZEOF_DATA_PTR + \ CMAKE_HIP_SOURCE_FILE_EXTENSIONS + \ CMAKE_HIP_STANDARD + \ CMAKE_HIP_STANDARD_DEFAULT + \ CMAKE_HIP_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_HIP_STANDARD_LIBRARIES + \ CMAKE_HIP_STANDARD_REQUIRED + \ CMAKE_HIP_SUPPORTED + \ CMAKE_HIP_VISIBILITY_PRESET + \ CMAKE_HOME_DIRECTORY + \ CMAKE_HOST_APPLE + \ CMAKE_HOST_BSD + \ CMAKE_HOST_LINUX + \ CMAKE_HOST_SOLARIS + \ CMAKE_HOST_SYSTEM + \ CMAKE_HOST_SYSTEM_NAME + \ CMAKE_HOST_SYSTEM_PROCESSOR + \ CMAKE_HOST_SYSTEM_VERSION + \ CMAKE_HOST_UNIX + \ CMAKE_HOST_WIN32 + \ CMAKE_IGNORE_PATH + \ CMAKE_IGNORE_PREFIX_PATH + \ CMAKE_IMPORT_LIBRARY_PREFIX + \ CMAKE_IMPORT_LIBRARY_SUFFIX + \ CMAKE_INCLUDE_CURRENT_DIR + \ CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE + \ CMAKE_INCLUDE_DIRECTORIES_BEFORE + \ CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE + \ CMAKE_INCLUDE_PATH + \ CMAKE_INSTALL_DEFAULT_COMPONENT_NAME + \ CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS + \ CMAKE_INSTALL_MESSAGE + \ CMAKE_INSTALL_NAME_DIR + \ CMAKE_INSTALL_PREFIX + \ CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT + \ CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH + \ CMAKE_INSTALL_RPATH + \ CMAKE_INSTALL_RPATH_USE_LINK_PATH + \ CMAKE_INTERNAL_PLATFORM_ABI + \ CMAKE_INTERPROCEDURAL_OPTIMIZATION + \ CMAKE_IOS_INSTALL_COMBINED + \ CMAKE_ISPC_HEADER_DIRECTORY + \ CMAKE_ISPC_HEADER_SUFFIX + \ CMAKE_ISPC_INSTRUCTION_SETS + \ CMAKE_JOB_POOLS + \ CMAKE_JOB_POOL_COMPILE + \ CMAKE_JOB_POOL_LINK + \ CMAKE_JOB_POOL_PRECOMPILE_HEADER + \ CMAKE_Java + \ CMAKE_Java_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Java_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Java_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Java_ARCHIVE_APPEND + \ CMAKE_Java_ARCHIVE_CREATE + \ CMAKE_Java_ARCHIVE_FINISH + \ CMAKE_Java_BYTE_ORDER + \ CMAKE_Java_CLANG_TIDY + \ CMAKE_Java_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Java_COMPILER + \ CMAKE_Java_COMPILER_ABI + \ CMAKE_Java_COMPILER_AR + \ CMAKE_Java_COMPILER_ARCHITECTURE_ID + \ CMAKE_Java_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Java_COMPILER_FRONTEND_VARIANT + \ CMAKE_Java_COMPILER_ID + \ CMAKE_Java_COMPILER_LAUNCHER + \ CMAKE_Java_COMPILER_LOADED + \ CMAKE_Java_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Java_COMPILER_RANLIB + \ CMAKE_Java_COMPILER_TARGET + \ CMAKE_Java_COMPILER_VERSION + \ CMAKE_Java_COMPILER_VERSION_INTERNAL + \ CMAKE_Java_COMPILE_OBJECT + \ CMAKE_Java_CPPCHECK + \ CMAKE_Java_CPPLINT + \ CMAKE_Java_CREATE_SHARED_LIBRARY + \ CMAKE_Java_CREATE_SHARED_MODULE + \ CMAKE_Java_CREATE_STATIC_LIBRARY + \ CMAKE_Java_EXTENSIONS + \ CMAKE_Java_EXTENSIONS_DEFAULT + \ CMAKE_Java_FLAGS + \ CMAKE_Java_FLAGS_DEBUG + \ CMAKE_Java_FLAGS_DEBUG_INIT + \ CMAKE_Java_FLAGS_INIT + \ CMAKE_Java_FLAGS_MINSIZEREL + \ CMAKE_Java_FLAGS_MINSIZEREL_INIT + \ CMAKE_Java_FLAGS_RELEASE + \ CMAKE_Java_FLAGS_RELEASE_INIT + \ CMAKE_Java_FLAGS_RELWITHDEBINFO + \ CMAKE_Java_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Java_IGNORE_EXTENSIONS + \ CMAKE_Java_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Java_INCLUDE_WHAT_YOU_USE + \ CMAKE_Java_INIT + \ CMAKE_Java_LIBRARY_ARCHITECTURE + \ CMAKE_Java_LINKER_LAUNCHER + \ CMAKE_Java_LINKER_PREFERENCE + \ CMAKE_Java_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Java_LINKER_WRAPPER_FLAG + \ CMAKE_Java_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Java_LINK_EXECUTABLE + \ CMAKE_Java_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Java_LINK_LIBRARY_FLAG + \ CMAKE_Java_LINK_LIBRARY_SUFFIX + \ CMAKE_Java_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Java_OUTPUT_EXTENSION + \ CMAKE_Java_PLATFORM_ID + \ CMAKE_Java_SIMULATE_ID + \ CMAKE_Java_SIMULATE_VERSION + \ CMAKE_Java_SIZEOF_DATA_PTR + \ CMAKE_Java_SOURCE_FILE_EXTENSIONS + \ CMAKE_Java_STANDARD + \ CMAKE_Java_STANDARD_DEFAULT + \ CMAKE_Java_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Java_STANDARD_LIBRARIES + \ CMAKE_Java_STANDARD_REQUIRED + \ CMAKE_Java_SUPPORTED + \ CMAKE_Java_VISIBILITY_PRESET + \ CMAKE_KATE_FILES_MODE + \ CMAKE_KATE_MAKE_ARGUMENTS + \ CMAKE_LIBRARY_ARCHITECTURE + \ CMAKE_LIBRARY_ARCHITECTURE_REGEX + \ CMAKE_LIBRARY_OUTPUT_DIRECTORY + \ CMAKE_LIBRARY_PATH + \ CMAKE_LIBRARY_PATH_FLAG + \ CMAKE_LINK_DEF_FILE_FLAG + \ CMAKE_LINK_DEPENDS_NO_SHARED + \ CMAKE_LINK_DEPENDS_USE_LINKER + \ CMAKE_LINK_DIRECTORIES_BEFORE + \ CMAKE_LINK_INTERFACE_LIBRARIES + \ CMAKE_LINK_LIBRARIES_ONLY_TARGETS + \ CMAKE_LINK_LIBRARY_FILE_FLAG + \ CMAKE_LINK_LIBRARY_FLAG + \ CMAKE_LINK_LIBRARY_SUFFIX + \ CMAKE_LINK_SEARCH_END_STATIC + \ CMAKE_LINK_SEARCH_START_STATIC + \ CMAKE_LINK_WHAT_YOU_USE + \ CMAKE_LINK_WHAT_YOU_USE_CHECK + \ CMAKE_MACOSX_BUNDLE + \ CMAKE_MACOSX_RPATH + \ CMAKE_MAJOR_VERSION + \ CMAKE_MAKE_PROGRAM + \ CMAKE_MATCH_COUNT + \ CMAKE_MAXIMUM_RECURSION_DEPTH + \ CMAKE_MESSAGE_CONTEXT + \ CMAKE_MESSAGE_CONTEXT_SHOW + \ CMAKE_MESSAGE_INDENT + \ CMAKE_MESSAGE_LOG_LEVEL + \ CMAKE_MFC_FLAG + \ CMAKE_MINIMUM_REQUIRED_VERSION + \ CMAKE_MINOR_VERSION + \ CMAKE_MODULE_LINKER_FLAGS + \ CMAKE_MODULE_LINKER_FLAGS_INIT + \ CMAKE_MODULE_PATH + \ CMAKE_MSVCIDE_RUN_PATH + \ CMAKE_MSVC_DEBUG_INFORMATION_FORMAT + \ CMAKE_MSVC_RUNTIME_LIBRARY + \ CMAKE_NETRC + \ CMAKE_NETRC_FILE + \ CMAKE_NINJA_OUTPUT_PATH_PREFIX + \ CMAKE_NOT_USING_CONFIG_FLAGS + \ CMAKE_NO_BUILTIN_CHRPATH + \ CMAKE_NO_SYSTEM_FROM_IMPORTED + \ CMAKE_OBJCXX_CLANG_TIDY + \ CMAKE_OBJCXX_EXTENSIONS + \ CMAKE_OBJCXX_LINKER_LAUNCHER + \ CMAKE_OBJCXX_STANDARD + \ CMAKE_OBJCXX_STANDARD_REQUIRED + \ CMAKE_OBJC_CLANG_TIDY + \ CMAKE_OBJC_EXTENSIONS + \ CMAKE_OBJC_LINKER_LAUNCHER + \ CMAKE_OBJC_STANDARD + \ CMAKE_OBJC_STANDARD_REQUIRED + \ CMAKE_OBJECT_PATH_MAX + \ CMAKE_OPTIMIZE_DEPENDENCIES + \ CMAKE_OSX_ARCHITECTURES + \ CMAKE_OSX_DEPLOYMENT_TARGET + \ CMAKE_OSX_SYSROOT + \ CMAKE_PARENT_LIST_FILE + \ CMAKE_PATCH_VERSION + \ CMAKE_PCH_INSTANTIATE_TEMPLATES + \ CMAKE_PCH_WARN_INVALID + \ CMAKE_PDB_OUTPUT_DIRECTORY + \ CMAKE_PLATFORM_NO_VERSIONED_SONAME + \ CMAKE_POSITION_INDEPENDENT_CODE + \ CMAKE_PREFIX_PATH + \ CMAKE_PROGRAM_PATH + \ CMAKE_PROJECT_DESCRIPTION + \ CMAKE_PROJECT_HOMEPAGE_URL + \ CMAKE_PROJECT_INCLUDE + \ CMAKE_PROJECT_INCLUDE_BEFORE + \ CMAKE_PROJECT_NAME + \ CMAKE_PROJECT_TOP_LEVEL_INCLUDES + \ CMAKE_PROJECT_VERSION + \ CMAKE_PROJECT_VERSION_MAJOR + \ CMAKE_PROJECT_VERSION_MINOR + \ CMAKE_PROJECT_VERSION_PATCH + \ CMAKE_PROJECT_VERSION_TWEAK + \ CMAKE_RANLIB + \ CMAKE_RC + \ CMAKE_RC_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_RC_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_RC_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_RC_ARCHIVE_APPEND + \ CMAKE_RC_ARCHIVE_CREATE + \ CMAKE_RC_ARCHIVE_FINISH + \ CMAKE_RC_BYTE_ORDER + \ CMAKE_RC_CLANG_TIDY + \ CMAKE_RC_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_RC_COMPILER + \ CMAKE_RC_COMPILER_ABI + \ CMAKE_RC_COMPILER_AR + \ CMAKE_RC_COMPILER_ARCHITECTURE_ID + \ CMAKE_RC_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_RC_COMPILER_FRONTEND_VARIANT + \ CMAKE_RC_COMPILER_ID + \ CMAKE_RC_COMPILER_LAUNCHER + \ CMAKE_RC_COMPILER_LOADED + \ CMAKE_RC_COMPILER_PREDEFINES_COMMAND + \ CMAKE_RC_COMPILER_RANLIB + \ CMAKE_RC_COMPILER_TARGET + \ CMAKE_RC_COMPILER_VERSION + \ CMAKE_RC_COMPILER_VERSION_INTERNAL + \ CMAKE_RC_COMPILE_OBJECT + \ CMAKE_RC_CPPCHECK + \ CMAKE_RC_CPPLINT + \ CMAKE_RC_CREATE_SHARED_LIBRARY + \ CMAKE_RC_CREATE_SHARED_MODULE + \ CMAKE_RC_CREATE_STATIC_LIBRARY + \ CMAKE_RC_EXTENSIONS + \ CMAKE_RC_EXTENSIONS_DEFAULT + \ CMAKE_RC_FLAGS + \ CMAKE_RC_FLAGS_DEBUG + \ CMAKE_RC_FLAGS_DEBUG_INIT + \ CMAKE_RC_FLAGS_INIT + \ CMAKE_RC_FLAGS_MINSIZEREL + \ CMAKE_RC_FLAGS_MINSIZEREL_INIT + \ CMAKE_RC_FLAGS_RELEASE + \ CMAKE_RC_FLAGS_RELEASE_INIT + \ CMAKE_RC_FLAGS_RELWITHDEBINFO + \ CMAKE_RC_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_RC_IGNORE_EXTENSIONS + \ CMAKE_RC_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_LIBRARIES + \ CMAKE_RC_INCLUDE_WHAT_YOU_USE + \ CMAKE_RC_INIT + \ CMAKE_RC_LIBRARY_ARCHITECTURE + \ CMAKE_RC_LINKER_LAUNCHER + \ CMAKE_RC_LINKER_PREFERENCE + \ CMAKE_RC_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_RC_LINKER_WRAPPER_FLAG + \ CMAKE_RC_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_RC_LINK_EXECUTABLE + \ CMAKE_RC_LINK_LIBRARY_FILE_FLAG + \ CMAKE_RC_LINK_LIBRARY_FLAG + \ CMAKE_RC_LINK_LIBRARY_SUFFIX + \ CMAKE_RC_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_RC_OUTPUT_EXTENSION + \ CMAKE_RC_PLATFORM_ID + \ CMAKE_RC_SIMULATE_ID + \ CMAKE_RC_SIMULATE_VERSION + \ CMAKE_RC_SIZEOF_DATA_PTR + \ CMAKE_RC_SOURCE_FILE_EXTENSIONS + \ CMAKE_RC_STANDARD + \ CMAKE_RC_STANDARD_DEFAULT + \ CMAKE_RC_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_RC_STANDARD_LIBRARIES + \ CMAKE_RC_STANDARD_REQUIRED + \ CMAKE_RC_SUPPORTED + \ CMAKE_RC_VISIBILITY_PRESET + \ CMAKE_ROOT + \ CMAKE_RULE_MESSAGES + \ CMAKE_RUNTIME_OUTPUT_DIRECTORY + \ CMAKE_SCRIPT_MODE_FILE + \ CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS + \ CMAKE_SHARED_LIBRARY_PREFIX + \ CMAKE_SHARED_LIBRARY_SUFFIX + \ CMAKE_SHARED_LINKER_FLAGS + \ CMAKE_SHARED_LINKER_FLAGS_INIT + \ CMAKE_SHARED_MODULE_PREFIX + \ CMAKE_SHARED_MODULE_SUFFIX + \ CMAKE_SIZEOF_VOID_P + \ CMAKE_SKIP_BUILD_RPATH + \ CMAKE_SKIP_INSTALL_ALL_DEPENDENCY + \ CMAKE_SKIP_INSTALL_RPATH + \ CMAKE_SKIP_INSTALL_RULES + \ CMAKE_SKIP_RPATH + \ CMAKE_SKIP_TEST_ALL_DEPENDENCY + \ CMAKE_SOURCE_DIR + \ CMAKE_STAGING_PREFIX + \ CMAKE_STATIC_LIBRARY_PREFIX + \ CMAKE_STATIC_LIBRARY_SUFFIX + \ CMAKE_STATIC_LINKER_FLAGS + \ CMAKE_STATIC_LINKER_FLAGS_INIT + \ CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS + \ CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE + \ CMAKE_SUPPRESS_REGENERATION + \ CMAKE_SYSROOT + \ CMAKE_SYSROOT_COMPILE + \ CMAKE_SYSROOT_LINK + \ CMAKE_SYSTEM + \ CMAKE_SYSTEM_APPBUNDLE_PATH + \ CMAKE_SYSTEM_FRAMEWORK_PATH + \ CMAKE_SYSTEM_IGNORE_PATH + \ CMAKE_SYSTEM_IGNORE_PREFIX_PATH + \ CMAKE_SYSTEM_INCLUDE_PATH + \ CMAKE_SYSTEM_LIBRARY_PATH + \ CMAKE_SYSTEM_NAME + \ CMAKE_SYSTEM_PREFIX_PATH + \ CMAKE_SYSTEM_PROCESSOR + \ CMAKE_SYSTEM_PROGRAM_PATH + \ CMAKE_SYSTEM_VERSION + \ CMAKE_Swift + \ CMAKE_Swift_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Swift_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Swift_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Swift_ARCHIVE_APPEND + \ CMAKE_Swift_ARCHIVE_CREATE + \ CMAKE_Swift_ARCHIVE_FINISH + \ CMAKE_Swift_BYTE_ORDER + \ CMAKE_Swift_CLANG_TIDY + \ CMAKE_Swift_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Swift_COMPILER + \ CMAKE_Swift_COMPILER_ABI + \ CMAKE_Swift_COMPILER_AR + \ CMAKE_Swift_COMPILER_ARCHITECTURE_ID + \ CMAKE_Swift_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Swift_COMPILER_FRONTEND_VARIANT + \ CMAKE_Swift_COMPILER_ID + \ CMAKE_Swift_COMPILER_LAUNCHER + \ CMAKE_Swift_COMPILER_LOADED + \ CMAKE_Swift_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Swift_COMPILER_RANLIB + \ CMAKE_Swift_COMPILER_TARGET + \ CMAKE_Swift_COMPILER_VERSION + \ CMAKE_Swift_COMPILER_VERSION_INTERNAL + \ CMAKE_Swift_COMPILE_OBJECT + \ CMAKE_Swift_CPPCHECK + \ CMAKE_Swift_CPPLINT + \ CMAKE_Swift_CREATE_SHARED_LIBRARY + \ CMAKE_Swift_CREATE_SHARED_MODULE + \ CMAKE_Swift_CREATE_STATIC_LIBRARY + \ CMAKE_Swift_EXTENSIONS + \ CMAKE_Swift_EXTENSIONS_DEFAULT + \ CMAKE_Swift_FLAGS + \ CMAKE_Swift_FLAGS_DEBUG + \ CMAKE_Swift_FLAGS_DEBUG_INIT + \ CMAKE_Swift_FLAGS_INIT + \ CMAKE_Swift_FLAGS_MINSIZEREL + \ CMAKE_Swift_FLAGS_MINSIZEREL_INIT + \ CMAKE_Swift_FLAGS_RELEASE + \ CMAKE_Swift_FLAGS_RELEASE_INIT + \ CMAKE_Swift_FLAGS_RELWITHDEBINFO + \ CMAKE_Swift_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Swift_IGNORE_EXTENSIONS + \ CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Swift_INCLUDE_WHAT_YOU_USE + \ CMAKE_Swift_INIT + \ CMAKE_Swift_LANGUAGE_VERSION + \ CMAKE_Swift_LIBRARY_ARCHITECTURE + \ CMAKE_Swift_LINKER_LAUNCHER + \ CMAKE_Swift_LINKER_PREFERENCE + \ CMAKE_Swift_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Swift_LINKER_WRAPPER_FLAG + \ CMAKE_Swift_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Swift_LINK_EXECUTABLE + \ CMAKE_Swift_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Swift_LINK_LIBRARY_FLAG + \ CMAKE_Swift_LINK_LIBRARY_SUFFIX + \ CMAKE_Swift_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Swift_MODULE_DIRECTORY + \ CMAKE_Swift_NUM_THREADS + \ CMAKE_Swift_OUTPUT_EXTENSION + \ CMAKE_Swift_PLATFORM_ID + \ CMAKE_Swift_SIMULATE_ID + \ CMAKE_Swift_SIMULATE_VERSION + \ CMAKE_Swift_SIZEOF_DATA_PTR + \ CMAKE_Swift_SOURCE_FILE_EXTENSIONS + \ CMAKE_Swift_STANDARD + \ CMAKE_Swift_STANDARD_DEFAULT + \ CMAKE_Swift_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Swift_STANDARD_LIBRARIES + \ CMAKE_Swift_STANDARD_REQUIRED + \ CMAKE_Swift_SUPPORTED + \ CMAKE_Swift_VISIBILITY_PRESET + \ CMAKE_TASKING_TOOLSET + \ CMAKE_TLS_CAINFO + \ CMAKE_TLS_VERIFY + \ CMAKE_TOOLCHAIN_FILE + \ CMAKE_TRY_COMPILE_CONFIGURATION + \ CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES + \ CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + \ CMAKE_TRY_COMPILE_TARGET_TYPE + \ CMAKE_TWEAK_VERSION + \ CMAKE_UNITY_BUILD + \ CMAKE_UNITY_BUILD_BATCH_SIZE + \ CMAKE_UNITY_BUILD_UNIQUE_ID + \ CMAKE_USER_MAKE_RULES_OVERRIDE + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_MASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_NASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_C + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CSharp + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CUDA + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CXX + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran + \ CMAKE_USER_MAKE_RULES_OVERRIDE_HIP + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Java + \ CMAKE_USER_MAKE_RULES_OVERRIDE_RC + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Swift + \ CMAKE_USE_RELATIVE_PATHS + \ CMAKE_VERBOSE_MAKEFILE + \ CMAKE_VERIFY_INTERFACE_HEADER_SETS + \ CMAKE_VERSION + \ CMAKE_VISIBILITY_INLINES_HIDDEN + \ CMAKE_VS_DEBUGGER_COMMAND + \ CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS + \ CMAKE_VS_DEBUGGER_ENVIRONMENT + \ CMAKE_VS_DEBUGGER_WORKING_DIRECTORY + \ CMAKE_VS_DEVENV_COMMAND + \ CMAKE_VS_GLOBALS + \ CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD + \ CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD + \ CMAKE_VS_INTEL_Fortran_PROJECT_VERSION + \ CMAKE_VS_JUST_MY_CODE_DEBUGGING + \ CMAKE_VS_MSBUILD_COMMAND + \ CMAKE_VS_NO_COMPILE_BATCHING + \ CMAKE_VS_NUGET_PACKAGE_RESTORE + \ CMAKE_VS_NsightTegra_VERSION + \ CMAKE_VS_PLATFORM_NAME + \ CMAKE_VS_PLATFORM_NAME_DEFAULT + \ CMAKE_VS_PLATFORM_TOOLSET + \ CMAKE_VS_PLATFORM_TOOLSET_CUDA + \ CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR + \ CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE + \ CMAKE_VS_PLATFORM_TOOLSET_VERSION + \ CMAKE_VS_SDK_EXCLUDE_DIRECTORIES + \ CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES + \ CMAKE_VS_SDK_INCLUDE_DIRECTORIES + \ CMAKE_VS_SDK_LIBRARY_DIRECTORIES + \ CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES + \ CMAKE_VS_SDK_REFERENCE_DIRECTORIES + \ CMAKE_VS_SDK_SOURCE_DIRECTORIES + \ CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIER + \ CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION + \ CMAKE_VS_TARGET_FRAMEWORK_VERSION + \ CMAKE_VS_VERSION_BUILD_NUMBER + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM + \ CMAKE_VS_WINRT_BY_DEFAULT + \ CMAKE_WARN_DEPRECATED + \ CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION + \ CMAKE_WATCOM_RUNTIME_LIBRARY + \ CMAKE_WIN32_EXECUTABLE + \ CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS + \ CMAKE_XCODE_BUILD_SYSTEM + \ CMAKE_XCODE_GENERATE_SCHEME + \ CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY + \ CMAKE_XCODE_LINK_BUILD_PHASE_MODE + \ CMAKE_XCODE_PLATFORM_TOOLSET + \ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER + \ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN + \ CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER + \ CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS + \ CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ CMAKE_XCODE_SCHEME_ENVIRONMENT + \ CMAKE_XCODE_SCHEME_GUARD_MALLOC + \ CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION + \ CMAKE_XCODE_SCHEME_LAUNCH_MODE + \ CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP + \ CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES + \ CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE + \ CMAKE_XCODE_SCHEME_MALLOC_STACK + \ CMAKE_XCODE_SCHEME_THREAD_SANITIZER + \ CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP + \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER + \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION + \ CMAKE_XCODE_SCHEME_WORKING_DIRECTORY + \ CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS + \ CMAKE_XCODE_XCCONFIG + \ CPACK_ABSOLUTE_DESTINATION_FILES + \ CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY + \ CPACK_CUSTOM_INSTALL_VARIABLES + \ CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION + \ CPACK_INCLUDE_TOPLEVEL_DIRECTORY + \ CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS + \ CPACK_PACKAGING_INSTALL_PREFIX + \ CPACK_SET_DESTDIR + \ CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION + \ CTEST_BINARY_DIRECTORY + \ CTEST_BUILD_COMMAND + \ CTEST_BUILD_NAME + \ CTEST_BZR_COMMAND + \ CTEST_BZR_UPDATE_OPTIONS + \ CTEST_CHANGE_ID + \ CTEST_CHECKOUT_COMMAND + \ CTEST_CONFIGURATION_TYPE + \ CTEST_CONFIGURE_COMMAND + \ CTEST_COVERAGE_COMMAND + \ CTEST_COVERAGE_EXTRA_FLAGS + \ CTEST_CURL_OPTIONS + \ CTEST_CUSTOM_COVERAGE_EXCLUDE + \ CTEST_CUSTOM_ERROR_EXCEPTION + \ CTEST_CUSTOM_ERROR_MATCH + \ CTEST_CUSTOM_ERROR_POST_CONTEXT + \ CTEST_CUSTOM_ERROR_PRE_CONTEXT + \ CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE + \ CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS + \ CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS + \ CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE + \ CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION + \ CTEST_CUSTOM_MEMCHECK_IGNORE + \ CTEST_CUSTOM_POST_MEMCHECK + \ CTEST_CUSTOM_POST_TEST + \ CTEST_CUSTOM_PRE_MEMCHECK + \ CTEST_CUSTOM_PRE_TEST + \ CTEST_CUSTOM_TESTS_IGNORE + \ CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION + \ CTEST_CUSTOM_WARNING_EXCEPTION + \ CTEST_CUSTOM_WARNING_MATCH + \ CTEST_CVS_CHECKOUT + \ CTEST_CVS_COMMAND + \ CTEST_CVS_UPDATE_OPTIONS + \ CTEST_DROP_LOCATION + \ CTEST_DROP_METHOD + \ CTEST_DROP_SITE + \ CTEST_DROP_SITE_CDASH + \ CTEST_DROP_SITE_PASSWORD + \ CTEST_DROP_SITE_USER + \ CTEST_EXTRA_COVERAGE_GLOB + \ CTEST_GIT_COMMAND + \ CTEST_GIT_INIT_SUBMODULES + \ CTEST_GIT_UPDATE_CUSTOM + \ CTEST_GIT_UPDATE_OPTIONS + \ CTEST_HG_COMMAND + \ CTEST_HG_UPDATE_OPTIONS + \ CTEST_LABELS_FOR_SUBPROJECTS + \ CTEST_MEMORYCHECK_COMMAND + \ CTEST_MEMORYCHECK_COMMAND_OPTIONS + \ CTEST_MEMORYCHECK_SANITIZER_OPTIONS + \ CTEST_MEMORYCHECK_SUPPRESSIONS_FILE + \ CTEST_MEMORYCHECK_TYPE + \ CTEST_NIGHTLY_START_TIME + \ CTEST_P4_CLIENT + \ CTEST_P4_COMMAND + \ CTEST_P4_OPTIONS + \ CTEST_P4_UPDATE_OPTIONS + \ CTEST_RESOURCE_SPEC_FILE + \ CTEST_RUN_CURRENT_SCRIPT + \ CTEST_SCP_COMMAND + \ CTEST_SCRIPT_DIRECTORY + \ CTEST_SITE + \ CTEST_SOURCE_DIRECTORY + \ CTEST_SUBMIT_INACTIVITY_TIMEOUT + \ CTEST_SUBMIT_URL + \ CTEST_SVN_COMMAND + \ CTEST_SVN_OPTIONS + \ CTEST_SVN_UPDATE_OPTIONS + \ CTEST_TEST_LOAD + \ CTEST_TEST_TIMEOUT + \ CTEST_TRIGGER_SITE + \ CTEST_UPDATE_COMMAND + \ CTEST_UPDATE_OPTIONS + \ CTEST_UPDATE_VERSION_ONLY + \ CTEST_UPDATE_VERSION_OVERRIDE + \ CTEST_USE_LAUNCHERS + \ CYGWIN + \ DOXYGEN_ABBREVIATE_BRIEF + \ DOXYGEN_ALIASES + \ DOXYGEN_ALLEXTERNALS + \ DOXYGEN_ALLOW_UNICODE_NAMES + \ DOXYGEN_ALPHABETICAL_INDEX + \ DOXYGEN_ALWAYS_DETAILED_SEC + \ DOXYGEN_AUTOLINK_SUPPORT + \ DOXYGEN_BINARY_TOC + \ DOXYGEN_BRIEF_MEMBER_DESC + \ DOXYGEN_BUILTIN_STL_SUPPORT + \ DOXYGEN_CALLER_GRAPH + \ DOXYGEN_CALL_GRAPH + \ DOXYGEN_CASE_SENSE_NAMES + \ DOXYGEN_CHM_FILE + \ DOXYGEN_CHM_INDEX_ENCODING + \ DOXYGEN_CITE_BIB_FILES + \ DOXYGEN_CLANG_ASSISTED_PARSING + \ DOXYGEN_CLANG_DATABASE_PATH + \ DOXYGEN_CLANG_OPTIONS + \ DOXYGEN_CLASS_DIAGRAMS + \ DOXYGEN_CLASS_GRAPH + \ DOXYGEN_COLLABORATION_GRAPH + \ DOXYGEN_COLS_IN_ALPHA_INDEX + \ DOXYGEN_COMPACT_LATEX + \ DOXYGEN_COMPACT_RTF + \ DOXYGEN_CPP_CLI_SUPPORT + \ DOXYGEN_CREATE_SUBDIRS + \ DOXYGEN_DIAFILE_DIRS + \ DOXYGEN_DIA_PATH + \ DOXYGEN_DIRECTORY_GRAPH + \ DOXYGEN_DISABLE_INDEX + \ DOXYGEN_DISTRIBUTE_GROUP_DOC + \ DOXYGEN_DOCBOOK_OUTPUT + \ DOXYGEN_DOCBOOK_PROGRAMLISTING + \ DOXYGEN_DOCSET_BUNDLE_ID + \ DOXYGEN_DOCSET_FEEDNAME + \ DOXYGEN_DOCSET_PUBLISHER_ID + \ DOXYGEN_DOCSET_PUBLISHER_NAME + \ DOXYGEN_DOTFILE_DIRS + \ DOXYGEN_DOT_CLEANUP + \ DOXYGEN_DOT_FONTNAME + \ DOXYGEN_DOT_FONTPATH + \ DOXYGEN_DOT_FONTSIZE + \ DOXYGEN_DOT_GRAPH_MAX_NODES + \ DOXYGEN_DOT_IMAGE_FORMAT + \ DOXYGEN_DOT_MULTI_TARGETS + \ DOXYGEN_DOT_NUM_THREADS + \ DOXYGEN_DOT_PATH + \ DOXYGEN_DOT_TRANSPARENT + \ DOXYGEN_DOXYFILE_ENCODING + \ DOXYGEN_ECLIPSE_DOC_ID + \ DOXYGEN_ENABLED_SECTIONS + \ DOXYGEN_ENABLE_PREPROCESSING + \ DOXYGEN_ENUM_VALUES_PER_LINE + \ DOXYGEN_EXAMPLE_PATH + \ DOXYGEN_EXAMPLE_PATTERNS + \ DOXYGEN_EXAMPLE_RECURSIVE + \ DOXYGEN_EXCLUDE + \ DOXYGEN_EXCLUDE_PATTERNS + \ DOXYGEN_EXCLUDE_SYMBOLS + \ DOXYGEN_EXCLUDE_SYMLINKS + \ DOXYGEN_EXPAND_AS_DEFINED + \ DOXYGEN_EXPAND_ONLY_PREDEF + \ DOXYGEN_EXTENSION_MAPPING + \ DOXYGEN_EXTERNAL_GROUPS + \ DOXYGEN_EXTERNAL_PAGES + \ DOXYGEN_EXTERNAL_SEARCH + \ DOXYGEN_EXTERNAL_SEARCH_ID + \ DOXYGEN_EXTRACT_ALL + \ DOXYGEN_EXTRACT_ANON_NSPACES + \ DOXYGEN_EXTRACT_LOCAL_CLASSES + \ DOXYGEN_EXTRACT_LOCAL_METHODS + \ DOXYGEN_EXTRACT_PACKAGE + \ DOXYGEN_EXTRACT_PRIVATE + \ DOXYGEN_EXTRACT_PRIV_VIRTUAL + \ DOXYGEN_EXTRACT_STATIC + \ DOXYGEN_EXTRA_PACKAGES + \ DOXYGEN_EXTRA_SEARCH_MAPPINGS + \ DOXYGEN_EXT_LINKS_IN_WINDOW + \ DOXYGEN_FILE_PATTERNS + \ DOXYGEN_FILE_VERSION_FILTER + \ DOXYGEN_FILTER_PATTERNS + \ DOXYGEN_FILTER_SOURCE_FILES + \ DOXYGEN_FILTER_SOURCE_PATTERNS + \ DOXYGEN_FORCE_LOCAL_INCLUDES + \ DOXYGEN_FORMULA_FONTSIZE + \ DOXYGEN_FORMULA_TRANSPARENT + \ DOXYGEN_FULL_PATH_NAMES + \ DOXYGEN_GENERATE_AUTOGEN_DEF + \ DOXYGEN_GENERATE_BUGLIST + \ DOXYGEN_GENERATE_CHI + \ DOXYGEN_GENERATE_DEPRECATEDLIST + \ DOXYGEN_GENERATE_DOCBOOK + \ DOXYGEN_GENERATE_DOCSET + \ DOXYGEN_GENERATE_ECLIPSEHELP + \ DOXYGEN_GENERATE_HTML + \ DOXYGEN_GENERATE_HTMLHELP + \ DOXYGEN_GENERATE_LATEX + \ DOXYGEN_GENERATE_LEGEND + \ DOXYGEN_GENERATE_MAN + \ DOXYGEN_GENERATE_PERLMOD + \ DOXYGEN_GENERATE_QHP + \ DOXYGEN_GENERATE_RTF + \ DOXYGEN_GENERATE_TAGFILE + \ DOXYGEN_GENERATE_TESTLIST + \ DOXYGEN_GENERATE_TODOLIST + \ DOXYGEN_GENERATE_TREEVIEW + \ DOXYGEN_GENERATE_XML + \ DOXYGEN_GRAPHICAL_HIERARCHY + \ DOXYGEN_GROUP_GRAPHS + \ DOXYGEN_GROUP_NESTED_COMPOUNDS + \ DOXYGEN_HAVE_DOT + \ DOXYGEN_HHC_LOCATION + \ DOXYGEN_HIDE_COMPOUND_REFERENCE + \ DOXYGEN_HIDE_FRIEND_COMPOUNDS + \ DOXYGEN_HIDE_IN_BODY_DOCS + \ DOXYGEN_HIDE_SCOPE_NAMES + \ DOXYGEN_HIDE_UNDOC_CLASSES + \ DOXYGEN_HIDE_UNDOC_MEMBERS + \ DOXYGEN_HIDE_UNDOC_RELATIONS + \ DOXYGEN_HTML_COLORSTYLE_GAMMA + \ DOXYGEN_HTML_COLORSTYLE_HUE + \ DOXYGEN_HTML_COLORSTYLE_SAT + \ DOXYGEN_HTML_DYNAMIC_MENUS + \ DOXYGEN_HTML_DYNAMIC_SECTIONS + \ DOXYGEN_HTML_EXTRA_FILES + \ DOXYGEN_HTML_EXTRA_STYLESHEET + \ DOXYGEN_HTML_FILE_EXTENSION + \ DOXYGEN_HTML_FOOTER + \ DOXYGEN_HTML_HEADER + \ DOXYGEN_HTML_INDEX_NUM_ENTRIES + \ DOXYGEN_HTML_OUTPUT + \ DOXYGEN_HTML_STYLESHEET + \ DOXYGEN_HTML_TIMESTAMP + \ DOXYGEN_IDL_PROPERTY_SUPPORT + \ DOXYGEN_IGNORE_PREFIX + \ DOXYGEN_IMAGE_PATH + \ DOXYGEN_INCLUDED_BY_GRAPH + \ DOXYGEN_INCLUDE_FILE_PATTERNS + \ DOXYGEN_INCLUDE_GRAPH + \ DOXYGEN_INCLUDE_PATH + \ DOXYGEN_INHERIT_DOCS + \ DOXYGEN_INLINE_GROUPED_CLASSES + \ DOXYGEN_INLINE_INFO + \ DOXYGEN_INLINE_INHERITED_MEMB + \ DOXYGEN_INLINE_SIMPLE_STRUCTS + \ DOXYGEN_INLINE_SOURCES + \ DOXYGEN_INPUT + \ DOXYGEN_INPUT_ENCODING + \ DOXYGEN_INPUT_FILTER + \ DOXYGEN_INTERACTIVE_SVG + \ DOXYGEN_INTERNAL_DOCS + \ DOXYGEN_JAVADOC_AUTOBRIEF + \ DOXYGEN_JAVADOC_BANNER + \ DOXYGEN_LATEX_BATCHMODE + \ DOXYGEN_LATEX_BIB_STYLE + \ DOXYGEN_LATEX_CMD_NAME + \ DOXYGEN_LATEX_EMOJI_DIRECTORY + \ DOXYGEN_LATEX_EXTRA_FILES + \ DOXYGEN_LATEX_EXTRA_STYLESHEET + \ DOXYGEN_LATEX_FOOTER + \ DOXYGEN_LATEX_HEADER + \ DOXYGEN_LATEX_HIDE_INDICES + \ DOXYGEN_LATEX_MAKEINDEX_CMD + \ DOXYGEN_LATEX_OUTPUT + \ DOXYGEN_LATEX_SOURCE_CODE + \ DOXYGEN_LATEX_TIMESTAMP + \ DOXYGEN_LAYOUT_FILE + \ DOXYGEN_LOOKUP_CACHE_SIZE + \ DOXYGEN_MACRO_EXPANSION + \ DOXYGEN_MAKEINDEX_CMD_NAME + \ DOXYGEN_MAN_EXTENSION + \ DOXYGEN_MAN_LINKS + \ DOXYGEN_MAN_OUTPUT + \ DOXYGEN_MAN_SUBDIR + \ DOXYGEN_MARKDOWN_SUPPORT + \ DOXYGEN_MATHJAX_CODEFILE + \ DOXYGEN_MATHJAX_EXTENSIONS + \ DOXYGEN_MATHJAX_FORMAT + \ DOXYGEN_MATHJAX_RELPATH + \ DOXYGEN_MAX_DOT_GRAPH_DEPTH + \ DOXYGEN_MAX_INITIALIZER_LINES + \ DOXYGEN_MSCFILE_DIRS + \ DOXYGEN_MULTILINE_CPP_IS_BRIEF + \ DOXYGEN_OPTIMIZE_FOR_FORTRAN + \ DOXYGEN_OPTIMIZE_OUTPUT_FOR_C + \ DOXYGEN_OPTIMIZE_OUTPUT_JAVA + \ DOXYGEN_OPTIMIZE_OUTPUT_SLICE + \ DOXYGEN_OPTIMIZE_OUTPUT_VHDL + \ DOXYGEN_OUTPUT_DIRECTORY + \ DOXYGEN_OUTPUT_LANGUAGE + \ DOXYGEN_OUTPUT_TEXT_DIRECTION + \ DOXYGEN_PAPER_TYPE + \ DOXYGEN_PDF_HYPERLINKS + \ DOXYGEN_PERLMOD_LATEX + \ DOXYGEN_PERLMOD_MAKEVAR_PREFIX + \ DOXYGEN_PERLMOD_PRETTY + \ DOXYGEN_PLANTUML_CFG_FILE + \ DOXYGEN_PLANTUML_INCLUDE_PATH + \ DOXYGEN_PLANTUML_JAR_PATH + \ DOXYGEN_PREDEFINED + \ DOXYGEN_PROJECT_BRIEF + \ DOXYGEN_PROJECT_LOGO + \ DOXYGEN_PROJECT_NAME + \ DOXYGEN_PROJECT_NUMBER + \ DOXYGEN_QCH_FILE + \ DOXYGEN_QHG_LOCATION + \ DOXYGEN_QHP_CUST_FILTER_ATTRS + \ DOXYGEN_QHP_CUST_FILTER_NAME + \ DOXYGEN_QHP_NAMESPACE + \ DOXYGEN_QHP_SECT_FILTER_ATTRS + \ DOXYGEN_QHP_VIRTUAL_FOLDER + \ DOXYGEN_QT_AUTOBRIEF + \ DOXYGEN_QUIET + \ DOXYGEN_RECURSIVE + \ DOXYGEN_REFERENCED_BY_RELATION + \ DOXYGEN_REFERENCES_LINK_SOURCE + \ DOXYGEN_REFERENCES_RELATION + \ DOXYGEN_REPEAT_BRIEF + \ DOXYGEN_RTF_EXTENSIONS_FILE + \ DOXYGEN_RTF_HYPERLINKS + \ DOXYGEN_RTF_OUTPUT + \ DOXYGEN_RTF_SOURCE_CODE + \ DOXYGEN_RTF_STYLESHEET_FILE + \ DOXYGEN_SEARCHDATA_FILE + \ DOXYGEN_SEARCHENGINE + \ DOXYGEN_SEARCHENGINE_URL + \ DOXYGEN_SEARCH_INCLUDES + \ DOXYGEN_SEPARATE_MEMBER_PAGES + \ DOXYGEN_SERVER_BASED_SEARCH + \ DOXYGEN_SHORT_NAMES + \ DOXYGEN_SHOW_FILES + \ DOXYGEN_SHOW_GROUPED_MEMB_INC + \ DOXYGEN_SHOW_INCLUDE_FILES + \ DOXYGEN_SHOW_NAMESPACES + \ DOXYGEN_SHOW_USED_FILES + \ DOXYGEN_SIP_SUPPORT + \ DOXYGEN_SKIP_FUNCTION_MACROS + \ DOXYGEN_SORT_BRIEF_DOCS + \ DOXYGEN_SORT_BY_SCOPE_NAME + \ DOXYGEN_SORT_GROUP_NAMES + \ DOXYGEN_SORT_MEMBERS_CTORS_1ST + \ DOXYGEN_SORT_MEMBER_DOCS + \ DOXYGEN_SOURCE_BROWSER + \ DOXYGEN_SOURCE_TOOLTIPS + \ DOXYGEN_STRICT_PROTO_MATCHING + \ DOXYGEN_STRIP_CODE_COMMENTS + \ DOXYGEN_STRIP_FROM_INC_PATH + \ DOXYGEN_STRIP_FROM_PATH + \ DOXYGEN_SUBGROUPING + \ DOXYGEN_TAB_SIZE + \ DOXYGEN_TAGFILES + \ DOXYGEN_TCL_SUBST + \ DOXYGEN_TEMPLATE_RELATIONS + \ DOXYGEN_TOC_EXPAND + \ DOXYGEN_TOC_INCLUDE_HEADINGS + \ DOXYGEN_TREEVIEW_WIDTH + \ DOXYGEN_TYPEDEF_HIDES_STRUCT + \ DOXYGEN_UML_LIMIT_NUM_FIELDS + \ DOXYGEN_UML_LOOK + \ DOXYGEN_USE_HTAGS + \ DOXYGEN_USE_MATHJAX + \ DOXYGEN_USE_MDFILE_AS_MAINPAGE + \ DOXYGEN_USE_PDFLATEX + \ DOXYGEN_VERBATIM_HEADERS + \ DOXYGEN_VERBATIM_VARS + \ DOXYGEN_VERSION + \ DOXYGEN_WARNINGS + \ DOXYGEN_WARN_AS_ERROR + \ DOXYGEN_WARN_FORMAT + \ DOXYGEN_WARN_IF_DOC_ERROR + \ DOXYGEN_WARN_IF_UNDOCUMENTED + \ DOXYGEN_WARN_LOGFILE + \ DOXYGEN_WARN_NO_PARAMDOC + \ DOXYGEN_XML_NS_MEMB_FILE_SCOPE + \ DOXYGEN_XML_OUTPUT + \ DOXYGEN_XML_PROGRAMLISTING + \ ENV + \ EXECUTABLE_OUTPUT_PATH + \ GHSMULTI + \ IOS + \ LIBRARY_OUTPUT_PATH + \ LINUX + \ MINGW + \ MSVC + \ MSVC10 + \ MSVC11 + \ MSVC12 + \ MSVC14 + \ MSVC60 + \ MSVC70 + \ MSVC71 + \ MSVC80 + \ MSVC90 + \ MSVC_IDE + \ MSVC_TOOLSET_VERSION + \ MSVC_VERSION + \ MSYS + \ PROJECT_BINARY_DIR + \ PROJECT_DESCRIPTION + \ PROJECT_HOMEPAGE_URL + \ PROJECT_IS_TOP_LEVEL + \ PROJECT_NAME + \ PROJECT_SOURCE_DIR + \ PROJECT_VERSION + \ PROJECT_VERSION_MAJOR + \ PROJECT_VERSION_MINOR + \ PROJECT_VERSION_PATCH + \ PROJECT_VERSION_TWEAK + \ UNIX + \ WIN32 + \ WINCE + \ WINDOWS_PHONE + \ WINDOWS_STORE + \ XCODE + \ XCODE_VERSION syn keyword cmakeModule contained \ ExternalProject + \ FetchContent syn keyword cmakeKWExternalProject contained - \ ALGO AWS BINARY_DIR BUILD_ALWAYS BUILD_BYPRODUCTS BUILD_COMMAND BUILD_IN_SOURCE CMAKE_ARGS CMAKE_CACHE_ARGS CMAKE_CACHE_DEFAULT_ARGS CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY COMMENT CONFIGURE_COMMAND CVS CVSROOT CVS_MODULE CVS_REPOSITORY CVS_TAG DEPENDEES DEPENDERS DEPENDS DOWNLOADED_FILE DOWNLOAD_COMMAND DOWNLOAD_DIR DOWNLOAD_NAME DOWNLOAD_NO_EXTRACT DOWNLOAD_NO_PROGRESS EP_BASE EP_INDEPENDENT_STEP_TARGETS EP_PREFIX EP_STEP_TARGETS EP_UPDATE_DISCONNECTED EXCLUDE_FROM_ALL FORCE GIT_CONFIG GIT_PROGRESS GIT_REMOTE_NAME GIT_REPOSITORY GIT_SHALLOW GIT_SUBMODULES GIT_TAG HG_REPOSITORY HG_TAG HTTP_HEADER HTTP_PASSWORD HTTP_USERNAME INDEPENDENT_STEP_TARGETS INSTALL_COMMAND INSTALL_DIR JOB_POOLS LIST_SEPARATOR LOG_ LOG_BUILD LOG_CONFIGURE LOG_DOWNLOAD LOG_INSTALL LOG_TEST LOG_UPDATE MAKE_EXE NAMES NOTE NO_DEPENDS PATCH_COMMAND PREFIX PROPERTY SOURCE_DIR SOURCE_SUBDIR STAMP_DIR STEP_TARGETS STRING SVN_PASSWORD SVN_REPOSITORY SVN_REVISION SVN_TRUST_CERT SVN_USERNAME TEST_AFTER_INSTALL TEST_BEFORE_INSTALL TEST_COMMAND TEST_EXCLUDE_FROM_MAIN TIMEOUT TLS_CAINFO TLS_VERIFY TMP_DIR TRUE UPDATE_COMMAND UPDATE_DISCONNECTED URL URL_HASH USES_TERMINAL_BUILD USES_TERMINAL_CONFIGURE USES_TERMINAL_DOWNLOAD USES_TERMINAL_INSTALL USES_TERMINAL_TEST USES_TERMINAL_UPDATE WORKING_DIRECTORY + \ AWS + \ BINARY_DIR + \ BUILD_ALWAYS + \ BUILD_BYPRODUCTS + \ BUILD_COMMAND + \ BUILD_IN_SOURCE + \ CHECKOUT + \ CMAKE_ARGS + \ CMAKE_CACHE_ARGS + \ CMAKE_CACHE_DEFAULT_ARGS + \ CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY + \ CMAKE_INSTALL_MODE + \ COMMENT + \ CONFIGURE_COMMAND + \ CONFIGURE_HANDLED_BY_BUILD + \ CVS + \ CVSROOT + \ CVS_MODULE + \ CVS_REPOSITORY + \ CVS_TAG + \ DEPENDEES + \ DEPENDERS + \ DEPENDS + \ DOWNLOADED_FILE + \ DOWNLOAD_COMMAND + \ DOWNLOAD_DIR + \ DOWNLOAD_EXTRACT_TIMESTAMP + \ DOWNLOAD_NAME + \ DOWNLOAD_NO_EXTRACT + \ DOWNLOAD_NO_PROGRESS + \ EP_BASE + \ EP_INDEPENDENT_STEP_TARGETS + \ EP_PREFIX + \ EP_STEP_TARGETS + \ EP_UPDATE_DISCONNECTED + \ EXCLUDE_FROM_ALL + \ FALSE + \ FORCE + \ GHS + \ GIT_CONFIG + \ GIT_PROGRESS + \ GIT_REMOTE_NAME + \ GIT_REMOTE_UPDATE_STRATEGY + \ GIT_REPOSITORY + \ GIT_SHALLOW + \ GIT_SUBMODULES + \ GIT_SUBMODULES_RECURSE + \ GIT_TAG + \ HG_REPOSITORY + \ HG_TAG + \ HTTP_HEADER + \ HTTP_PASSWORD + \ HTTP_USERNAME + \ IGNORED + \ INACTIVITY_TIMEOUT + \ INDEPENDENT_STEP_TARGETS + \ INSTALL_BYPRODUCTS + \ INSTALL_COMMAND + \ INSTALL_DIR + \ JOB_POOLS + \ LIST_SEPARATOR + \ LOG_BUILD + \ LOG_CONFIGURE + \ LOG_DIR + \ LOG_DOWNLOAD + \ LOG_INSTALL + \ LOG_MERGED_STDOUTERR + \ LOG_OUTPUT_ON_FAILURE + \ LOG_PATCH + \ LOG_TEST + \ LOG_UPDATE + \ MAKE_EXE + \ MULTI + \ NAMES + \ NETRC + \ NETRC_FILE + \ NOTE + \ NO_DEPENDS + \ OPTIONAL + \ PATCH_COMMAND + \ PREFIX + \ PROPERTY + \ REBASE + \ REBASE_CHECKOUT + \ REQUIRED + \ SOURCE_DIR + \ SOURCE_SUBDIR + \ STAMP_DIR + \ STEP_TARGETS + \ STRING + \ SVN_PASSWORD + \ SVN_REPOSITORY + \ SVN_REVISION + \ SVN_TRUST_CERT + \ SVN_USERNAME + \ TEST_AFTER_INSTALL + \ TEST_BEFORE_INSTALL + \ TEST_COMMAND + \ TEST_EXCLUDE_FROM_MAIN + \ TIMEOUT + \ TLS_CAINFO + \ TLS_VERIFY + \ TMP_DIR + \ TRUE + \ UPDATE_COMMAND + \ UPDATE_DISCONNECTED + \ URL + \ URL_HASH + \ URL_MD5 + \ USES_TERMINAL_BUILD + \ USES_TERMINAL_CONFIGURE + \ USES_TERMINAL_DOWNLOAD + \ USES_TERMINAL_INSTALL + \ USES_TERMINAL_PATCH + \ USES_TERMINAL_TEST + \ USES_TERMINAL_UPDATE + \ WORKING_DIRECTORY + +syn keyword cmakeKWFetchContent contained + \ ALWAYS + \ BINARY_DIR + \ BUILD_COMMAND + \ BYPASS_PROVIDER + \ CMAKE_PROJECT_ + \ CONFIGURE_COMMAND + \ COPY + \ CORRECT + \ DCMAKE_TOOLCHAIN_FILE + \ DESTINATION + \ DOWNLOAD_NO_EXTRACT + \ EXISTS + \ FETCHCONTENT_BASE_DIR + \ FETCHCONTENT_FULLY_DISCONNECTED + \ FETCHCONTENT_MAKEAVAILABLE_SERIAL + \ FETCHCONTENT_QUIET + \ FETCHCONTENT_SOURCE_DIR_ + \ FETCHCONTENT_TRY_FIND_PACKAGE_MODE + \ FETCHCONTENT_UPDATES_DISCONNECTED + \ FETCHCONTENT_UPDATES_DISCONNECTED_ + \ FIND_PACKAGE_ARGS + \ GIT_REPOSITORY + \ GIT_TAG + \ GLOBAL + \ GTEST_BOTH_LIBRARIES + \ GTEST_LIBRARIES + \ GTEST_MAIN_LIBRARIES + \ INSTALL_COMMAND + \ INTERNAL + \ NAME + \ NAMES + \ NEVER + \ NOTE + \ OFF + \ OPTIONAL + \ OPT_IN + \ OVERRIDE_FIND_PACKAGE + \ PACKAGE_VERSION_COMPATIBLE + \ PACKAGE_VERSION_EXACT + \ QUIET + \ SOURCE_SUBDIR + \ STREQUAL + \ SUBBUILD_DIR + \ SVN_REPOSITORY + \ SVN_REVISION + \ SYSTEM + \ TARGET + \ TEST_COMMAND + \ TRUE + \ URL + \ URL_HASH + \ VERIFY_INTERFACE_HEADER_SETS + \ WRITE + \ WRONG + \ _BINARY_DIR + \ _INCLUDE + \ _POPULATED + \ _SOURCE_DIR + +syn keyword cmakeKWadd_compile_definitions contained + \ COMPILE_DEFINITIONS + \ VAR syn keyword cmakeKWadd_compile_options contained + \ CMAKE_ + \ COMPILE_LANGUAGE \ COMPILE_OPTIONS + \ CONFIG + \ SHELL + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ syn keyword cmakeKWadd_custom_command contained - \ APPEND ARGS BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS DEPFILE GENERATED IMPLICIT_DEPENDS INCLUDE_DIRECTORIES JOIN MAIN_DEPENDENCY NOT OUTPUT POST_BUILD PRE_BUILD PRE_LINK SYMBOLIC TARGET_FILE TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY + \ APPEND + \ ARGS + \ BNF + \ BYPRODUCTS + \ CC + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ COMMENT + \ CONFIG + \ CROSSCOMPILING_EMULATOR + \ DEPENDS + \ DEPENDS_EXPLICIT_ONLY + \ DEPFILE + \ GENERATED + \ IMPLICIT_DEPENDS + \ INCLUDE_DIRECTORIES + \ JOB_POOL + \ JOB_POOLS + \ JOIN + \ MAIN_DEPENDENCY + \ MODULE + \ NOT + \ OUTPUT + \ PATH + \ POST_BUILD + \ PRE_BUILD + \ PRE_LINK + \ SYMBOLIC + \ TARGET_FILE + \ TARGET_LINKER_FILE + \ TARGET_PDB_FILE + \ TARGET_PROPERTY + \ TARGET_SONAME_FILE + \ USES_TERMINAL + \ VERBATIM + \ WORKING_DIRECTORY syn keyword cmakeKWadd_custom_target contained - \ ALL BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS GENERATED INCLUDE_DIRECTORIES JOIN SOURCES TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY + \ ALL + \ BYPRODUCTS + \ CC + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ COMMENT + \ CROSSCOMPILING_EMULATOR + \ DEPENDS + \ GENERATED + \ INCLUDE_DIRECTORIES + \ JOB_POOL + \ JOB_POOLS + \ JOIN + \ PATH + \ SOURCES + \ TARGET_FILE + \ TARGET_LINKER_FILE + \ TARGET_PDB_FILE + \ TARGET_PROPERTY + \ TARGET_SONAME_FILE + \ USES_TERMINAL + \ VERBATIM + \ WORKING_DIRECTORY syn keyword cmakeKWadd_definitions contained \ COMPILE_DEFINITIONS syn keyword cmakeKWadd_dependencies contained - \ DEPENDS OBJECT_DEPENDS + \ DEPENDS + \ OBJECT_DEPENDS syn keyword cmakeKWadd_executable contained - \ ALIAS CONFIG EXCLUDE_FROM_ALL GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ MACOSX_BUNDLE OUTPUT_NAME RUNTIME_OUTPUT_DIRECTORY TARGET + \ ALIAS + \ ALIAS_GLOBAL + \ CONFIG + \ EXCLUDE_FROM_ALL + \ GLOBAL + \ HEADER_FILE_ONLY + \ IMPORTED + \ IMPORTED_ + \ IMPORTED_LOCATION + \ IMPORTED_LOCATION_ + \ MACOSX_BUNDLE + \ OUTPUT_NAME + \ RUNTIME_OUTPUT_DIRECTORY + \ TARGET syn keyword cmakeKWadd_library contained - \ ALIAS ARCHIVE_OUTPUT_DIRECTORY CLI CONFIG DLL EXCLUDE_FROM_ALL FRAMEWORK GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ INTERFACE_ LIBRARY_OUTPUT_DIRECTORY MODULE OBJECT ON OUTPUT_NAME POSITION_INDEPENDENT_CODE POST_BUILD PRE_BUILD PRE_LINK RUNTIME_OUTPUT_DIRECTORY SHARED STATIC TARGET_OBJECTS UNKNOWN + \ ALIAS + \ ALIAS_GLOBAL + \ ARCHIVE_OUTPUT_DIRECTORY + \ CLI + \ CONFIG + \ DLL + \ EXCLUDE_FROM_ALL + \ FRAMEWORK + \ GLOBAL + \ HEADER_FILE_ONLY + \ HEADER_SETS + \ IMPORTED + \ IMPORTED_ + \ IMPORTED_IMPLIB + \ IMPORTED_IMPLIB_ + \ IMPORTED_LOCATION + \ IMPORTED_LOCATION_ + \ IMPORTED_NO_SONAME + \ IMPORTED_OBJECTS + \ IMPORTED_OBJECTS_ + \ IMPORTED_SONAME + \ INTERFACE + \ INTERFACE_ + \ INTERFACE_SOURCES + \ LC_ID_DYLIB + \ LIBRARY_OUTPUT_DIRECTORY + \ MODULE + \ OBJECT + \ ON + \ OUTPUT_NAME + \ POSITION_INDEPENDENT_CODE + \ POST_BUILD + \ PRE_BUILD + \ PRE_LINK + \ PRIVATE_HEADER + \ PUBLIC_HEADER + \ RUNTIME_OUTPUT_DIRECTORY + \ SHARED + \ SONAME + \ SOURCES + \ STATIC + \ TARGETS + \ TARGET_OBJECTS + \ TARGET_RUNTIME_DLLS + \ UNKNOWN + +syn keyword cmakeKWadd_link_options contained + \ CMAKE_ + \ CONFIG + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ DEVICE_LINK + \ GCC + \ HOST_LINK + \ LANG + \ LINKER + \ LINK_OPTIONS + \ SHELL + \ STATIC_LIBRARY_OPTIONS + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ + \ _LINKER_WRAPPER_FLAG + \ _LINKER_WRAPPER_FLAG_SEP syn keyword cmakeKWadd_subdirectory contained \ EXCLUDE_FROM_ALL + \ SYSTEM syn keyword cmakeKWadd_test contained - \ BUILD_TESTING COMMAND CONFIGURATIONS FAIL_REGULAR_EXPRESSION NAME PASS_REGULAR_EXPRESSION TARGET_FILE WILL_FAIL WORKING_DIRECTORY + \ BUILD_TESTING + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ CONFIGURATIONS + \ FAIL_REGULAR_EXPRESSION + \ NAME + \ OFF + \ PASS_REGULAR_EXPRESSION + \ SKIP_REGULAR_EXPRESSION + \ TARGET_FILE + \ WILL_FAIL + \ WILL_FALL + \ WORKING_DIRECTORY + +syn keyword cmakeKWblock contained + \ PARENT_SCOPE + \ POLICIES + \ PROPAGATE + \ PUSH + \ SCOPE_FOR + \ TRUE + \ VARIABLES syn keyword cmakeKWbuild_command contained - \ CONFIGURATION TARGET + \ CONFIGURATION + \ PARALLEL_LEVEL + \ TARGET -syn keyword cmakeKWbuild_name contained - \ CMAKE_CXX_COMPILER +syn keyword cmakeKWcmake_file_api contained + \ API + \ API_VERSION + \ BUILD_DIR + \ CMAKEFILES + \ CODEMODEL + \ COMMAND + \ CONFIG + \ QUERY + \ TOOLCHAINS syn keyword cmakeKWcmake_host_system_information contained - \ AVAILABLE_PHYSICAL_MEMORY AVAILABLE_VIRTUAL_MEMORY FQDN HAS_FPU HAS_MMX HAS_MMX_PLUS HAS_SERIAL_NUMBER HAS_SSE HAS_SSE_FP HAS_SSE_MMX HOSTNAME ID NUMBER_OF_LOGICAL_CORES NUMBER_OF_PHYSICAL_CORES OS_NAME OS_PLATFORM OS_RELEASE OS_VERSION PROCESSOR_DESCRIPTION PROCESSOR_NAME PROCESSOR_SERIAL_NUMBER QUERY RESULT TOTAL_PHYSICAL_MEMORY TOTAL_VIRTUAL_MEMORY + \ APPEND + \ AVAILABLE_PHYSICAL_MEMORY + \ AVAILABLE_VIRTUAL_MEMORY + \ BOTH + \ CMAKE_GET_OS_RELEASE_FALLBACK_CONTENT + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_ + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_ID + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_NAME + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_PRETTY_NAME + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_VERSION + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_VERSION_ID + \ CMAKE_GET_OS_RELEASE_FALLBACK_SCRIPTS + \ DISTRIB_INFO + \ DISTRIB_PRETTY_NAME + \ DISTRO + \ DISTRO_BUG_REPORT_URL + \ DISTRO_HOME_URL + \ DISTRO_ID + \ DISTRO_ID_LIKE + \ DISTRO_NAME + \ DISTRO_PRETTY_NAME + \ DISTRO_PRIVACY_POLICY_URL + \ DISTRO_SUPPORT_URL + \ DISTRO_UBUNTU_CODENAME + \ DISTRO_VERSION + \ DISTRO_VERSION_CODENAME + \ DISTRO_VERSION_ID + \ ERROR_VARIABLE + \ EXISTS + \ FQDN + \ HAS_FPU + \ HAS_MMX + \ HAS_MMX_PLUS + \ HAS_SERIAL_NUMBER + \ HAS_SSE + \ HAS_SSE_FP + \ HAS_SSE_MMX + \ HKCC + \ HKCR + \ HKCU + \ HKEY_CLASSES_ROOT + \ HKEY_CURRENT_CONFIG + \ HKEY_CURRENT_USER + \ HKEY_LOCAL_MACHINE + \ HKEY_USERS + \ HKLM + \ HKU + \ HOSTNAME + \ ID + \ LIMIT_COUNT + \ LISTS + \ LTS + \ MATCHES + \ NNN + \ NOT + \ NUMBER_OF_LOGICAL_CORES + \ NUMBER_OF_PHYSICAL_CORES + \ OS_NAME + \ OS_PLATFORM + \ OS_RELEASE + \ OS_VERSION + \ PRETTY_NAME + \ PROCESSOR_DESCRIPTION + \ PROCESSOR_NAME + \ PROCESSOR_SERIAL_NUMBER + \ QUERY + \ REG_DWORD + \ REG_EXPAND_SZ + \ REG_MULTI_SZ + \ REG_QWORD + \ REG_SZ + \ RESULT + \ SEPARATOR + \ SOFTWARE + \ STATUS + \ STRINGS + \ SUBKEYS + \ TARGET + \ TOTAL_PHYSICAL_MEMORY + \ TOTAL_VIRTUAL_MEMORY + \ VALUE_NAMES + \ VAR + \ VIEW + \ WINDOWS_REGISTRY + +syn keyword cmakeKWcmake_language contained + \ AND + \ ANY + \ APPEND + \ ARGN + \ BINARY_DIR + \ BYPASS_PROVIDER + \ CALL + \ CANCEL_CALL + \ CODE + \ COMMAND + \ COMMAND_ERROR_IS_FATAL + \ DCMAKE_PROJECT_TOP_LEVEL_INCLUDES + \ DEFER + \ DIRECTORY + \ EVAL + \ FALSE + \ FETCHCONTENT_MAKEAVAILABE_SERIAL + \ FETCHCONTENT_MAKEAVAILABLE_SERIAL + \ FETCHCONTENT_SOURCE_DIR_ + \ FETCHCONTENT_TRY_FIND_PACKAGE_MODE + \ FIND_PACKAGE + \ FIND_PACKAGE_ARGS + \ GET_CALL_IDS + \ GET_MESSAGE_LOG_LEVEL + \ GIT_REPOSITORY + \ GIT_SUBMODULES + \ GIT_TAG + \ ID_VAR + \ MATCHES + \ MYCOMP_PROVIDER_INSTALL_DIR + \ NEVER + \ NOT + \ OVERRIDE_FIND_PACKAGE + \ PATH + \ POP_BACK + \ QUIET + \ SET_DEPENDENCY_PROVIDER + \ SOURCE_DIR + \ STATUS + \ STREQUAL + \ SUPPORTED_METHODS + \ TRUE + \ VERSION + \ WRITE + \ _FOUND + \ _PATH syn keyword cmakeKWcmake_minimum_required contained - \ FATAL_ERROR VERSION + \ FATAL_ERROR + \ VERSION syn keyword cmakeKWcmake_parse_arguments contained - \ ARGN CONFIGURATIONS DESTINATION FALSE FAST FILES MY_INSTALL MY_INSTALL_CONFIGURATIONS MY_INSTALL_DESTINATION MY_INSTALL_FAST MY_INSTALL_OPTIONAL MY_INSTALL_RENAME MY_INSTALL_TARGETS MY_INSTALL_UNPARSED_ARGUMENTS OPTIONAL PARSE_ARGV RENAME TARGETS TRUE _UNPARSED_ARGUMENTS + \ ARGN + \ CONFIGURATIONS + \ DESTINATION + \ FALSE + \ FAST + \ FILES + \ MY_INSTALL + \ MY_INSTALL_CONFIGURATIONS + \ MY_INSTALL_DESTINATION + \ MY_INSTALL_FAST + \ MY_INSTALL_KEYWORDS_MISSING_VALUES + \ MY_INSTALL_OPTIONAL + \ MY_INSTALL_RENAME + \ MY_INSTALL_TARGETS + \ MY_INSTALL_UNPARSED_ARGUMENTS + \ OPTIONAL + \ PARSE_ARGV + \ RENAME + \ TARGETS + \ TRUE + \ UNDEFINED + \ _KEYWORDS_MISSING_VALUES + \ _UNPARSED_ARGUMENTS + +syn keyword cmakeKWcmake_path contained + \ ABSOLUTE_PATH + \ AND + \ APPEND + \ APPEND_STRING + \ BASE_DIRECTORY + \ COMPARE + \ CONVERT + \ EQUAL + \ EXTENSION + \ EXTENSION_DEF + \ FALSE + \ FILENAME + \ FILENAME_DEF + \ GET + \ GET_EXTENSION + \ GET_FILENAME + \ GET_PARENT_PATH + \ GET_RELATIVE_PART + \ GET_ROOT_DIRECTORY + \ GET_ROOT_NAME + \ GET_ROOT_PATH + \ GET_STEM + \ HASH + \ HAS_EXTENSION + \ HAS_FILENAME + \ HAS_PARENT_PATH + \ HAS_RELATIVE_PART + \ HAS_ROOT_DIRECTORY + \ HAS_ROOT_NAME + \ HAS_ROOT_PATH + \ HAS_STEM + \ IS_ABSOLUTE + \ IS_PREFIX + \ IS_RELATIVE + \ LAST_ONLY + \ MATCHES + \ NATIVE_PATH + \ NORMALIZE + \ NORMAL_PATH + \ NOT_EQUAL + \ OP + \ OUTPUT_VARIABLE + \ PARENT_PATH + \ REAL_PATH + \ RELATIVE_PART + \ RELATIVE_PATH + \ REMOVE_EXTENSION + \ REMOVE_FILENAME + \ REPLACE_EXTENSION + \ REPLACE_FILENAME + \ ROOT_DIRECTORY + \ ROOT_NAME + \ ROOT_PATH + \ SET + \ STEM + \ STREQUAL + \ TO_CMAKE_PATH_LIST + \ TO_NATIVE_PATH_LIST + \ TRUE + \ XOR syn keyword cmakeKWcmake_policy contained - \ CMAKE_POLICY_DEFAULT_CMP CMP GET NNNN NO_POLICY_SCOPE OLD POP PUSH SET VERSION + \ CMAKE_POLICY_DEFAULT_CMP + \ CMP + \ GET + \ NNNN + \ NO_POLICY_SCOPE + \ OLD + \ POLICIES + \ POP + \ PUSH + \ SCOPE_FOR + \ SET + \ VERSION syn keyword cmakeKWconfigure_file contained - \ COPYONLY CRLF DOS ESCAPE_QUOTES FOO_ENABLE FOO_STRING LF NEWLINE_STYLE VAR + \ COPYONLY + \ CRLF + \ DOS + \ ESCAPE_QUOTES + \ FILE_PERMISSIONS + \ FOO_ENABLE + \ FOO_STRING + \ GENERATE + \ INTERFACE + \ LF + \ NEWLINE_STYLE + \ NO_SOURCE_PERMISSIONS + \ PRIVATE + \ PUBLIC + \ SYSTEM + \ USE_SOURCE_PERMISSIONS + \ VAR syn keyword cmakeKWcreate_test_sourcelist contained - \ CMAKE_TESTDRIVER_AFTER_TESTMAIN CMAKE_TESTDRIVER_BEFORE_TESTMAIN EXTRA_INCLUDE FUNCTION + \ CMAKE_TESTDRIVER_AFTER_TESTMAIN + \ CMAKE_TESTDRIVER_BEFORE_TESTMAIN + \ EXTRA_INCLUDE + \ FUNCTION syn keyword cmakeKWctest_build contained - \ ALL_BUILD APPEND BUILD CAPTURE_CMAKE_ERROR CONFIGURATION CTEST_BUILD_CONFIGURATION CTEST_BUILD_FLAGS CTEST_BUILD_TARGET CTEST_PROJECT_NAME FLAGS NUMBER_ERRORS NUMBER_WARNINGS QUIET RETURN_VALUE TARGET + \ ALL_BUILD + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ CMAKE_BUILD_PARALLEL_LEVEL + \ CONFIGURATION + \ CTEST_BUILD_CONFIGURATION + \ CTEST_BUILD_FLAGS + \ CTEST_BUILD_TARGET + \ FLAGS + \ NUMBER_ERRORS + \ NUMBER_WARNINGS + \ PARALLEL_LEVEL + \ QUIET + \ RETURN_VALUE + \ TARGET syn keyword cmakeKWctest_configure contained - \ APPEND BUILD CAPTURE_CMAKE_ERROR OPTIONS QUIET RETURN_VALUE SOURCE + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ OPTIONS + \ QUIET + \ RETURN_VALUE + \ SOURCE syn keyword cmakeKWctest_coverage contained - \ APPEND BUILD CAPTURE_CMAKE_ERROR LABELS QUIET RETURN_VALUE + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ LABELS + \ QUIET + \ RETURN_VALUE syn keyword cmakeKWctest_memcheck contained - \ APPEND BUILD DEFECT_COUNT EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ DEFECT_COUNT + \ EXCLUDE + \ EXCLUDE_FIXTURE + \ EXCLUDE_FIXTURE_CLEANUP + \ EXCLUDE_FIXTURE_SETUP + \ EXCLUDE_LABEL + \ INCLUDE + \ INCLUDE_LABEL + \ OFF + \ ON + \ OUTPUT_JUNIT + \ PARALLEL_LEVEL + \ QUIET + \ REPEAT + \ RESOURCE_SPEC_FILE + \ RETURN_VALUE + \ SCHEDULE_RANDOM + \ START + \ STOP_ON_FAILURE + \ STOP_TIME + \ STRIDE + \ TEST_LOAD syn keyword cmakeKWctest_run_script contained - \ NEW_PROCESS RETURN_VALUE + \ NEW_PROCESS + \ RETURN_VALUE syn keyword cmakeKWctest_start contained - \ APPEND QUIET TAG TRACK + \ APPEND + \ GROUP + \ QUIET + \ TAG + \ TRACK syn keyword cmakeKWctest_submit contained - \ API CDASH_UPLOAD CDASH_UPLOAD_TYPE CTEST_EXTRA_SUBMIT_FILES CTEST_NOTES_FILES FILES HTTPHEADER PARTS QUIET RETRY_COUNT RETRY_DELAY RETURN_VALUE + \ API + \ BUILD_ID + \ CAPTURE_CMAKE_ERROR + \ CDASH_UPLOAD + \ CDASH_UPLOAD_TYPE + \ CTEST_EXTRA_SUBMIT_FILES + \ CTEST_NOTES_FILES + \ FILES + \ HTTPHEADER + \ PARTS + \ QUIET + \ RETRY_COUNT + \ RETRY_DELAY + \ RETURN_VALUE + \ SUBMIT_URL syn keyword cmakeKWctest_test contained - \ APPEND BUILD CAPTURE_CMAKE_ERROR CPU EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD + \ AFTER_TIMEOUT + \ APPEND + \ ATTACHED_FILES + \ ATTACHED_FILES_ON_FAIL + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ CPU + \ EXCLUDE + \ EXCLUDE_FIXTURE + \ EXCLUDE_FIXTURE_CLEANUP + \ EXCLUDE_FIXTURE_SETUP + \ EXCLUDE_LABEL + \ INCLUDE + \ INCLUDE_LABEL + \ LABELS + \ OFF + \ ON + \ OUTPUT_JUNIT + \ PARALLEL_LEVEL + \ QUIET + \ REPEAT + \ RESOURCE_SPEC_FILE + \ RETURN_VALUE + \ SCHEDULE_RANDOM + \ START + \ STOP_ON_FAILURE + \ STOP_TIME + \ STRIDE + \ TEST_LOAD + \ UNTIL_FAIL + \ UNTIL_PASS + \ URL + \ XML syn keyword cmakeKWctest_update contained - \ QUIET RETURN_VALUE SOURCE + \ CAPTURE_CMAKE_ERROR + \ QUIET + \ RETURN_VALUE + \ SOURCE syn keyword cmakeKWctest_upload contained - \ CAPTURE_CMAKE_ERROR FILES QUIET + \ CAPTURE_CMAKE_ERROR + \ FILES + \ QUIET syn keyword cmakeKWdefine_property contained - \ BRIEF_DOCS CACHED_VARIABLE DIRECTORY FULL_DOCS GLOBAL INHERITED PROPERTY SOURCE TARGET TEST VARIABLE + \ APPEND + \ APPEND_STRING + \ BRIEF_DOCS + \ CACHED_VARIABLE + \ CMAKE_ + \ DIRECTORY + \ FULL_DOCS + \ GLOBAL + \ INHERITED + \ INITIALIZE_FROM_VARIABLE + \ PROPERTY + \ SOURCE + \ TARGET + \ TEST + \ VARIABLE + \ _CMAKE_ + +syn keyword cmakeKWdoxygen_add_docs contained + \ ALL + \ COMMENT + \ USE_STAMP_FILE + \ WORKING_DIRECTORY syn keyword cmakeKWenable_language contained + \ ASM + \ ASM_MARMASM + \ ASM_MASM + \ ASM_NASM + \ ATT + \ CUDA + \ HIP + \ ISPC + \ OBJC + \ OBJCXX \ OPTIONAL +syn keyword cmakeKWenable_testing contained + \ BUILD_TESTING + syn keyword cmakeKWexec_program contained - \ ARGS OUTPUT_VARIABLE RETURN_VALUE + \ ARGS + \ OUTPUT_VARIABLE + \ RETURN_VALUE syn keyword cmakeKWexecute_process contained - \ ANSI AUTO COMMAND ENCODING ERROR_FILE ERROR_QUIET ERROR_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE INPUT_FILE NONE OEM OUTPUT_FILE OUTPUT_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE RESULTS_VARIABLE RESULT_VARIABLE TIMEOUT UTF VERBATIM WORKING_DIRECTORY + \ ANSI + \ ANY + \ AUTO + \ COMMAND + \ COMMAND_ECHO + \ COMMAND_ERROR_IS_FATAL + \ ECHO_ERROR_VARIABLE + \ ECHO_OUTPUT_VARIABLE + \ ENCODING + \ ERROR_FILE + \ ERROR_QUIET + \ ERROR_STRIP_TRAILING_WHITESPACE + \ ERROR_VARIABLE + \ INPUT_FILE + \ LAST + \ NONE + \ OEM + \ OUTPUT_FILE + \ OUTPUT_QUIET + \ OUTPUT_STRIP_TRAILING_WHITESPACE + \ OUTPUT_VARIABLE + \ POSIX + \ RESULTS_VARIABLE + \ RESULT_VARIABLE + \ RFC + \ STDERR + \ STDOUT + \ TIMEOUT + \ UTF + \ WORKING_DIRECTORY syn keyword cmakeKWexport contained - \ ANDROID_MK APPEND CONFIG EXPORT EXPORT_LINK_INTERFACE_LIBRARIES FILE IMPORTED IMPORTED_ NAMESPACE NDK OLD PACKAGE TARGETS + \ ANDROID_MK + \ APPEND + \ CONFIG + \ CXX_MODULES_DIRECTORY + \ EXPORT + \ EXPORT_LINK_INTERFACE_LIBRARIES + \ FILE + \ IMPORTED_ + \ NAMESPACE + \ NDK + \ OLD + \ PACKAGE + \ TARGETS syn keyword cmakeKWexport_library_dependencies contained - \ APPEND EXPORT INCLUDE LINK_INTERFACE_LIBRARIES SET + \ APPEND + \ EXPORT + \ INCLUDE + \ LINK_INTERFACE_LIBRARIES + \ SET syn keyword cmakeKWfile contained - \ ALGO APPEND ASCII CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY CONDITION CONFIG CONTENT COPY CR DESTINATION DIRECTORY_PERMISSIONS DOWNLOAD ENCODING EXCLUDE EXPECTED_HASH FILES_MATCHING FILE_PERMISSIONS FOLLOW_SYMLINKS FUNCTION GENERATE GLOB GLOB_RECURSE GUARD HASH HEX HTTPHEADER INACTIVITY_TIMEOUT INSTALL LENGTH_MAXIMUM LENGTH_MINIMUM LF LIMIT LIMIT_COUNT LIMIT_INPUT LIMIT_OUTPUT LIST_DIRECTORIES LOCK LOG MAKE_DIRECTORY NEWLINE_CONSUME NO_HEX_CONVERSION NO_SOURCE_PERMISSIONS OFFSET OLD PATTERN PROCESS READ REGEX RELATIVE RELATIVE_PATH RELEASE REMOVE REMOVE_RECURSE RENAME RESULT_VARIABLE SHOW_PROGRESS SSL STATUS STRINGS TIMESTAMP TLS_CAINFO TLS_VERIFY TO_CMAKE_PATH TO_NATIVE_PATH UPLOAD USERPWD USE_SOURCE_PERMISSIONS UTC UTF WRITE + \ APPEND + \ ARCHIVE_CREATE + \ ARCHIVE_EXTRACT + \ ASCII + \ BASE_DIRECTORY + \ BUNDLE_EXECUTABLE + \ CHMOD + \ CHMOD_RECURSE + \ CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND + \ CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM + \ CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL + \ CMAKE_INSTALL_MODE + \ CMAKE_OBJDUMP + \ CODE + \ COMPILE_FEATURES + \ COMPRESSION + \ COMPRESSION_LEVEL + \ CONDITION + \ CONFIGURE + \ CONFIGURE_DEPENDS + \ CONFLICTING_DEPENDENCIES_PREFIX + \ CONTENT + \ CONVERT + \ COPYONLY + \ COPY_FILE + \ COPY_ON_ERROR + \ CREATE_LINK + \ CRLF + \ DESTINATION + \ DIRECTORIES + \ DIRECTORY_PERMISSIONS + \ DLL + \ DOS + \ DOWNLOAD + \ ENCODING + \ ESCAPE_QUOTES + \ EXECUTABLES + \ EXPAND_TILDE + \ EXPECTED_HASH + \ FILES_MATCHING + \ FILE_PERMISSIONS + \ FOLLOW_SYMLINKS + \ FOLLOW_SYMLINK_CHAIN + \ FORMAT + \ FUNCTION + \ GENERATE + \ GET_RUNTIME_DEPENDENCIES + \ GLOB + \ GLOB_RECURSE + \ GROUP_EXECUTE + \ GROUP_READ + \ GROUP_WRITE + \ GUARD + \ HASH + \ HEX + \ HOME + \ HTTPHEADER + \ IGNORED + \ INACTIVITY_TIMEOUT + \ INPUT + \ INPUT_MAY_BE_RECENT + \ INSTALL + \ IS_ABSOLUTE + \ LENGTH_MAXIMUM + \ LENGTH_MINIMUM + \ LF + \ LIBRARIES + \ LIMIT + \ LIMIT_COUNT + \ LIMIT_INPUT + \ LIMIT_OUTPUT + \ LIST_DIRECTORIES + \ LIST_ONLY + \ LOCK + \ LOG + \ MAKE_DIRECTORY + \ MODULES + \ MTIME + \ MYLIBRARY + \ NETRC + \ NETRC_FILE + \ NEWLINE_CONSUME + \ NEWLINE_STYLE + \ NOT + \ NO_HEX_CONVERSION + \ NO_REPLACE + \ NO_SOURCE_PERMISSIONS + \ OFFSET + \ ONLY + \ ONLY_IF_DIFFERENT + \ OPTIONAL + \ OUTPUT + \ OWNER_EXECUTE + \ OWNER_READ + \ OWNER_WRITE + \ PATHS + \ PATTERN + \ PATTERNS + \ PERMISSIONS + \ POST_EXCLUDE_FILES + \ POST_EXCLUDE_REGEXES + \ POST_INCLUDE_FILES + \ POST_INCLUDE_REGEXES + \ PRE_EXCLUDE_REGEXES + \ PRE_INCLUDE_REGEXES + \ PROCESS + \ RANGE_END + \ RANGE_START + \ READ + \ READ_SYMLINK + \ REAL_PATH + \ REGEX + \ RELATIVE + \ RELATIVE_PATH + \ RELEASE + \ REMOVE + \ REMOVE_RECURSE + \ RENAME + \ REQUIRED + \ RESOLVED_DEPENDENCIES_VAR + \ RESULT + \ RESULT_VARIABLE + \ RPATH + \ RUNPATH + \ RUNTIME_DEPENDENCY_SET + \ SCRIPT + \ SETGID + \ SETUID + \ SHARED + \ SHOW_PROGRESS + \ SIZE + \ SSL + \ STATIC + \ STATUS + \ STRINGS + \ SYMBOLIC + \ TARGET + \ TARGET_PROPERTY + \ TIMESTAMP + \ TLS_CAINFO + \ TLS_VERIFY + \ TOUCH + \ TOUCH_NOCREATE + \ TO_CMAKE_PATH + \ TO_CMAKE_PATH_LIST + \ TO_NATIVE_PATH + \ TO_NATIVE_PATH_LIST + \ UNRESOLVED_DEPENDENCIES_VAR + \ UPLOAD + \ URL + \ USERPROFILE + \ USERPWD + \ USE_SOURCE_PERMISSIONS + \ UTC + \ UTF + \ VERBOSE + \ WORLD_EXECUTE + \ WORLD_READ + \ WORLD_WRITE + \ WRITE + \ XZ + \ _FILENAMES syn keyword cmakeKWfind_file contained - \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ INCLUDE + \ MATCHES + \ NAMES + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR syn keyword cmakeKWfind_library contained - \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS LIB NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ LIB + \ MATCHES + \ NAMES + \ NAMES_PER_DIR + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR syn keyword cmakeKWfind_package contained - \ CMAKE_DISABLE_FIND_PACKAGE_ CMAKE_FIND_ROOT_PATH_BOTH COMPONENTS CONFIG CONFIGS DEC DVAR EXACT HINTS MODULE NAMES NATURAL NO_CMAKE_BUILDS_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_PATH NO_CMAKE_SYSTEM_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_MODULE NO_POLICY_SCOPE NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OPTIONAL_COMPONENTS OS PACKAGE_FIND_NAME PACKAGE_FIND_VERSION PACKAGE_FIND_VERSION_COUNT PACKAGE_FIND_VERSION_MAJOR PACKAGE_FIND_VERSION_MINOR PACKAGE_FIND_VERSION_PATCH PACKAGE_FIND_VERSION_TWEAK PACKAGE_VERSION PACKAGE_VERSION_COMPATIBLE PACKAGE_VERSION_EXACT PACKAGE_VERSION_UNSUITABLE PATHS PATH_SUFFIXES QUIET REQUIRED SET TRUE _CONFIG _CONSIDERED_CONFIGS _CONSIDERED_VERSIONS _DIR _FIND_COMPONENTS _FIND_QUIETLY _FIND_REQUIRED _FIND_REQUIRED_ _FIND_VERSION_EXACT _FOUND + \ ABI + \ BOTH + \ BUNDLE + \ BYPASS_PROVIDER + \ CATEGORY + \ CMAKE_DISABLE_FIND_PACKAGE_ + \ CMAKE_REQUIRE_FIND_PACKAGE_ + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ CMAKE_REQUIRE_FIND_PACKAGE_ + \ COMPONENTS + \ CONFIG + \ CONFIGS + \ DEC + \ DVAR + \ EXACT + \ EXCLUDE + \ FALSE + \ FIND_PACKAGE_VERSION_FORMAT + \ FRAMEWORK + \ GLOBAL + \ HINTS + \ HOST + \ INCLUDE + \ MODULE + \ NAMES + \ NATURAL + \ NO_CMAKE_BUILDS_PATH + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PACKAGE_REGISTRY + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PACKAGE_REGISTRY + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_MODULE + \ NO_PACKAGE_ROOT_PATH + \ NO_POLICY_SCOPE + \ NO_SYSTEM_ENVIRONMENT_PATH + \ OLD + \ ONLY_CMAKE_FIND_ROOT_PATH + \ OPTIONAL_COMPONENTS + \ PACKAGENAME + \ PACKAGE_FIND_NAME + \ PACKAGE_FIND_VERSION + \ PACKAGE_FIND_VERSION_COMPLETE + \ PACKAGE_FIND_VERSION_COUNT + \ PACKAGE_FIND_VERSION_MAJOR + \ PACKAGE_FIND_VERSION_MAX + \ PACKAGE_FIND_VERSION_MAX_COUNT + \ PACKAGE_FIND_VERSION_MAX_MAJOR + \ PACKAGE_FIND_VERSION_MAX_MINOR + \ PACKAGE_FIND_VERSION_MAX_PATCH + \ PACKAGE_FIND_VERSION_MAX_TWEAK + \ PACKAGE_FIND_VERSION_MINOR + \ PACKAGE_FIND_VERSION_MIN_COUNT + \ PACKAGE_FIND_VERSION_MIN_MAJOR + \ PACKAGE_FIND_VERSION_MIN_MINOR + \ PACKAGE_FIND_VERSION_MIN_PATCH + \ PACKAGE_FIND_VERSION_MIN_TWEAK + \ PACKAGE_FIND_VERSION_PATCH + \ PACKAGE_FIND_VERSION_RANGE + \ PACKAGE_FIND_VERSION_RANGE_MAX + \ PACKAGE_FIND_VERSION_RANGE_MIN + \ PACKAGE_FIND_VERSION_TWEAK + \ PACKAGE_VERSION_COMPATIBLE + \ PACKAGE_VERSION_EXACT + \ PACKAGE_VERSION_UNSUITABLE + \ PATHS + \ PATH_SUFFIXES + \ QUIET + \ REGISTRY_VIEW + \ REQUIRED + \ SET + \ TARGET + \ TRUE + \ VALUE + \ _CONFIG + \ _CONSIDERED_CONFIGS + \ _CONSIDERED_VERSIONS + \ _DIR + \ _FIND_COMPONENTS + \ _FIND_QUIETLY + \ _FIND_REGISTRY_VIEW + \ _FIND_REQUIRED + \ _FIND_REQUIRED_ + \ _FIND_VERSION_EXACT + \ _FOUND syn keyword cmakeKWfind_path contained - \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ INCLUDE + \ MATCHES + \ NAMES + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR syn keyword cmakeKWfind_program contained - \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ MATCHES + \ NAMES + \ NAMES_PER_DIR + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR syn keyword cmakeKWfltk_wrap_ui contained \ FLTK syn keyword cmakeKWforeach contained - \ ARGS IN ITEMS LISTS RANGE + \ APPEND + \ IN + \ ITEMS + \ LISTS + \ RANGE + \ STATUS + \ ZIP_LISTS syn keyword cmakeKWfunction contained - \ ARGC ARGN ARGS ARGV PARENT_SCOPE + \ ARGC + \ ARGN + \ ARGV + \ CALL + \ FOO + \ PARENT_SCOPE syn keyword cmakeKWget_cmake_property contained - \ COMPONENTS GLOBAL MACROS VAR VARIABLES + \ COMPONENTS + \ GLOBAL + \ MACROS + \ VARIABLES syn keyword cmakeKWget_directory_property contained - \ DEFINITION DIRECTORY + \ DEFINITION + \ DIRECTORY + \ INHERITED syn keyword cmakeKWget_filename_component contained - \ ABSOLUTE ARG_VAR BASE_DIR CACHE COMP DIRECTORY EXT NAME NAME_WE PATH PROGRAM PROGRAM_ARGS REALPATH VAR + \ ABSOLUTE + \ BASE_DIR + \ DIRECTORY + \ EXT + \ LAST_EXT + \ NAME + \ NAME_WE + \ NAME_WLE + \ PROGRAM + \ PROGRAM_ARGS + \ QUERY + \ REALPATH + \ REAL_PATH + \ WINDOWS_REGISTRY syn keyword cmakeKWget_property contained - \ BRIEF_DOCS CACHE DEFINED DIRECTORY FULL_DOCS GLOBAL INSTALL PROPERTY SET SOURCE TARGET TEST VARIABLE + \ BRIEF_DOCS + \ DEFINED + \ DIRECTORY + \ FULL_DOCS + \ GENERATED + \ GLOBAL + \ INSTALL + \ PROPERTY + \ SET + \ SOURCE + \ TARGET + \ TARGET_DIRECTORY + \ TEST + \ VARIABLE syn keyword cmakeKWget_source_file_property contained - \ LOCATION VAR + \ DIRECTORY + \ GENERATED + \ INHERITED + \ LOCATION + \ TARGET_DIRECTORY syn keyword cmakeKWget_target_property contained + \ INHERITED \ VAR syn keyword cmakeKWget_test_property contained + \ INHERITED \ VAR syn keyword cmakeKWif contained - \ ARGS CMAKE_MATCH_ CMP COMMAND DEFINED EQUAL EXISTS FALSE GREATER GREATER_EQUAL IGNORE IN_LIST IS_ABSOLUTE IS_DIRECTORY IS_NEWER_THAN IS_SYMLINK LESS LESS_EQUAL MATCHES NNNN NOT OFF OR POLICY STREQUAL STRGREATER STRGREATER_EQUAL STRLESS STRLESS_EQUAL TARGET TEST THEN TRUE VERSION_EQUAL VERSION_GREATER VERSION_GREATER_EQUAL VERSION_LESS VERSION_LESS_EQUAL YES + \ CMAKE_MATCH_ + \ CMP + \ COMMAND + \ COMPARE + \ DEFINED + \ EQUAL + \ EXISTS + \ FALSE + \ GREATER + \ GREATER_EQUAL + \ IGNORE + \ IN_LIST + \ IS_ABSOLUTE + \ IS_DIRECTORY + \ IS_NEWER_THAN + \ IS_SYMLINK + \ LESS + \ LESS_EQUAL + \ MATCHES + \ NNNN + \ NOT + \ OFF + \ OR + \ PATH_EQUAL + \ POLICY + \ STREQUAL + \ STRGREATER + \ STRGREATER_EQUAL + \ STRLESS + \ STRLESS_EQUAL + \ TARGET + \ TEST + \ TRUE + \ VERSION_EQUAL + \ VERSION_GREATER + \ VERSION_GREATER_EQUAL + \ VERSION_LESS + \ VERSION_LESS_EQUAL + \ YES syn keyword cmakeKWinclude contained - \ NO_POLICY_SCOPE OPTIONAL RESULT_VARIABLE + \ NO_POLICY_SCOPE + \ OPTIONAL + \ RESULT_VARIABLE syn keyword cmakeKWinclude_directories contained - \ AFTER BEFORE INCLUDE_DIRECTORIES ON SYSTEM + \ AFTER + \ BEFORE + \ INCLUDE_DIRECTORIES + \ ON + \ SYSTEM syn keyword cmakeKWinclude_external_msproject contained - \ GUID MAP_IMPORTED_CONFIG_ PLATFORM TYPE WIX + \ GUID + \ MAP_IMPORTED_CONFIG_ + \ PLATFORM + \ TYPE + \ WIX syn keyword cmakeKWinclude_guard contained - \ DIRECTORY GLOBAL TRUE __CURRENT_FILE_VAR__ + \ DIRECTORY + \ GLOBAL + \ TRUE + \ __CURRENT_FILE_VAR__ syn keyword cmakeKWinstall contained - \ ARCHIVE BUNDLE CODE COMPONENT CONFIGURATIONS CVS DESTDIR DESTINATION DIRECTORY DIRECTORY_PERMISSIONS DLL EXCLUDE_FROM_ALL EXPORT EXPORT_ANDROID_MK EXPORT_LINK_INTERFACE_LIBRARIES FILES FILES_MATCHING FILE_PERMISSIONS FRAMEWORK GROUP_EXECUTE GROUP_READ GROUP_WRITE IMPORTED_ INCLUDES INSTALL_PREFIX INTERFACE_INCLUDE_DIRECTORIES LIBRARY MACOSX_BUNDLE MESSAGE_NEVER NAMELINK_ONLY NAMELINK_SKIP NAMESPACE NDK OBJECTS OPTIONAL OWNER_EXECUTE OWNER_READ OWNER_WRITE PATTERN PERMISSIONS POST_INSTALL_SCRIPT PRE_INSTALL_SCRIPT PRIVATE_HEADER PROGRAMS PUBLIC_HEADER REGEX RENAME RESOURCE RUNTIME SCRIPT SETGID SETUID SOVERSION TARGETS TRUE USE_SOURCE_PERMISSIONS VERSION WORLD_EXECUTE WORLD_READ WORLD_WRITE + \ AFTER + \ AIX + \ ALL_COMPONENTS + \ APT + \ ARCHIVE + \ BEFORE + \ BUILD_TYPE + \ BUNDLE + \ BUNDLE_EXECUTABLE + \ CMAKE_INSTALL_BINDIR + \ CMAKE_INSTALL_DATADIR + \ CMAKE_INSTALL_DATAROOTDIR + \ CMAKE_INSTALL_DOCDIR + \ CMAKE_INSTALL_INCLUDEDIR + \ CMAKE_INSTALL_INFODIR + \ CMAKE_INSTALL_LIBDIR + \ CMAKE_INSTALL_LOCALEDIR + \ CMAKE_INSTALL_LOCALSTATEDIR + \ CMAKE_INSTALL_MANDIR + \ CMAKE_INSTALL_MODE + \ CMAKE_INSTALL_RUNSTATEDIR + \ CMAKE_INSTALL_SBINDIR + \ CMAKE_INSTALL_SHARESTATEDIR + \ CMAKE_INSTALL_SYSCONFDIR + \ CODE + \ COMPONENT + \ CONFIGURATIONS + \ CVS + \ CXX_MODULES_BMI + \ CXX_MODULES_DIRECTORY + \ DATA + \ DATAROOT + \ DBUILD_TYPE + \ DCOMPONENT + \ DESTDIR + \ DESTINATION + \ DIRECTORY + \ DIRECTORY_PERMISSIONS + \ DLL + \ DOC + \ ENABLE_EXPORTS + \ EXCLUDE_FROM_ALL + \ EXECUTABLES + \ EXPORT + \ EXPORT_ANDROID_MK + \ EXPORT_LINK_INTERFACE_LIBRARIES + \ EXPORT_NAME + \ FILES + \ FILES_MATCHING + \ FILE_PERMISSIONS + \ FILE_SET + \ FRAMEWORK + \ GET_RUNTIME_DEPENDENCIES + \ GROUP_EXECUTE + \ GROUP_READ + \ GROUP_WRITE + \ HEADERS + \ IMPORTED_RUNTIME_ARTIFACTS + \ INCLUDES + \ INFO + \ INSTALL_PREFIX + \ INTERFACE + \ INTERFACE_INCLUDE_DIRECTORIES + \ LIBRARY + \ LOCALE + \ LOCALSTATE + \ MACOSX_BUNDLE + \ MAN + \ MESSAGE_NEVER + \ NAMELINK_COMPONENT + \ NAMELINK_ONLY + \ NAMELINK_SKIP + \ NAMESPACE + \ NDK + \ OBJECTS + \ OPTIONAL + \ OWNER_EXECUTE + \ OWNER_READ + \ OWNER_WRITE + \ PATTERN + \ PERMISSIONS + \ POST_EXCLUDE_FILES + \ POST_EXCLUDE_REGEXES + \ POST_INCLUDE_FILES + \ POST_INCLUDE_REGEXES + \ POST_INSTALL_SCRIPT + \ PRE_EXCLUDE_REGEXES + \ PRE_INCLUDE_REGEXES + \ PRE_INSTALL_SCRIPT + \ PRIVATE_HEADER + \ PROGRAMS + \ PROPERTIES + \ PUBLIC_HEADER + \ RENAME + \ RESOURCE + \ RPM + \ RUNSTATE + \ RUNTIME_DEPENDENCIES + \ RUNTIME_DEPENDENCY_SET + \ SBIN + \ SCRIPT + \ SETGID + \ SETUID + \ SHAREDSTATE + \ SOVERSION + \ STATIC + \ SYSCONF + \ TARGETS + \ TRUE + \ TYPE + \ USE_SOURCE_PERMISSIONS + \ VERSION + \ WORLD_EXECUTE + \ WORLD_READ + \ WORLD_WRITE syn keyword cmakeKWinstall_files contained - \ FILES GLOB + \ FILES + \ GLOB syn keyword cmakeKWinstall_programs contained - \ FILES GLOB PROGRAMS TARGETS + \ FILES + \ GLOB + \ PROGRAMS + \ TARGETS syn keyword cmakeKWinstall_targets contained - \ DLL RUNTIME_DIRECTORY TARGETS + \ DLL + \ RUNTIME_DIRECTORY + +syn keyword cmakeKWlink_directories contained + \ AFTER + \ BEFORE + \ LINK_DIRECTORIES + \ ON + \ ORIGIN + \ RPATH syn keyword cmakeKWlist contained - \ APPEND CACHE EXCLUDE FILTER FIND GET INCLUDE INSERT INTERNAL LENGTH LIST NOTES PARENT_SCOPE REGEX REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM REVERSE SORT + \ ACTION + \ APPEND + \ ASCENDING + \ CASE + \ COMPARE + \ DESCENDING + \ EXCLUDE + \ FILE_BASENAME + \ FILTER + \ FIND + \ GENEX_STRIP + \ GET + \ INCLUDE + \ INSENSITIVE + \ INSERT + \ INTERNAL + \ JOIN + \ LENGTH + \ NATURAL + \ ORDER + \ OUTPUT_VARIABLE + \ PARENT_SCOPE + \ POP_BACK + \ POP_FRONT + \ PREPEND + \ REGEX + \ REMOVE_AT + \ REMOVE_DUPLICATES + \ REMOVE_ITEM + \ REPLACE + \ REVERSE + \ SELECTOR + \ SENSITIVE + \ SORT + \ STRING + \ STRIP + \ SUBLIST + \ TOLOWER + \ TOUPPER + \ TRANSFORM + \ TRANSFORM_APPEND + \ TRANSFORM_GENEX_STRIP + \ TRANSFORM_REPLACE + \ TRANSFORM_STRIP + \ TRANSFORM_TOLOWER syn keyword cmakeKWload_cache contained - \ EXCLUDE INCLUDE_INTERNALS READ_WITH_PREFIX + \ EXCLUDE + \ INCLUDE_INTERNALS + \ READ_WITH_PREFIX syn keyword cmakeKWload_command contained - \ CMAKE_LOADED_COMMAND_ COMMAND_NAME + \ CMAKE_LOADED_COMMAND_ + \ COMMAND_NAME syn keyword cmakeKWmacro contained - \ ARGC ARGN ARGS ARGV DEFINED GREATER LISTS NOT _BAR _FOO - -syn keyword cmakeKWmake_directory contained - \ MAKE_DIRECTORY + \ ARGC + \ ARGN + \ ARGV + \ CALL + \ DEFINED + \ FOO + \ GREATER + \ LISTS + \ NOT syn keyword cmakeKWmark_as_advanced contained - \ CLEAR FORCE VAR + \ CLEAR + \ FORCE syn keyword cmakeKWmath contained \ EXPR + \ HEXADECIMAL + \ OUTPUT_FORMAT syn keyword cmakeKWmessage contained - \ AUTHOR_WARNING DEPRECATION FATAL_ERROR GUI SEND_ERROR STATUS WARNING + \ APPEND + \ AUTHOR_WARNING + \ CHECK_ + \ CHECK_FAIL + \ CHECK_PASS + \ CHECK_START + \ CONFIGURE_LOG + \ DEBUG + \ DEFINED + \ DEPRECATION + \ FATAL_ERROR + \ GET_MESSAGE_LOG_LEVEL + \ GUI + \ INTERNAL + \ MY_CHECK_RESULT + \ NOTICE + \ POP_BACK + \ SEND_ERROR + \ STATUS + \ TRACE + \ VERBOSE + \ WARNING syn keyword cmakeKWoption contained - \ OFF ON + \ OFF syn keyword cmakeKWproject contained - \ CMAKE_PROJECT_ DESCRIPTION LANGUAGES NAME NONE PROJECT VERSION _BINARY_DIR _INCLUDE _SOURCE_DIR _VERSION _VERSION_MAJOR _VERSION_MINOR _VERSION_PATCH _VERSION_TWEAK + \ ASM + \ ASM_MARMASM + \ ASM_MASM + \ ASM_NASM + \ ATT + \ CMAKE_PROJECT_ + \ CUDA + \ DESCRIPTION + \ HIP + \ HOMEPAGE_URL + \ ISPC + \ LANGUAGES + \ NAME + \ NONE + \ OBJC + \ OBJCXX + \ PROJECT + \ VERSION + \ _BINARY_DIR + \ _DESCRIPTION + \ _HOMEPAGE_URL + \ _INCLUDE_BEFORE + \ _IS_TOP_LEVEL + \ _SOURCE_DIR + \ _VERSION + \ _VERSION_MAJOR + \ _VERSION_MINOR + \ _VERSION_PATCH + \ _VERSION_TWEAK + +syn keyword cmakeKWqt_wrap_cpp contained + \ AUTOMOC + +syn keyword cmakeKWqt_wrap_ui contained + \ AUTOUIC syn keyword cmakeKWremove contained - \ REMOVE_ITEM VALUE VAR + \ VALUE + \ VAR + +syn keyword cmakeKWreturn contained + \ DEFER + \ PARENT_SCOPE + \ PROPAGATE + \ SCOPE_FOR + \ VARIABLES + \ VERSION syn keyword cmakeKWseparate_arguments contained - \ MSDN NATIVE NATIVE_COMMAND UNIX_COMMAND WINDOWS WINDOWS_COMMAND _COMMAND + \ MSDN + \ NATIVE_COMMAND + \ PROGRAM + \ SEPARATE_ARGS + \ UNIX_COMMAND + \ WINDOWS_COMMAND syn keyword cmakeKWset contained - \ BOOL CACHE FILEPATH FORCE INTERNAL OFF ON PARENT_SCOPE STRING STRINGS + \ BOOL + \ FILEPATH + \ FORCE + \ INTERNAL + \ OFF + \ OLD + \ ON + \ PARENT_SCOPE + \ PROPAGATE + \ STRING + \ STRINGS + \ VAR syn keyword cmakeKWset_directory_properties contained + \ DIRECTORY \ PROPERTIES syn keyword cmakeKWset_property contained - \ APPEND APPEND_STRING CACHE DIRECTORY GLOBAL INSTALL PROPERTY SOURCE TARGET TEST WIX + \ APPEND + \ APPEND_STRING + \ DIRECTORY + \ GENERATED + \ GLOBAL + \ INHERITED + \ INSTALL + \ NAME + \ PROPERTY + \ SOURCE + \ TARGET + \ TARGET_DIRECTORY + \ TEST + \ WIX syn keyword cmakeKWset_source_files_properties contained + \ DIRECTORY + \ GENERATED \ PROPERTIES + \ SOURCE + \ TARGET_DIRECTORY syn keyword cmakeKWset_target_properties contained \ PROPERTIES syn keyword cmakeKWset_tests_properties contained + \ NAME \ PROPERTIES +syn keyword cmakeKWsite_name contained + \ HOSTNAME + syn keyword cmakeKWsource_group contained - \ FILES PREFIX REGULAR_EXPRESSION TREE + \ FILES + \ PREFIX + \ REGULAR_EXPRESSION + \ TREE syn keyword cmakeKWstring contained - \ ALPHABET APPEND ASCII CMAKE_MATCH_ COMPARE CONCAT CONFIGURE EQUAL ESCAPE_QUOTES FIND GENEX_STRIP GREATER GREATER_EQUAL GUID HASH LENGTH LESS LESS_EQUAL MAKE_C_IDENTIFIER MATCH MATCHALL MATCHES NAMESPACE NOTEQUAL ONLY PREPEND RANDOM RANDOM_SEED REGEX REPLACE REVERSE RFC SHA SOURCE_DATE_EPOCH STRIP SUBSTRING SZ TIMESTAMP TOLOWER TOUPPER TYPE US UTC UUID + \ ALPHABET + \ APPEND + \ ARRAY + \ ASCII + \ BOOLEAN + \ CMAKE_MATCH_ + \ COMPARE + \ CONCAT + \ CONFIGURE + \ EQUAL + \ ERROR_VARIABLE + \ ESCAPE_QUOTES + \ FIND + \ GENEX_STRIP + \ GET + \ GREATER + \ GREATER_EQUAL + \ GUID + \ HASH + \ HEX + \ ISO + \ JOIN + \ JSON + \ LENGTH + \ LESS + \ LESS_EQUAL + \ MAKE_C_IDENTIFIER + \ MATCH + \ MATCHALL + \ MATCHES + \ MEMBER + \ NAMESPACE + \ NOTEQUAL + \ NULL + \ NUMBER + \ OBJECT + \ OFF + \ ONLY + \ PREPEND + \ RANDOM + \ RANDOM_SEED + \ REGEX + \ REMOVE + \ REPEAT + \ REPLACE + \ REVERSE + \ RFC + \ SET + \ SHA + \ SOURCE_DATE_EPOCH + \ STRIP + \ SUBSTRING + \ SZ + \ TIMESTAMP + \ TOLOWER + \ TOUPPER + \ TYPE + \ US + \ UTC + \ UUID syn keyword cmakeKWsubdirs contained - \ EXCLUDE_FROM_ALL PREORDER + \ EXCLUDE_FROM_ALL + \ PREORDER syn keyword cmakeKWtarget_compile_definitions contained - \ COMPILE_DEFINITIONS INTERFACE INTERFACE_COMPILE_DEFINITIONS PRIVATE PUBLIC + \ ALIAS + \ COMPILE_DEFINITIONS + \ FOO + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_DEFINITIONS + \ PRIVATE + \ PUBLIC syn keyword cmakeKWtarget_compile_features contained - \ COMPILE_FEATURES IMPORTED INTERFACE INTERFACE_COMPILE_FEATURES PRIVATE PUBLIC + \ ALIAS + \ COMPILE_FEATURES + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_FEATURES + \ PRIVATE + \ PUBLIC syn keyword cmakeKWtarget_compile_options contained - \ BEFORE COMPILE_OPTIONS IMPORTED INTERFACE INTERFACE_COMPILE_OPTIONS PRIVATE PUBLIC + \ ALIAS + \ BEFORE + \ CMAKE_ + \ COMPILE_LANGUAGE + \ COMPILE_OPTIONS + \ CONFIG + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_OPTIONS + \ PRIVATE + \ PUBLIC + \ SHELL + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ syn keyword cmakeKWtarget_include_directories contained - \ BEFORE BUILD_INTERFACE IMPORTED INCLUDE_DIRECTORIES INSTALL_INTERFACE INTERFACE INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES PRIVATE PUBLIC SYSTEM + \ AFTER + \ ALIAS + \ BEFORE + \ BUILD_INTERFACE + \ IMPORTED + \ INCLUDE_DIRECTORIES + \ INSTALL_INTERFACE + \ INTERFACE + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES + \ PRIVATE + \ PUBLIC + \ SYSTEM + +syn keyword cmakeKWtarget_link_directories contained + \ ALIAS + \ BEFORE + \ IMPORTED + \ INTERFACE + \ INTERFACE_LINK_DIRECTORIES + \ LINK_DIRECTORIES + \ ORIGIN + \ PRIVATE + \ PUBLIC + \ RPATH syn keyword cmakeKWtarget_link_libraries contained - \ ALIAS DAG DEBUG_CONFIGURATIONS IMPORTED IMPORTED_NO_SONAME INTERFACE INTERFACE_LINK_LIBRARIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_LIBRARIES_DEBUG LINK_INTERFACE_MULTIPLICITY LINK_PRIVATE LINK_PUBLIC OLD OSX PRIVATE PUBLIC STATIC + \ ALIAS + \ DA + \ DAG + \ DEBUG_CONFIGURATIONS + \ DOBJ + \ IMPORTED + \ IMPORTED_NO_SONAME + \ INTERFACE + \ INTERFACE_LINK_LIBRARIES + \ LINK_FLAGS + \ LINK_INTERFACE_LIBRARIES + \ LINK_INTERFACE_LIBRARIES_DEBUG + \ LINK_INTERFACE_MULTIPLICITY + \ LINK_OPTIONS + \ LINK_PRIVATE + \ LINK_PUBLIC + \ OBJECT + \ OLD + \ PRIVATE + \ PUBLIC + \ SHARED + \ STATIC + \ TARGET_OBJECTS + +syn keyword cmakeKWtarget_link_options contained + \ ALIAS + \ BEFORE + \ CMAKE_ + \ CONFIG + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ DEVICE_LINK + \ GCC + \ HOST_LINK + \ IMPORTED + \ INTERFACE + \ INTERFACE_LINK_OPTIONS + \ LANG + \ LINKER + \ LINK_OPTIONS + \ PRIVATE + \ PUBLIC + \ SHELL + \ STATIC_LIBRARY_OPTIONS + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ + \ _LINKER_WRAPPER_FLAG + \ _LINKER_WRAPPER_FLAG_SEP + +syn keyword cmakeKWtarget_precompile_headers contained + \ ALIAS + \ ANGLE + \ BUILD_INTERFACE + \ COMPILE_LANGUAGE + \ DISABLE_PRECOMPILE_HEADERS + \ EXPORT + \ FI + \ GCC + \ IMPORTED + \ INTERFACE + \ INTERFACE_PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS_REUSE_FROM + \ PRIVATE + \ PUBLIC + \ REUSE_FROM + \ SKIP_PRECOMPILE_HEADERS syn keyword cmakeKWtarget_sources contained - \ IMPORTED INTERFACE INTERFACE_SOURCES PRIVATE PUBLIC SOURCES + \ ALIAS + \ BASE_DIRS + \ BUILD_INTERFACE + \ CONFIG + \ CORRECT + \ CXX_MODULES + \ CXX_MODULE_DIRS + \ CXX_MODULE_DIRS_ + \ CXX_MODULE_SETS + \ CXX_MODULE_SET_ + \ EXPORT + \ FILES + \ FILE_SET + \ FRAMEWORK + \ HEADERS + \ HEADER_DIRS + \ HEADER_DIRS_ + \ HEADER_FILE_ONLY + \ HEADER_SETS + \ HEADER_SET_ + \ IMPORTED + \ INCLUDE_DIRECTORIES + \ INTERFACE + \ INTERFACE_CXX_MODULE_SETS + \ INTERFACE_HEADER_SETS + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_SOURCES + \ NAME + \ PRIVATE + \ PUBLIC + \ SOURCES + \ SOURCE_DIR + \ TARGETS + \ TRUE + \ TYPE + \ WRONG syn keyword cmakeKWtry_compile contained - \ ALL_BUILD CMAKE_FLAGS COMPILE_DEFINITIONS COPY_FILE COPY_FILE_ERROR CUDA_EXTENSIONS CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEFINED DLINK_LIBRARIES DVAR FALSE INCLUDE_DIRECTORIES LANG LINK_DIRECTORIES LINK_LIBRARIES NOT OUTPUT_VARIABLE RESULT_VAR SOURCES TRUE TYPE VALUE _EXTENSIONS _STANDARD _STANDARD_REQUIRED + \ ALL_BUILD + \ BINARY_DIR + \ CMAKE_FLAGS + \ COMPILE_DEFINITIONS + \ COPY_FILE + \ COPY_FILE_ERROR + \ CUDA_EXTENSIONS + \ CUDA_STANDARD + \ CUDA_STANDARD_REQUIRED + \ CXX_EXTENSIONS + \ CXX_STANDARD + \ CXX_STANDARD_REQUIRED + \ C_EXTENSIONS + \ C_STANDARD + \ C_STANDARD_REQUIRED + \ DEFINED + \ DLINK_LIBRARIES + \ DVAR + \ EXECUTABLE + \ FALSE + \ GHS + \ HIP_EXTENSIONS + \ HIP_STANDARD + \ HIP_STANDARD_REQUIRED + \ INCLUDE_DIRECTORIES + \ LANG + \ LINK_DIRECTORIES + \ LINK_LIBRARIES + \ LINK_OPTIONS + \ LOG_DESCRIPTION + \ MULTI + \ NOT + \ NO_CACHE + \ NO_LOG + \ OBJCXX_EXTENSIONS + \ OBJCXX_STANDARD + \ OBJCXX_STANDARD_REQUIRED + \ OBJC_EXTENSIONS + \ OBJC_STANDARD + \ OBJC_STANDARD_REQUIRED + \ OUTPUT_VARIABLE + \ PRIVATE + \ PROJECT + \ RESULTVAR + \ SOURCES + \ SOURCE_DIR + \ SOURCE_FROM_CONTENT + \ SOURCE_FROM_FILE + \ SOURCE_FROM_VAR + \ STATIC_LIBRARY + \ STATIC_LIBRARY_OPTIONS + \ TARGET + \ TRUE + \ TYPE + \ VALUE + \ _EXTENSIONS + \ _STANDARD + \ _STANDARD_REQUIRED syn keyword cmakeKWtry_run contained - \ ARGS CMAKE_FLAGS COMPILE_DEFINITIONS COMPILE_OUTPUT_VARIABLE COMPILE_RESULT_VAR DLINK_LIBRARIES DVAR FAILED_TO_RUN FALSE INCLUDE_DIRECTORIES LINK_DIRECTORIES LINK_LIBRARIES RUN_OUTPUT_VARIABLE RUN_RESULT_VAR TRUE TYPE VALUE __TRYRUN_OUTPUT + \ ARGS + \ CMAKE_FLAGS + \ COMPILE_DEFINITIONS + \ COMPILE_OUTPUT_VARIABLE + \ COPY_FILE + \ COPY_FILE_ERROR + \ FAILED_TO_RUN + \ FALSE + \ LANG + \ LINK_LIBRARIES + \ LINK_OPTIONS + \ LOG_DESCRIPTION + \ NO_CACHE + \ NO_LOG + \ RUN_OUTPUT_STDERR_VARIABLE + \ RUN_OUTPUT_STDOUT_VARIABLE + \ RUN_OUTPUT_VARIABLE + \ SOURCES + \ SOURCE_FROM_CONTENT + \ SOURCE_FROM_FILE + \ SOURCE_FROM_VAR + \ TRUE + \ WORKING_DIRECTORY + \ _EXTENSIONS + \ _STANDARD + \ _STANDARD_REQUIRED + \ __TRYRUN_OUTPUT syn keyword cmakeKWunset contained - \ CACHE LD_LIBRARY_PATH PARENT_SCOPE + \ PARENT_SCOPE + \ VAR syn keyword cmakeKWuse_mangled_mesa contained - \ GL OUTPUT_DIRECTORY PATH_TO_MESA + \ GL + \ OUTPUT_DIRECTORY + \ PATH_TO_MESA syn keyword cmakeKWvariable_requires contained - \ RESULT_VARIABLE TEST_VARIABLE + \ RESULT_VARIABLE + \ TEST_VARIABLE syn keyword cmakeKWvariable_watch contained + \ APPEND \ COMMAND - -syn keyword cmakeKWwhile contained - \ ARGS + \ DEFINED + \ MODIFIED_ACCESS + \ READ_ACCESS + \ REMOVED_ACCESS + \ UNKNOWN_MODIFIED_ACCESS + \ UNKNOWN_READ_ACCESS syn keyword cmakeKWwrite_file contained - \ APPEND CONFIGURE_FILE NOTE WRITE + \ APPEND + \ CONFIGURE_FILE + \ NOTE + \ WRITE syn keyword cmakeGeneratorExpressions contained - \ LINK_LIBRARIES INCLUDE_DIRECTORIES COMPILE_DEFINITIONS CONFIG DEBUG_MODE BOOL AND NOT IF STREQUAL MAP_IMPORTED_CONFIG_ PLATFORM_ID C_COMPILER_ID CXX_COMPILER_ID VERSION_LESS VERSION_GREATER VERSION_EQUAL VERSION_LESS_EQUAL VERSION_GREATER_EQUAL C_COMPILER_VERSION CXX_COMPILER_VERSION TARGET_POLICY COMPILE_FEATURES C_STANDARD CXX_STANDARD COMPILE_LANGUAGE PRIVATE PUBLIC COMPILING_CXX GNU OLD_COMPILER CMAKE_CXX_COMPILER_VERSION CONFIGURATION TARGET_FILE TARGET_FILE_NAME TARGET_FILE_DIR TARGET_LINKER_FILE TARGET_LINKER_FILE_NAME TARGET_LINKER_FILE_DIR TARGET_SONAME_FILE TARGET_SONAME_FILE_NAME TARGET_SONAME_FILE_DIR TARGET_PDB_FILE PDB_NAME PDB_OUTPUT_DIRECTORY PDB_NAME_ PDB_OUTPUT_DIRECTORY_ TARGET_PDB_FILE_NAME TARGET_PDB_FILE_DIR TARGET_BUNDLE_DIR TARGET_BUNDLE_CONTENT_DIR SDK TARGET_PROPERTY INSTALL_PREFIX EXPORT JOIN ANGLE COMMA SEMICOLON TARGET_NAME LINK_ONLY INTERFACE_LINK_LIBRARIES INSTALL_INTERFACE BUILD_INTERFACE LOWER_CASE UPPER_CASE MAKE_C_IDENTIFIER TARGET_OBJECTS OBJECT_LIBRARY SHELL_PATH MSYS + \ ABSOLUTE_PATH + \ ACTION + \ AIX + \ ANGLE + \ APPEND + \ ARCHIVE_OUTPUT_NAME + \ ARCHIVE_OUTPUT_NAME_ + \ ASCENDING + \ BAR + \ BOOL + \ BUILD_INTERFACE + \ BUILD_LOCAL_INTERFACE + \ CMAKE_LINK_GROUP_USING_ + \ CMAKE_LINK_LIBRARY_USING_ + \ CMAKE_PATH + \ CODE + \ COMMAND_CONFIG + \ COMMAND_EXPAND_LISTS + \ COMPARE + \ COMPILE_DEFINITIONS + \ COMPILE_FEATURES + \ COMPILE_LANGUAGE + \ COMPILE_LANG_AND_ID + \ COMPILE_ONLY + \ COMPILING_CUDA + \ COMPILING_CXX + \ COMPILING_CXX_WITH_CLANG + \ COMPILING_CXX_WITH_INTEL + \ COMPILING_C_WITH_CLANG + \ CONFIG + \ CONFIGURATION + \ CONTENT + \ CUDA_COMPILER_ID + \ CUDA_COMPILER_VERSION + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ CUSTOM_KEYS + \ CXX_COMPILER_ID + \ CXX_COMPILER_VERSION + \ CXX_CONFIG + \ CXX_STANDARD + \ C_COMPILER_ID + \ C_COMPILER_VERSION + \ C_STANDARD + \ DEBUG_MODE + \ DEBUG_POSTFIX + \ DENABLE_SOME_FEATURE + \ DESCENDING + \ DEVICE_LINK + \ DLL + \ ENABLE_EXPORTS + \ EXCLUDE + \ EXPORT + \ EXTENSION_DEF + \ FALSE + \ FILENAME_DEF + \ FILE_BASENAME + \ FILTER + \ FIND + \ FOO_EXTRA_THINGS + \ GENERATE + \ GENEX_EVAL + \ GET_EXTENSION + \ GET_FILENAME + \ GET_PARENT_PATH + \ GET_RELATIVE_PART + \ GET_ROOT_DIRECTORY + \ GET_ROOT_NAME + \ GET_ROOT_PATH + \ GET_STEM + \ HAS_ + \ HAS_EXTENSION + \ HAS_FILENAME + \ HAS_PARENT_PATH + \ HAS_RELATIVE_PART + \ HAS_ROOT_DIRECTORY + \ HAS_ROOT_NAME + \ HAS_ROOT_PATH + \ HAS_STEM + \ HAVE_SOME_FEATURE + \ HIP_COMPILER_ID + \ HIP_COMPILER_VERSION + \ HIP_STANDARD + \ HOST_LINK + \ IF + \ IGNORE + \ IMPORTED_LOCATION + \ IMPORT_PREFIX + \ IMPORT_SUFFIX + \ INCLUDE_DIRECTORIES + \ INSENSITIVE + \ INSERT + \ INSTALL_INTERFACE + \ INSTALL_NAME_DIR + \ INSTALL_PREFIX + \ INSTALL_RPATH + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_LINK_LIBRARIES_DIRECT + \ IN_LIST + \ ISPC_COMPILER_ID + \ ISPC_COMPILER_VERSION + \ IS_ABSOLUTE + \ IS_PREFIX + \ IS_RELATIVE + \ JOIN + \ LANG + \ LANG_COMPILER_ID + \ LAST_ONLY + \ LENGTH + \ LIBRARY_OUTPUT_NAME + \ LIBRARY_OUTPUT_NAME_ + \ LINK_GROUP + \ LINK_GROUP_PREDEFINED_FEATURES + \ LINK_LANGUAGE + \ LINK_LANG_AND_ID + \ LINK_LIBRARIES + \ LINK_LIBRARY + \ LINK_LIBRARY_OVERRIDE + \ LINK_LIBRARY_OVERRIDE_ + \ LINK_LIBRARY_PREDEFINED_FEATURES + \ LINK_ONLY + \ LOWER_CASE + \ MAKE_C_IDENTIFIER + \ MAP_IMPORTED_CONFIG_ + \ MODULE + \ NATURAL + \ NO + \ NORMALIZE + \ NORMAL_PATH + \ NOT + \ OBJCXX_COMPILER_ID + \ OBJCXX_COMPILER_VERSION + \ OBJC_COMPILER_ID + \ OBJC_COMPILER_VERSION + \ OBJECT + \ OFF + \ OLD_COMPILER + \ ORDER + \ OUTPUT + \ OUTPUT_CONFIG + \ OUTPUT_NAME + \ OUTPUT_NAME_ + \ PATH + \ PATH_EQUAL + \ PDB_NAME + \ PDB_NAME_ + \ PDB_OUTPUT_DIRECTORY + \ PDB_OUTPUT_DIRECTORY_ + \ PLATFORM_ID + \ POP_BACK + \ POP_FRONT + \ POSIX + \ POST_BUILD + \ PREPEND + \ PRIVATE + \ PUBLIC + \ REGEX + \ RELATIVE_PATH + \ REMOVE_AT + \ REMOVE_DUPLICATES + \ REMOVE_EXTENSION + \ REMOVE_FILENAME + \ REMOVE_ITEM + \ REPLACE + \ REPLACE_EXTENSION + \ REPLACE_FILENAME + \ REQUIRED + \ RESCAN + \ REVERSE + \ RPATH + \ RUNTIME_DEPENDENCY_SET + \ RUNTIME_OUTPUT_NAME + \ RUNTIME_OUTPUT_NAME_ + \ SCRIPT + \ SDK + \ SELECTOR + \ SEMICOLON + \ SENSITIVE + \ SHARED + \ SHELL_PATH + \ SORT + \ STATIC + \ STREQUAL + \ STRING + \ STRIP + \ SUBLIST + \ TARGET_BUNDLE_CONTENT_DIR + \ TARGET_BUNDLE_DIR + \ TARGET_BUNDLE_DIR_NAME + \ TARGET_EXISTS + \ TARGET_FILE + \ TARGET_FILE_BASE_NAME + \ TARGET_FILE_DIR + \ TARGET_FILE_NAME + \ TARGET_FILE_PREFIX + \ TARGET_FILE_SUFFIX + \ TARGET_GENEX_EVAL + \ TARGET_IMPORT_FILE + \ TARGET_IMPORT_FILE_BASE_NAME + \ TARGET_IMPORT_FILE_DIR + \ TARGET_IMPORT_FILE_NAME + \ TARGET_IMPORT_FILE_PREFIX + \ TARGET_IMPORT_FILE_SUFFIX + \ TARGET_LINKER_FILE + \ TARGET_LINKER_FILE_BASE_NAME + \ TARGET_LINKER_FILE_DIR + \ TARGET_LINKER_FILE_NAME + \ TARGET_LINKER_FILE_PREFIX + \ TARGET_LINKER_FILE_SUFFIX + \ TARGET_LINKER_IMPORT_FILE + \ TARGET_LINKER_IMPORT_FILE_BASE_NAME + \ TARGET_LINKER_IMPORT_FILE_DIR + \ TARGET_LINKER_IMPORT_FILE_NAME + \ TARGET_LINKER_IMPORT_FILE_PREFIX + \ TARGET_LINKER_IMPORT_FILE_SUFFIX + \ TARGET_LINKER_LIBRARY_FILE + \ TARGET_LINKER_LIBRARY_FILE_BASE_NAME + \ TARGET_LINKER_LIBRARY_FILE_DIR + \ TARGET_LINKER_LIBRARY_FILE_NAME + \ TARGET_LINKER_LIBRARY_FILE_PREFIX + \ TARGET_LINKER_LIBRARY_FILE_SUFFIX + \ TARGET_NAME_IF_EXISTS + \ TARGET_OBJECTS + \ TARGET_PDB_FILE + \ TARGET_PDB_FILE_BASE_NAME + \ TARGET_PDB_FILE_DIR + \ TARGET_PDB_FILE_NAME + \ TARGET_POLICY + \ TARGET_PROPERTY + \ TARGET_RUNTIME_DLLS + \ TARGET_RUNTIME_DLL_DIRS + \ TARGET_SONAME_FILE + \ TARGET_SONAME_FILE_DIR + \ TARGET_SONAME_FILE_NAME + \ TARGET_SONAME_IMPORT_FILE + \ TARGET_SONAME_IMPORT_FILE_DIR + \ TARGET_SONAME_IMPORT_FILE_NAME + \ TOLOWER + \ TOUPPER + \ TRANSFORM + \ TRANSFORM_APPEND + \ TRANSFORM_REPLACE + \ TRANSFORM_STRIP + \ TRANSFORM_TOLOWER + \ UNKNOWN + \ UPPER_CASE + \ VERBATIM + \ VERSION_EQUAL + \ VERSION_GREATER_EQUAL + \ VERSION_LESS + \ VERSION_LESS_EQUAL + \ WHOLE_ARCHIVE + \ WRONG + \ _LINK_GROUP_USING_ + \ _LINK_LIBRARY_USING_ + \ _POSTFIX + \ _SUPPORTED syn case ignore syn keyword cmakeCommand - \ add_compile_options add_compile_definitions add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue create_test_sourcelist ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload define_property enable_language enable_testing endfunction endmacro execute_process export file find_file find_library find_package find_path find_program fltk_wrap_ui function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property include include_directories include_external_msproject include_guard include_regular_expression install link_directories list load_cache load_command macro mark_as_advanced math message option project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_libraries target_sources try_compile try_run unset variable_watch + \ add_compile_definitions + \ add_compile_options + \ add_custom_command + \ add_custom_target + \ add_definitions + \ add_dependencies + \ add_executable + \ add_library + \ add_link_options + \ add_subdirectory + \ add_test + \ aux_source_directory + \ block + \ break + \ build_command + \ cmake_file_api + \ cmake_host_system_information + \ cmake_language + \ cmake_minimum_required + \ cmake_parse_arguments + \ cmake_path + \ cmake_policy + \ configure_file + \ continue + \ create_test_sourcelist + \ ctest_build + \ ctest_configure + \ ctest_coverage + \ ctest_empty_binary_directory + \ ctest_memcheck + \ ctest_read_custom_files + \ ctest_run_script + \ ctest_sleep + \ ctest_start + \ ctest_submit + \ ctest_test + \ ctest_update + \ ctest_upload + \ define_property + \ enable_language + \ enable_testing + \ endblock + \ endfunction + \ endmacro + \ execute_process + \ export + \ file + \ find_file + \ find_library + \ find_package + \ find_path + \ find_program + \ fltk_wrap_ui + \ function + \ get_cmake_property + \ get_directory_property + \ get_filename_component + \ get_property + \ get_source_file_property + \ get_target_property + \ get_test_property + \ include + \ include_directories + \ include_external_msproject + \ include_guard + \ include_regular_expression + \ install + \ link_directories + \ list + \ load_cache + \ load_command + \ macro + \ mark_as_advanced + \ math + \ message + \ option + \ project + \ qt_wrap_cpp + \ qt_wrap_ui + \ remove_definitions + \ return + \ separate_arguments + \ set + \ set_directory_properties + \ set_property + \ set_source_files_properties + \ set_target_properties + \ set_tests_properties + \ site_name + \ source_group + \ string + \ target_compile_definitions + \ target_compile_features + \ target_compile_options + \ target_include_directories + \ target_link_directories + \ target_link_libraries + \ target_link_options + \ target_precompile_headers + \ target_sources + \ try_compile + \ try_run + \ unset + \ variable_watch \ nextgroup=cmakeArguments syn keyword cmakeCommandConditional - \ else elseif endif if + \ else + \ elseif + \ endif + \ if \ nextgroup=cmakeArguments syn keyword cmakeCommandRepeat - \ endforeach endwhile foreach while + \ endforeach + \ endwhile + \ foreach + \ while \ nextgroup=cmakeArguments syn keyword cmakeCommandDeprecated - \ build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file + \ build_name + \ exec_program + \ export_library_dependencies + \ install_files + \ install_programs + \ install_targets + \ link_libraries + \ make_directory + \ output_required_files + \ remove + \ subdir_depends + \ subdirs + \ use_mangled_mesa + \ utility_source + \ variable_requires + \ write_file \ nextgroup=cmakeArguments syn case match @@ -356,6 +4820,8 @@ syn keyword cmakeTodo \ TODO FIXME XXX \ contained +hi def link cmakeBracketArgument String +hi def link cmakeBracketComment Comment hi def link cmakeCommand Function hi def link cmakeCommandConditional Conditional hi def link cmakeCommandDeprecated WarningMsg @@ -365,7 +4831,6 @@ hi def link cmakeEnvironment Special hi def link cmakeEscaped Special hi def link cmakeGeneratorExpression WarningMsg hi def link cmakeGeneratorExpressions Constant -hi def link cmakeLuaComment Comment hi def link cmakeModule Include hi def link cmakeProperty Constant hi def link cmakeRegistry Underlined @@ -375,6 +4840,8 @@ hi def link cmakeVariableValue Type hi def link cmakeVariable Identifier hi def link cmakeKWExternalProject ModeMsg +hi def link cmakeKWFetchContent ModeMsg +hi def link cmakeKWadd_compile_definitions ModeMsg hi def link cmakeKWadd_compile_options ModeMsg hi def link cmakeKWadd_custom_command ModeMsg hi def link cmakeKWadd_custom_target ModeMsg @@ -382,13 +4849,17 @@ hi def link cmakeKWadd_definitions ModeMsg hi def link cmakeKWadd_dependencies ModeMsg hi def link cmakeKWadd_executable ModeMsg hi def link cmakeKWadd_library ModeMsg +hi def link cmakeKWadd_link_options ModeMsg hi def link cmakeKWadd_subdirectory ModeMsg hi def link cmakeKWadd_test ModeMsg +hi def link cmakeKWblock ModeMsg hi def link cmakeKWbuild_command ModeMsg -hi def link cmakeKWbuild_name ModeMsg +hi def link cmakeKWcmake_file_api ModeMsg hi def link cmakeKWcmake_host_system_information ModeMsg +hi def link cmakeKWcmake_language ModeMsg hi def link cmakeKWcmake_minimum_required ModeMsg hi def link cmakeKWcmake_parse_arguments ModeMsg +hi def link cmakeKWcmake_path ModeMsg hi def link cmakeKWcmake_policy ModeMsg hi def link cmakeKWconfigure_file ModeMsg hi def link cmakeKWcreate_test_sourcelist ModeMsg @@ -403,7 +4874,9 @@ hi def link cmakeKWctest_test ModeMsg hi def link cmakeKWctest_update ModeMsg hi def link cmakeKWctest_upload ModeMsg hi def link cmakeKWdefine_property ModeMsg +hi def link cmakeKWdoxygen_add_docs ModeMsg hi def link cmakeKWenable_language ModeMsg +hi def link cmakeKWenable_testing ModeMsg hi def link cmakeKWexec_program ModeMsg hi def link cmakeKWexecute_process ModeMsg hi def link cmakeKWexport ModeMsg @@ -433,17 +4906,20 @@ hi def link cmakeKWinstall ModeMsg hi def link cmakeKWinstall_files ModeMsg hi def link cmakeKWinstall_programs ModeMsg hi def link cmakeKWinstall_targets ModeMsg +hi def link cmakeKWlink_directories ModeMsg hi def link cmakeKWlist ModeMsg hi def link cmakeKWload_cache ModeMsg hi def link cmakeKWload_command ModeMsg hi def link cmakeKWmacro ModeMsg -hi def link cmakeKWmake_directory ModeMsg hi def link cmakeKWmark_as_advanced ModeMsg hi def link cmakeKWmath ModeMsg hi def link cmakeKWmessage ModeMsg hi def link cmakeKWoption ModeMsg hi def link cmakeKWproject ModeMsg +hi def link cmakeKWqt_wrap_cpp ModeMsg +hi def link cmakeKWqt_wrap_ui ModeMsg hi def link cmakeKWremove ModeMsg +hi def link cmakeKWreturn ModeMsg hi def link cmakeKWseparate_arguments ModeMsg hi def link cmakeKWset ModeMsg hi def link cmakeKWset_directory_properties ModeMsg @@ -451,6 +4927,7 @@ hi def link cmakeKWset_property ModeMsg hi def link cmakeKWset_source_files_properties ModeMsg hi def link cmakeKWset_target_properties ModeMsg hi def link cmakeKWset_tests_properties ModeMsg +hi def link cmakeKWsite_name ModeMsg hi def link cmakeKWsource_group ModeMsg hi def link cmakeKWstring ModeMsg hi def link cmakeKWsubdirs ModeMsg @@ -458,7 +4935,10 @@ hi def link cmakeKWtarget_compile_definitions ModeMsg hi def link cmakeKWtarget_compile_features ModeMsg hi def link cmakeKWtarget_compile_options ModeMsg hi def link cmakeKWtarget_include_directories ModeMsg +hi def link cmakeKWtarget_link_directories ModeMsg hi def link cmakeKWtarget_link_libraries ModeMsg +hi def link cmakeKWtarget_link_options ModeMsg +hi def link cmakeKWtarget_precompile_headers ModeMsg hi def link cmakeKWtarget_sources ModeMsg hi def link cmakeKWtry_compile ModeMsg hi def link cmakeKWtry_run ModeMsg @@ -466,9 +4946,32 @@ hi def link cmakeKWunset ModeMsg hi def link cmakeKWuse_mangled_mesa ModeMsg hi def link cmakeKWvariable_requires ModeMsg hi def link cmakeKWvariable_watch ModeMsg -hi def link cmakeKWwhile ModeMsg hi def link cmakeKWwrite_file ModeMsg +" Manually added - difficult to parse out of documentation +syn case ignore + +syn keyword cmakeCommandManuallyAdded + \ configure_package_config_file write_basic_package_version_file + \ nextgroup=cmakeArguments + +syn case match + +syn keyword cmakeKWconfigure_package_config_file contained + \ INSTALL_DESTINATION PATH_VARS NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO INSTALL_PREFIX + +syn keyword cmakeKWconfigure_package_config_file_constants contained + \ AnyNewerVersion SameMajorVersion SameMinorVersion ExactVersion + +syn keyword cmakeKWwrite_basic_package_version_file contained + \ VERSION COMPATIBILITY + +hi def link cmakeCommandManuallyAdded Function + +hi def link cmakeKWconfigure_package_config_file ModeMsg +hi def link cmakeKWwrite_basic_package_version_file ModeMsg +hi def link cmakeKWconfigure_package_config_file_constants Constant + let b:current_syntax = "cmake" let &cpo = s:keepcpo diff --git a/runtime/syntax/cpp.vim b/runtime/syntax/cpp.vim index 5437580a0a..8daf90a33c 100644 --- a/runtime/syntax/cpp.vim +++ b/runtime/syntax/cpp.vim @@ -2,7 +2,7 @@ " Language: C++ " Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp) " Previous Maintainer: Ken Shan <ccshan@post.harvard.edu> -" Last Change: 2021 Aug 23 +" Last Change: 2023 Dec 08 " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -15,6 +15,7 @@ let b:filetype_in_cpp_family = 1 " Read the C syntax to start with runtime! syntax/c.vim unlet b:current_syntax +unlet b:filetype_in_cpp_family " C++ extensions syn keyword cppStatement new delete this friend using diff --git a/runtime/syntax/csh.vim b/runtime/syntax/csh.vim index 6a056c7004..0ad85adfc7 100644 --- a/runtime/syntax/csh.vim +++ b/runtime/syntax/csh.vim @@ -1,9 +1,10 @@ " Vim syntax file " Language: C-shell (csh) -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Aug 31, 2016 " Version: 14 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_CSH +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_CSH " quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim index f8104ea2c5..f4d09cfa4e 100644 --- a/runtime/syntax/css.vim +++ b/runtime/syntax/css.vim @@ -7,7 +7,7 @@ " Nikolai Weibull (Add CSS2 support) " URL: https://github.com/vim-language-dept/css-syntax.vim " Maintainer: Jay Sitter <jay@jaysitter.com> -" Last Change: 2021 Oct 20 +" Last Change: 2024 Mar 2 " quit when a syntax file was already loaded if !exists("main_syntax") @@ -127,7 +127,7 @@ syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline syn region cssMathGroup contained matchgroup=cssMathParens start="(" end=")" containedin=cssFunction,cssMathGroup contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline -syn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline +syn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssURL,cssColor,cssStringQ,cssStringQQ oneline syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\|conic-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma @@ -176,6 +176,8 @@ syn keyword cssBackgroundAttr contained cover contain syn match cssBorderProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>" syn match cssBorderProp contained "\<border\(-\(top\|bottom\)-\(left\|right\)\)\=-radius\>" +syn match cssBorderProp contained "\<border-\(inline\|block\)\(-\(start\|end\)\)\=\(-\(style\|width\|color\)\)\=\>" +syn match cssBorderProp contained "\<border-\(start\|end\)-\(start\|end\)-radius\>" syn match cssBorderProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>" syn match cssBorderProp contained "\<box-decoration-break\>" syn match cssBorderProp contained "\<box-shadow\>" @@ -195,6 +197,7 @@ syn keyword cssBorderAttr contained clone slice syn match cssBoxProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>" syn match cssBoxProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>" +syn match cssBoxProp contained "\<\(margin\|padding\)\(-\(inline\|block\)\(-\(start\|end\)\)\)\=\>" syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>" syn match cssBoxProp contained "\<rotation\(-point\)\=\>" syn keyword cssBoxAttr contained visible hidden scroll auto @@ -227,7 +230,7 @@ syn match cssFlexibleBoxAttr contained "\<space\(-\(between\|around\|evenly\)\)\ " CSS Fonts Module Level 3 " http://www.w3.org/TR/css-fonts-3/ -syn match cssFontProp contained "\<font\(-\(family\|\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>" +syn match cssFontProp contained "\<font\(-\(display\|family\|feature-settings\|kerning\|language-override\|size\(-adjust\)\=\|stretch\|style\|synthesis\|variant\(-\(alternates\|caps\|east-asian\|ligatures\|numeric\|position\)\)\=\|weight\)\)\=\>" " font attributes syn keyword cssFontAttr contained icon menu caption @@ -248,6 +251,8 @@ syn keyword cssFontAttr contained italic oblique syn keyword cssFontAttr contained weight style " font-weight attributes syn keyword cssFontAttr contained bold bolder lighter +" font-display attributes +syn keyword cssFontAttr contained auto block swap fallback optional " TODO: font-variant-* attributes "------------------------------------------------ @@ -282,7 +287,7 @@ syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" " https://www.w3.org/TR/css-grid-1/ syn match cssGridProp contained "\<grid\>" syn match cssGridProp contained "\<grid-template\(-\(columns\|rows\|areas\)\)\=\>" -syn match cssGridProp contained "\<grid-\(column\|row\)\(-\(start\|end\|gap\)\)\=\>" +syn match cssGridProp contained "\<\(grid-\)\=\(column\|row\)\(-\(start\|end\|gap\)\)\=\>" syn match cssGridProp contained "\<grid-\(area\|gap\)\>" syn match cssGridProp contained "\<gap\>" syn match cssGridProp contained "\<grid-auto-\(flow\|rows\|columns\)\>" @@ -452,12 +457,12 @@ syn match cssAttrComma "," " Pseudo class " https://www.w3.org/TR/selectors-4/ syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn -syn keyword cssPseudoClassId contained link visited active hover before after left right any-link -syn keyword cssPseudoClassId contained root empty target enabled disabled checked invalid default defined autofill fullscreen host indeterminate in-range modal optional out-of-range picture-in-picture placeholder-shown paused playing read-only read-write required scope +syn keyword cssPseudoClassId contained link visited active hover before after left right +syn keyword cssPseudoClassId contained root empty target enabled disabled checked invalid syn match cssPseudoClassId contained "\<first-\(line\|letter\)\>" syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>" syn match cssPseudoClassId contained "\<focus\(-within\|-visible\)\=\>" -syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(where\|has\|host\|not\|is\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier +syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|is\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier " ------------------------------------ " Vendor specific properties syn match cssPseudoClassId contained "\<selection\>" diff --git a/runtime/syntax/cucumber.vim b/runtime/syntax/cucumber.vim index f1ef2992ec..90fdbfaf4f 100644 --- a/runtime/syntax/cucumber.vim +++ b/runtime/syntax/cucumber.vim @@ -2,7 +2,7 @@ " Language: Cucumber " Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Filenames: *.feature -" Last Change: 2013 May 30 +" Last Change: 2023 Dec 28 if exists("b:current_syntax") finish @@ -14,60 +14,84 @@ syn case match syn sync minlines=20 let g:cucumber_languages = { - \"en": {"and": "And\\>", "background": "Background\\>", "but": "But\\>", "examples": "Scenarios\\>\\|Examples\\>", "feature": "Business Need\\>\\|Feature\\>\\|Ability\\>", "given": "Given\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Template\\>\\|Scenario Outline\\>", "then": "Then\\>", "when": "When\\>"}, - \"ar": {"and": "\\%u0648\\>", "background": "\\%u0627\\%u0644\\%u062e\\%u0644\\%u0641\\%u064a\\%u0629\\>", "but": "\\%u0644\\%u0643\\%u0646\\>", "examples": "\\%u0627\\%u0645\\%u062b\\%u0644\\%u0629\\>", "feature": "\\%u062e\\%u0627\\%u0635\\%u064a\\%u0629\\>", "given": "\\%u0628\\%u0641\\%u0631\\%u0636\\>", "scenario": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648\\>", "scenario_outline": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648 \\%u0645\\%u062e\\%u0637\\%u0637\\>", "then": "\\%u0627\\%u0630\\%u0627\\%u064b\\>\\|\\%u062b\\%u0645\\>", "when": "\\%u0639\\%u0646\\%u062f\\%u0645\\%u0627\\>\\|\\%u0645\\%u062a\\%u0649\\>"}, - \"bg": {"and": "\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u0438\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0420\\%u0430\\%u043c\\%u043a\\%u0430 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\%u0442\\%u043e\\>"}, - \"bm": {"and": "Dan\\>", "background": "Latar Belakang\\>", "but": "Tetapi\\>", "examples": "Contoh \\>", "feature": "Fungsi\\>", "given": "Bagi\\>", "scenario": "Senario\\>", "scenario_outline": "Menggariskan Senario \\>", "then": "Kemudian\\>", "when": "Apabila\\>"}, - \"ca": {"and": "I\\>", "background": "Antecedents\\>\\|Rerefons\\>", "but": "Per\\%u00f2\\>", "examples": "Exemples\\>", "feature": "Caracter\\%u00edstica\\>\\|Funcionalitat\\>", "given": "At\\%u00e8s\\>\\|Donada\\>\\|Donat\\>\\|Atesa\\>", "scenario": "Escenari\\>", "scenario_outline": "Esquema de l'escenari\\>", "then": "Aleshores\\>\\|Cal\\>", "when": "Quan\\>"}, - \"cs": {"and": "A tak\\%u00e9\\>\\|A\\>", "background": "Pozad\\%u00ed\\>\\|Kontext\\>", "but": "Ale\\>", "examples": "P\\%u0159\\%u00edklady\\>", "feature": "Po\\%u017eadavek\\>", "given": "Za p\\%u0159edpokladu\\>\\|Pokud\\>", "scenario": "Sc\\%u00e9n\\%u00e1\\%u0159\\>", "scenario_outline": "N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e\\>\\|Osnova sc\\%u00e9n\\%u00e1\\%u0159e\\>", "then": "Pak\\>", "when": "Kdy\\%u017e\\>"}, - \"cy-GB": {"and": "A\\>", "background": "Cefndir\\>", "but": "Ond\\>", "examples": "Enghreifftiau\\>", "feature": "Arwedd\\>", "given": "Anrhegedig a\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Amlinellol\\>", "then": "Yna\\>", "when": "Pryd\\>"}, - \"da": {"and": "Og\\>", "background": "Baggrund\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskab\\>", "given": "Givet\\>", "scenario": "Scenarie\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"}, - \"de": {"and": "Und\\>", "background": "Grundlage\\>", "but": "Aber\\>", "examples": "Beispiele\\>", "feature": "Funktionalit\\%u00e4t\\>", "given": "Gegeben sei\\>\\|Angenommen\\>", "scenario": "Szenario\\>", "scenario_outline": "Szenariogrundriss\\>", "then": "Dann\\>", "when": "Wenn\\>"}, - \"el": {"and": "\\%u039a\\%u03b1\\%u03b9\\>", "background": "\\%u03a5\\%u03c0\\%u03cc\\%u03b2\\%u03b1\\%u03b8\\%u03c1\\%u03bf\\>", "but": "\\%u0391\\%u03bb\\%u03bb\\%u03ac\\>", "examples": "\\%u03a0\\%u03b1\\%u03c1\\%u03b1\\%u03b4\\%u03b5\\%u03af\\%u03b3\\%u03bc\\%u03b1\\%u03c4\\%u03b1\\>\\|\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03b1\\>", "feature": "\\%u0394\\%u03c5\\%u03bd\\%u03b1\\%u03c4\\%u03cc\\%u03c4\\%u03b7\\%u03c4\\%u03b1\\>\\|\\%u039b\\%u03b5\\%u03b9\\%u03c4\\%u03bf\\%u03c5\\%u03c1\\%u03b3\\%u03af\\%u03b1\\>", "given": "\\%u0394\\%u03b5\\%u03b4\\%u03bf\\%u03bc\\%u03ad\\%u03bd\\%u03bf\\%u03c5 \\%u03cc\\%u03c4\\%u03b9\\>\\|\\%u0394\\%u03b5\\%u03b4\\%u03bf\\%u03bc\\%u03ad\\%u03bd\\%u03bf\\%u03c5\\>", "scenario": "\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03bf\\>", "scenario_outline": "\\%u03a0\\%u03b5\\%u03c1\\%u03b9\\%u03b3\\%u03c1\\%u03b1\\%u03c6\\%u03ae \\%u03a3\\%u03b5\\%u03bd\\%u03b1\\%u03c1\\%u03af\\%u03bf\\%u03c5\\>", "then": "\\%u03a4\\%u03cc\\%u03c4\\%u03b5\\>", "when": "\\%u038c\\%u03c4\\%u03b1\\%u03bd\\>"}, - \"en-Scouse": {"and": "An\\>", "background": "Dis is what went down\\>", "but": "Buh\\>", "examples": "Examples\\>", "feature": "Feature\\>", "given": "Youse know when youse got\\>\\|Givun\\>", "scenario": "The thing of it is\\>", "scenario_outline": "Wharrimean is\\>", "then": "Den youse gotta\\>\\|Dun\\>", "when": "Youse know like when\\>\\|Wun\\>"}, - \"en-au": {"and": "Too right\\>", "background": "First off\\>", "but": "Yeah nah\\>", "examples": "You'll wanna\\>", "feature": "Pretty much\\>", "given": "Y'know\\>", "scenario": "Awww, look mate\\>", "scenario_outline": "Reckon it's like\\>", "then": "But at the end of the day I reckon\\>", "when": "It's just unbelievable\\>"}, - \"en-lol": {"and": "AN\\>", "background": "B4\\>", "but": "BUT\\>", "examples": "EXAMPLZ\\>", "feature": "OH HAI\\>", "given": "I CAN HAZ\\>", "scenario": "MISHUN\\>", "scenario_outline": "MISHUN SRSLY\\>", "then": "DEN\\>", "when": "WEN\\>"}, - \"en-old": {"and": "Ond\\>\\|7\\>", "background": "\\%u00c6r\\>\\|Aer\\>", "but": "Ac\\>", "examples": "Se \\%u00f0e\\>\\|Se \\%u00fee\\>\\|Se the\\>", "feature": "Hw\\%u00e6t\\>\\|Hwaet\\>", "given": "\\%u00d0urh\\>\\|\\%u00deurh\\>\\|Thurh\\>", "scenario": "Swa\\>", "scenario_outline": "Swa hw\\%u00e6r swa\\>\\|Swa hwaer swa\\>", "then": "\\%u00d0a \\%u00f0e\\>\\|\\%u00dea \\%u00fee\\>\\|\\%u00dea\\>\\|\\%u00d0a\\>\\|Tha the\\>\\|Tha\\>", "when": "\\%u00d0a\\>\\|\\%u00dea\\>\\|Tha\\>"}, - \"en-pirate": {"and": "Aye\\>", "background": "Yo-ho-ho\\>", "but": "Avast!\\>", "examples": "Dead men tell no tales\\>", "feature": "Ahoy matey!\\>", "given": "Gangway!\\>", "scenario": "Heave to\\>", "scenario_outline": "Shiver me timbers\\>", "then": "Let go and haul\\>", "when": "Blimey!\\>"}, - \"en-tx": {"and": "And y'all\\>", "background": "Background\\>", "but": "But y'all\\>", "examples": "Examples\\>", "feature": "Feature\\>", "given": "Given y'all\\>", "scenario": "Scenario\\>", "scenario_outline": "All y'all\\>", "then": "Then y'all\\>", "when": "When y'all\\>"}, - \"eo": {"and": "Kaj\\>", "background": "Fono\\>", "but": "Sed\\>", "examples": "Ekzemploj\\>", "feature": "Trajto\\>", "given": "Donita\\%u0135o\\>", "scenario": "Scenaro\\>", "scenario_outline": "Konturo de la scenaro\\>", "then": "Do\\>", "when": "Se\\>"}, - \"es": {"and": "Y\\>", "background": "Antecedentes\\>", "but": "Pero\\>", "examples": "Ejemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esquema del escenario\\>", "then": "Entonces\\>", "when": "Cuando\\>"}, - \"et": {"and": "Ja\\>", "background": "Taust\\>", "but": "Kuid\\>", "examples": "Juhtumid\\>", "feature": "Omadus\\>", "given": "Eeldades\\>", "scenario": "Stsenaarium\\>", "scenario_outline": "Raamstsenaarium\\>", "then": "Siis\\>", "when": "Kui\\>"}, - \"fa": {"and": "\\%u0648\\>", "background": "\\%u0632\\%u0645\\%u06cc\\%u0646\\%u0647\\>", "but": "\\%u0627\\%u0645\\%u0627\\>", "examples": "\\%u0646\\%u0645\\%u0648\\%u0646\\%u0647 \\%u0647\\%u0627\\>", "feature": "\\%u0648\\%u0650\\%u06cc\\%u0698\\%u06af\\%u06cc\\>", "given": "\\%u0628\\%u0627 \\%u0641\\%u0631\\%u0636\\>", "scenario": "\\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648\\>", "scenario_outline": "\\%u0627\\%u0644\\%u06af\\%u0648\\%u06cc \\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648\\>", "then": "\\%u0622\\%u0646\\%u06af\\%u0627\\%u0647\\>", "when": "\\%u0647\\%u0646\\%u06af\\%u0627\\%u0645\\%u06cc\\>"}, - \"fi": {"and": "Ja\\>", "background": "Tausta\\>", "but": "Mutta\\>", "examples": "Tapaukset\\>", "feature": "Ominaisuus\\>", "given": "Oletetaan\\>", "scenario": "Tapaus\\>", "scenario_outline": "Tapausaihio\\>", "then": "Niin\\>", "when": "Kun\\>"}, - \"fr": {"and": "Et\\>", "background": "Contexte\\>", "but": "Mais\\>", "examples": "Exemples\\>", "feature": "Fonctionnalit\\%u00e9\\>", "given": "\\%u00c9tant donn\\%u00e9es\\>\\|\\%u00c9tant donn\\%u00e9s\\>\\|\\%u00c9tant donn\\%u00e9e\\>\\|\\%u00c9tant donn\\%u00e9\\>\\|Etant donn\\%u00e9es\\>\\|Etant donn\\%u00e9s\\>\\|Etant donn\\%u00e9e\\>\\|Etant donn\\%u00e9\\>\\|Soit\\>", "scenario": "Sc\\%u00e9nario\\>", "scenario_outline": "Plan du sc\\%u00e9nario\\>\\|Plan du Sc\\%u00e9nario\\>", "then": "Alors\\>", "when": "Lorsqu'\\|Lorsque\\>\\|Quand\\>"}, - \"gl": {"and": "E\\>", "background": "Contexto\\>", "but": "Mais\\>\\|Pero\\>", "examples": "Exemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esbozo do escenario\\>", "then": "Ent\\%u00f3n\\>\\|Logo\\>", "when": "Cando\\>"}, - \"he": {"and": "\\%u05d5\\%u05d2\\%u05dd\\>", "background": "\\%u05e8\\%u05e7\\%u05e2\\>", "but": "\\%u05d0\\%u05d1\\%u05dc\\>", "examples": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\%u05d5\\%u05ea\\>", "feature": "\\%u05ea\\%u05db\\%u05d5\\%u05e0\\%u05d4\\>", "given": "\\%u05d1\\%u05d4\\%u05d9\\%u05e0\\%u05ea\\%u05df\\>", "scenario": "\\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "scenario_outline": "\\%u05ea\\%u05d1\\%u05e0\\%u05d9\\%u05ea \\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "then": "\\%u05d0\\%u05d6\\%u05d9\\>\\|\\%u05d0\\%u05d6\\>", "when": "\\%u05db\\%u05d0\\%u05e9\\%u05e8\\>"}, - \"hi": {"and": "\\%u0924\\%u0925\\%u093e\\>\\|\\%u0914\\%u0930\\>", "background": "\\%u092a\\%u0943\\%u0937\\%u094d\\%u0920\\%u092d\\%u0942\\%u092e\\%u093f\\>", "but": "\\%u092a\\%u0930\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923\\>", "feature": "\\%u0930\\%u0942\\%u092a \\%u0932\\%u0947\\%u0916\\>", "given": "\\%u091a\\%u0942\\%u0902\\%u0915\\%u093f\\>\\|\\%u092f\\%u0926\\%u093f\\>\\|\\%u0905\\%u0917\\%u0930\\>", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f\\>", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e\\>", "then": "\\%u0924\\%u092c\\>", "when": "\\%u091c\\%u092c\\>"}, - \"hr": {"and": "I\\>", "background": "Pozadina\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primjeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadano\\>\\|Zadani\\>\\|Zadan\\>", "scenario": "Scenarij\\>", "scenario_outline": "Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"}, - \"hu": {"and": "\\%u00c9s\\>", "background": "H\\%u00e1tt\\%u00e9r\\>", "but": "De\\>", "examples": "P\\%u00e9ld\\%u00e1k\\>", "feature": "Jellemz\\%u0151\\>", "given": "Amennyiben\\>\\|Adott\\>", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\>", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat\\>", "then": "Akkor\\>", "when": "Amikor\\>\\|Majd\\>\\|Ha\\>"}, - \"id": {"and": "Dan\\>", "background": "Dasar\\>", "but": "Tapi\\>", "examples": "Contoh\\>", "feature": "Fitur\\>", "given": "Dengan\\>", "scenario": "Skenario\\>", "scenario_outline": "Skenario konsep\\>", "then": "Maka\\>", "when": "Ketika\\>"}, - \"is": {"and": "Og\\>", "background": "Bakgrunnur\\>", "but": "En\\>", "examples": "Atbur\\%u00f0ar\\%u00e1sir\\>\\|D\\%u00e6mi\\>", "feature": "Eiginleiki\\>", "given": "Ef\\>", "scenario": "Atbur\\%u00f0ar\\%u00e1s\\>", "scenario_outline": "L\\%u00fdsing Atbur\\%u00f0ar\\%u00e1sar\\>\\|L\\%u00fdsing D\\%u00e6ma\\>", "then": "\\%u00de\\%u00e1\\>", "when": "\\%u00deegar\\>"}, - \"it": {"and": "E\\>", "background": "Contesto\\>", "but": "Ma\\>", "examples": "Esempi\\>", "feature": "Funzionalit\\%u00e0\\>", "given": "Dato\\>\\|Data\\>\\|Dati\\>\\|Date\\>", "scenario": "Scenario\\>", "scenario_outline": "Schema dello scenario\\>", "then": "Allora\\>", "when": "Quando\\>"}, - \"ja": {"and": "\\%u304b\\%u3064", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u3057\\%u304b\\%u3057\\|\\%u305f\\%u3060\\%u3057\\|\\%u4f46\\%u3057", "examples": "\\%u30b5\\%u30f3\\%u30d7\\%u30eb\\>\\|\\%u4f8b\\>", "feature": "\\%u30d5\\%u30a3\\%u30fc\\%u30c1\\%u30e3\\>\\|\\%u6a5f\\%u80fd\\>", "given": "\\%u524d\\%u63d0", "scenario": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\>", "scenario_outline": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30a2\\%u30a6\\%u30c8\\%u30e9\\%u30a4\\%u30f3\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\%u30fc\\%u30c8\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>\\|\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>", "then": "\\%u306a\\%u3089\\%u3070", "when": "\\%u3082\\%u3057"}, - \"ko": {"and": "\\%uadf8\\%ub9ac\\%uace0", "background": "\\%ubc30\\%uacbd\\>", "but": "\\%ud558\\%uc9c0\\%ub9cc\\|\\%ub2e8", "examples": "\\%uc608\\>", "feature": "\\%uae30\\%ub2a5\\>", "given": "\\%uc870\\%uac74\\|\\%uba3c\\%uc800", "scenario": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624\\>", "scenario_outline": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624 \\%uac1c\\%uc694\\>", "then": "\\%uadf8\\%ub7ec\\%uba74", "when": "\\%ub9cc\\%uc77c\\|\\%ub9cc\\%uc57d"}, - \"lt": {"and": "Ir\\>", "background": "Kontekstas\\>", "but": "Bet\\>", "examples": "Pavyzd\\%u017eiai\\>\\|Scenarijai\\>\\|Variantai\\>", "feature": "Savyb\\%u0117\\>", "given": "Duota\\>", "scenario": "Scenarijus\\>", "scenario_outline": "Scenarijaus \\%u0161ablonas\\>", "then": "Tada\\>", "when": "Kai\\>"}, - \"lu": {"and": "an\\>\\|a\\>", "background": "Hannergrond\\>", "but": "m\\%u00e4\\>\\|awer\\>", "examples": "Beispiller\\>", "feature": "Funktionalit\\%u00e9it\\>", "given": "ugeholl\\>", "scenario": "Szenario\\>", "scenario_outline": "Plang vum Szenario\\>", "then": "dann\\>", "when": "wann\\>"}, - \"lv": {"and": "Un\\>", "background": "Situ\\%u0101cija\\>\\|Konteksts\\>", "but": "Bet\\>", "examples": "Piem\\%u0113ri\\>\\|Paraugs\\>", "feature": "Funkcionalit\\%u0101te\\>\\|F\\%u012b\\%u010da\\>", "given": "Kad\\>", "scenario": "Scen\\%u0101rijs\\>", "scenario_outline": "Scen\\%u0101rijs p\\%u0113c parauga\\>", "then": "Tad\\>", "when": "Ja\\>"}, - \"nl": {"and": "En\\>", "background": "Achtergrond\\>", "but": "Maar\\>", "examples": "Voorbeelden\\>", "feature": "Functionaliteit\\>", "given": "Gegeven\\>\\|Stel\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstract Scenario\\>", "then": "Dan\\>", "when": "Als\\>"}, - \"no": {"and": "Og\\>", "background": "Bakgrunn\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskap\\>", "given": "Gitt\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>\\|Scenariomal\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"}, - \"pl": {"and": "Oraz\\>\\|I\\>", "background": "Za\\%u0142o\\%u017cenia\\>", "but": "Ale\\>", "examples": "Przyk\\%u0142ady\\>", "feature": "W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\>\\|Potrzeba biznesowa\\>\\|Funkcja\\>\\|Aspekt\\>", "given": "Zak\\%u0142adaj\\%u0105c\\>\\|Maj\\%u0105c\\>", "scenario": "Scenariusz\\>", "scenario_outline": "Szablon scenariusza\\>", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>\\|Je\\%u015bli\\>\\|Kiedy\\>\\|Gdy\\>"}, - \"pt": {"and": "E\\>", "background": "Cen\\%u00e1rio de Fundo\\>\\|Cenario de Fundo\\>\\|Contexto\\>\\|Fundo\\>", "but": "Mas\\>", "examples": "Cen\\%u00e1rios\\>\\|Exemplos\\>\\|Cenarios\\>", "feature": "Caracter\\%u00edstica\\>\\|Funcionalidade\\>\\|Caracteristica\\>", "given": "Dadas\\>\\|Dados\\>\\|Dada\\>\\|Dado\\>", "scenario": "Cen\\%u00e1rio\\>\\|Cenario\\>", "scenario_outline": "Delinea\\%u00e7\\%u00e3o do Cen\\%u00e1rio\\>\\|Esquema do Cen\\%u00e1rio\\>\\|Delineacao do Cenario\\>\\|Esquema do Cenario\\>", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"}, - \"ro": {"and": "\\%u015ei\\>\\|\\%u0218i\\>\\|Si\\>", "background": "Context\\>", "but": "Dar\\>", "examples": "Exemple\\>", "feature": "Func\\%u0163ionalitate\\>\\|Func\\%u021bionalitate\\>\\|Functionalitate\\>", "given": "Da\\%u0163i fiind\\>\\|Da\\%u021bi fiind\\>\\|Dati fiind\\>\\|Date fiind\\>\\|Dat fiind\\>", "scenario": "Scenariu\\>", "scenario_outline": "Structur\\%u0103 scenariu\\>\\|Structura scenariu\\>", "then": "Atunci\\>", "when": "C\\%u00e2nd\\>\\|Cand\\>"}, - \"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0422\\%u0430\\%u043a\\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>\\|\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\>", "but": "\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u044b\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>\\|\\%u0421\\%u0432\\%u043e\\%u0439\\%u0441\\%u0442\\%u0432\\%u043e\\>\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u044f\\>", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>\\|\\%u041f\\%u0443\\%u0441\\%u0442\\%u044c\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f\\>", "then": "\\%u0422\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0415\\%u0441\\%u043b\\%u0438\\>"}, - \"sk": {"and": "A z\\%u00e1rove\\%u0148\\>\\|A taktie\\%u017e\\>\\|A tie\\%u017e\\>\\|A\\>", "background": "Pozadie\\>", "but": "Ale\\>", "examples": "Pr\\%u00edklady\\>", "feature": "Po\\%u017eiadavka\\>\\|Vlastnos\\%u0165\\>\\|Funkcia\\>", "given": "Za predpokladu\\>\\|Pokia\\%u013e\\>", "scenario": "Scen\\%u00e1r\\>", "scenario_outline": "N\\%u00e1\\%u010drt Scen\\%u00e1ru\\>\\|N\\%u00e1\\%u010drt Scen\\%u00e1ra\\>\\|Osnova Scen\\%u00e1ra\\>", "then": "Potom\\>\\|Tak\\>", "when": "Ke\\%u010f\\>\\|Ak\\>"}, - \"sr-Cyrl": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\>\\|\\%u041f\\%u043e\\%u0437\\%u0430\\%u0434\\%u0438\\%u043d\\%u0430\\>\\|\\%u041e\\%u0441\\%u043d\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0438\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0438\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041c\\%u043e\\%u0433\\%u0443\\%u045b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041e\\%u0441\\%u043e\\%u0431\\%u0438\\%u043d\\%u0430\\>", "given": "\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u043e\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0435\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0438\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\>\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\>\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430\\>", "then": "\\%u041e\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u041a\\%u0430\\%u0434\\%u0430\\>\\|\\%u041a\\%u0430\\%u0434\\>"}, - \"sr-Latn": {"and": "I\\>", "background": "Kontekst\\>\\|Pozadina\\>\\|Osnova\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Funkcionalnost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadato\\>\\|Zadate\\>\\|Zatati\\>", "scenario": "Scenario\\>\\|Primer\\>", "scenario_outline": "Struktura scenarija\\>\\|Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"}, - \"sv": {"and": "Och\\>", "background": "Bakgrund\\>", "but": "Men\\>", "examples": "Exempel\\>", "feature": "Egenskap\\>", "given": "Givet\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>\\|Scenariomall\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"}, - \"th": {"and": "\\%u0e41\\%u0e25\\%u0e30\\>", "background": "\\%u0e41\\%u0e19\\%u0e27\\%u0e04\\%u0e34\\%u0e14\\>", "but": "\\%u0e41\\%u0e15\\%u0e48\\>", "examples": "\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>\\|\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e15\\%u0e31\\%u0e27\\%u0e2d\\%u0e22\\%u0e48\\%u0e32\\%u0e07\\>", "feature": "\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e15\\%u0e49\\%u0e2d\\%u0e07\\%u0e01\\%u0e32\\%u0e23\\%u0e17\\%u0e32\\%u0e07\\%u0e18\\%u0e38\\%u0e23\\%u0e01\\%u0e34\\%u0e08\\>\\|\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e2a\\%u0e32\\%u0e21\\%u0e32\\%u0e23\\%u0e16\\>\\|\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2b\\%u0e25\\%u0e31\\%u0e01\\>", "given": "\\%u0e01\\%u0e33\\%u0e2b\\%u0e19\\%u0e14\\%u0e43\\%u0e2b\\%u0e49\\>", "scenario": "\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>", "scenario_outline": "\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2a\\%u0e23\\%u0e49\\%u0e32\\%u0e07\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>\\|\\%u0e2a\\%u0e23\\%u0e38\\%u0e1b\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\>", "then": "\\%u0e14\\%u0e31\\%u0e07\\%u0e19\\%u0e31\\%u0e49\\%u0e19\\>", "when": "\\%u0e40\\%u0e21\\%u0e37\\%u0e48\\%u0e2d\\>"}, - \"tl": {"and": "\\%u0c2e\\%u0c30\\%u0c3f\\%u0c2f\\%u0c41\\>", "background": "\\%u0c28\\%u0c47\\%u0c2a\\%u0c25\\%u0c4d\\%u0c2f\\%u0c02\\>", "but": "\\%u0c15\\%u0c3e\\%u0c28\\%u0c3f\\>", "examples": "\\%u0c09\\%u0c26\\%u0c3e\\%u0c39\\%u0c30\\%u0c23\\%u0c32\\%u0c41\\>", "feature": "\\%u0c17\\%u0c41\\%u0c23\\%u0c2e\\%u0c41\\>", "given": "\\%u0c1a\\%u0c46\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c2c\\%u0c21\\%u0c3f\\%u0c28\\%u0c26\\%u0c3f\\>", "scenario": "\\%u0c38\\%u0c28\\%u0c4d\\%u0c28\\%u0c3f\\%u0c35\\%u0c47\\%u0c36\\%u0c02\\>", "scenario_outline": "\\%u0c15\\%u0c25\\%u0c28\\%u0c02\\>", "then": "\\%u0c05\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c41\\%u0c21\\%u0c41\\>", "when": "\\%u0c08 \\%u0c2a\\%u0c30\\%u0c3f\\%u0c38\\%u0c4d\\%u0c25\\%u0c3f\\%u0c24\\%u0c3f\\%u0c32\\%u0c4b\\>"}, - \"tr": {"and": "Ve\\>", "background": "Ge\\%u00e7mi\\%u015f\\>", "but": "Fakat\\>\\|Ama\\>", "examples": "\\%u00d6rnekler\\>", "feature": "\\%u00d6zellik\\>", "given": "Diyelim ki\\>", "scenario": "Senaryo\\>", "scenario_outline": "Senaryo tasla\\%u011f\\%u0131\\>", "then": "O zaman\\>", "when": "E\\%u011fer ki\\>"}, - \"tt": {"and": "\\%u04ba\\%u04d9\\%u043c\\>\\|\\%u0412\\%u04d9\\>", "background": "\\%u041a\\%u0435\\%u0440\\%u0435\\%u0448\\>", "but": "\\%u041b\\%u04d9\\%u043a\\%u0438\\%u043d\\>\\|\\%u04d8\\%u043c\\%u043c\\%u0430\\>", "examples": "\\%u04ae\\%u0440\\%u043d\\%u04d9\\%u043a\\%u043b\\%u04d9\\%u0440\\>\\|\\%u041c\\%u0438\\%u0441\\%u0430\\%u043b\\%u043b\\%u0430\\%u0440\\>", "feature": "\\%u04ae\\%u0437\\%u0435\\%u043d\\%u0447\\%u04d9\\%u043b\\%u0435\\%u043a\\%u043b\\%u0435\\%u043b\\%u0435\\%u043a\\>\\|\\%u041c\\%u04e9\\%u043c\\%u043a\\%u0438\\%u043d\\%u043b\\%u0435\\%u043a\\>", "given": "\\%u04d8\\%u0439\\%u0442\\%u0438\\%u043a\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\%u043d\\%u044b\\%u04a3 \\%u0442\\%u04e9\\%u0437\\%u0435\\%u043b\\%u0435\\%u0448\\%u0435\\>", "then": "\\%u041d\\%u04d9\\%u0442\\%u0438\\%u0497\\%u04d9\\%u0434\\%u04d9\\>", "when": "\\%u04d8\\%u0433\\%u04d9\\%u0440\\>"}, - \"uk": {"and": "\\%u0410 \\%u0442\\%u0430\\%u043a\\%u043e\\%u0436\\>\\|\\%u0422\\%u0430\\>\\|\\%u0406\\>", "background": "\\%u041f\\%u0435\\%u0440\\%u0435\\%u0434\\%u0443\\%u043c\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0435\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043a\\%u043b\\%u0430\\%u0434\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0456\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e, \\%u0449\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e\\>\\|\\%u041d\\%u0435\\%u0445\\%u0430\\%u0439\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u044e\\>", "then": "\\%u0422\\%u043e\\%u0434\\%u0456\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u042f\\%u043a\\%u0449\\%u043e\\>\\|\\%u041a\\%u043e\\%u043b\\%u0438\\>"}, - \"uz": {"and": "\\%u0412\\%u0430\\>", "background": "\\%u0422\\%u0430\\%u0440\\%u0438\\%u0445\\>", "but": "\\%u041b\\%u0435\\%u043a\\%u0438\\%u043d\\>\\|\\%u0411\\%u0438\\%u0440\\%u043e\\%u043a\\>\\|\\%u0410\\%u043c\\%u043c\\%u043e\\>", "examples": "\\%u041c\\%u0438\\%u0441\\%u043e\\%u043b\\%u043b\\%u0430\\%u0440\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u0410\\%u0433\\%u0430\\%u0440\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439 \\%u0441\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430\\%u0441\\%u0438\\>", "then": "\\%u0423\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u0410\\%u0433\\%u0430\\%u0440\\>"}, - \"vi": {"and": "V\\%u00e0\\>", "background": "B\\%u1ed1i c\\%u1ea3nh\\>", "but": "Nh\\%u01b0ng\\>", "examples": "D\\%u1eef li\\%u1ec7u\\>", "feature": "T\\%u00ednh n\\%u0103ng\\>", "given": "Bi\\%u1ebft\\>\\|Cho\\>", "scenario": "T\\%u00ecnh hu\\%u1ed1ng\\>\\|K\\%u1ecbch b\\%u1ea3n\\>", "scenario_outline": "Khung t\\%u00ecnh hu\\%u1ed1ng\\>\\|Khung k\\%u1ecbch b\\%u1ea3n\\>", "then": "Th\\%u00ec\\>", "when": "Khi\\>"}, - \"zh-CN": {"and": "\\%u800c\\%u4e14\\|\\%u5e76\\%u4e14\\|\\%u540c\\%u65f6", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8bbe\\|\\%u5047\\%u5b9a", "scenario": "\\%u573a\\%u666f\\>\\|\\%u5267\\%u672c\\>", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\>\\|\\%u5267\\%u672c\\%u5927\\%u7eb2\\>", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"}, - \"zh-TW": {"and": "\\%u800c\\%u4e14\\|\\%u4e26\\%u4e14\\|\\%u540c\\%u6642", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8a2d\\|\\%u5047\\%u5b9a", "scenario": "\\%u5834\\%u666f\\>\\|\\%u5287\\%u672c\\>", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\>\\|\\%u5287\\%u672c\\%u5927\\%u7db1\\>", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}} + \"en": {"and": "And\\>", "background": "Background", "but": "But\\>", "examples": "Scenarios\\|Examples", "feature": "Business Need\\|Feature\\|Ability", "given": "Given\\>", "rule": "Rule", "scenario": "Scenario\\|Example", "scenario_outline": "Scenario Template\\|Scenario Outline", "then": "Then\\>", "when": "When\\>"}, + \"af": {"and": "En\\>", "background": "Agtergrond", "but": "Maar\\>", "examples": "Voorbeelde", "feature": "Besigheid Behoefte\\|Funksie\\|Vermo\\%u00eb", "given": "Gegewe\\>", "rule": "Regel", "scenario": "Voorbeeld\\|Situasie", "scenario_outline": "Situasie Uiteensetting", "then": "Dan\\>", "when": "Wanneer\\>"}, + \"am": {"and": "\\%u0535\\%u057e\\>", "background": "\\%u053f\\%u0578\\%u0576\\%u057f\\%u0565\\%u0584\\%u057d\\%u057f", "but": "\\%u0532\\%u0561\\%u0575\\%u0581\\>", "examples": "\\%u0555\\%u0580\\%u056b\\%u0576\\%u0561\\%u056f\\%u0576\\%u0565\\%u0580", "feature": "\\%u0556\\%u0578\\%u0582\\%u0576\\%u056f\\%u0581\\%u056b\\%u0578\\%u0576\\%u0561\\%u056c\\%u0578\\%u0582\\%u0569\\%u0575\\%u0578\\%u0582\\%u0576\\|\\%u0540\\%u0561\\%u057f\\%u056f\\%u0578\\%u0582\\%u0569\\%u0575\\%u0578\\%u0582\\%u0576", "given": "\\%u0534\\%u056b\\%u0581\\%u0578\\%u0582\\%u0584\\>", "rule": "Rule", "scenario": "\\%u0555\\%u0580\\%u056b\\%u0576\\%u0561\\%u056f\\|\\%u054d\\%u0581\\%u0565\\%u0576\\%u0561\\%u0580", "scenario_outline": "\\%u054d\\%u0581\\%u0565\\%u0576\\%u0561\\%u0580\\%u056b \\%u056f\\%u0561\\%u057c\\%u0578\\%u0582\\%u0581\\%u057e\\%u0561\\%u0581\\%u0584\\%u0568", "then": "\\%u0531\\%u057a\\%u0561\\>", "when": "\\%u0535\\%u0569\\%u0565\\>\\|\\%u0535\\%u0580\\%u0562\\>"}, + \"amh": {"and": "\\%u12a5\\%u1293\\>", "background": "\\%u1245\\%u12f5\\%u1218 \\%u1201\\%u1294\\%u1273\\|\\%u1218\\%u1290\\%u123b \\%u1200\\%u1233\\%u1265\\|\\%u1218\\%u1290\\%u123b", "but": "\\%u130d\\%u1295\\>", "examples": "\\%u121d\\%u1233\\%u120c\\%u12ce\\%u127d\\|\\%u1201\\%u1293\\%u1274\\%u12ce\\%u127d", "feature": "\\%u12e8\\%u121a\\%u1348\\%u1208\\%u1308\\%u12cd \\%u12f5\\%u122d\\%u130a\\%u1275\\|\\%u12e8\\%u1270\\%u1348\\%u1208\\%u1308\\%u12cd \\%u1235\\%u122b\\|\\%u1235\\%u122b", "given": "\\%u12e8\\%u1270\\%u1230\\%u1320\\>", "rule": "\\%u1205\\%u130d", "scenario": "\\%u121d\\%u1233\\%u120c\\|\\%u1201\\%u1293\\%u1274", "scenario_outline": "\\%u1201\\%u1293\\%u1274 \\%u12dd\\%u122d\\%u12dd\\%u122d\\|\\%u1201\\%u1293\\%u1274 \\%u12a0\\%u1265\\%u1290\\%u1275", "then": "\\%u12a8\\%u12da\\%u12eb\\>", "when": "\\%u1218\\%u127c\\>"}, + \"an": {"and": "Y\\>\\|E\\>", "background": "Antecedents", "but": "Pero\\>", "examples": "Eixemplos", "feature": "Caracteristica", "given": "Dadas\\>\\|Dada\\>\\|Daus\\>\\|Dau\\>", "rule": "Rule", "scenario": "Eixemplo\\|Caso", "scenario_outline": "Esquema del caso", "then": "Antonces\\>\\|Alavez\\>\\|Allora\\>", "when": "Cuan\\>"}, + \"ar": {"and": "\\%u0648\\>", "background": "\\%u0627\\%u0644\\%u062e\\%u0644\\%u0641\\%u064a\\%u0629", "but": "\\%u0644\\%u0643\\%u0646\\>", "examples": "\\%u0627\\%u0645\\%u062b\\%u0644\\%u0629", "feature": "\\%u062e\\%u0627\\%u0635\\%u064a\\%u0629", "given": "\\%u0628\\%u0641\\%u0631\\%u0636\\>", "rule": "Rule", "scenario": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648\\|\\%u0645\\%u062b\\%u0627\\%u0644", "scenario_outline": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648 \\%u0645\\%u062e\\%u0637\\%u0637", "then": "\\%u0627\\%u0630\\%u0627\\%u064b\\>\\|\\%u062b\\%u0645\\>", "when": "\\%u0639\\%u0646\\%u062f\\%u0645\\%u0627\\>\\|\\%u0645\\%u062a\\%u0649\\>"}, + \"ast": {"and": "Ya\\>\\|Y\\>", "background": "Antecedentes", "but": "Peru\\>", "examples": "Exemplos", "feature": "Carauter\\%u00edstica", "given": "Dada\\>\\|Daos\\>\\|Daes\\>\\|D\\%u00e1u\\>", "rule": "Rule", "scenario": "Exemplo\\|Casu", "scenario_outline": "Esbozu del casu", "then": "Ent\\%u00f3s\\>", "when": "Cuando\\>"}, + \"az": {"and": "H\\%u0259m\\>\\|V\\%u0259\\>", "background": "Kontekst\\|Ke\\%u00e7mi\\%u015f", "but": "Ancaq\\>\\|Amma\\>", "examples": "N\\%u00fcmun\\%u0259l\\%u0259r", "feature": "\\%u00d6z\\%u0259llik", "given": "Tutaq ki\\>\\|Verilir\\>", "rule": "Rule", "scenario": "Ssenari\\|N\\%u00fcmun\\%u0259", "scenario_outline": "Ssenarinin strukturu", "then": "O halda\\>", "when": "N\\%u0259 vaxt ki\\>\\|\\%u018fg\\%u0259r\\>"}, + \"bg": {"and": "\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u0438\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>", "rule": "\\%u041f\\%u0440\\%u0430\\%u0432\\%u0438\\%u043b\\%u043e", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440", "scenario_outline": "\\%u0420\\%u0430\\%u043c\\%u043a\\%u0430 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "then": "\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\%u0442\\%u043e\\>"}, + \"bm": {"and": "Dan\\>", "background": "Latar Belakang", "but": "Tetapi\\>\\|Tapi\\>", "examples": "Contoh", "feature": "Fungsi", "given": "Diberi\\>\\|Bagi\\>", "rule": "Rule", "scenario": "Senario\\|Situasi\\|Keadaan", "scenario_outline": "Garis Panduan Senario\\|Kerangka Senario\\|Kerangka Situasi\\|Kerangka Keadaan", "then": "Kemudian\\>\\|Maka\\>", "when": "Apabila\\>"}, + \"bs": {"and": "I\\>\\|A\\>", "background": "Pozadina", "but": "Ali\\>", "examples": "Primjeri", "feature": "Karakteristika", "given": "Dato\\>", "rule": "Rule", "scenario": "Scenariju\\|Scenario\\|Primjer", "scenario_outline": "Scenario-outline\\|Scenariju-obris", "then": "Zatim\\>", "when": "Kada\\>"}, + \"ca": {"and": "I\\>", "background": "Antecedents\\|Rerefons", "but": "Per\\%u00f2\\>", "examples": "Exemples", "feature": "Caracter\\%u00edstica\\|Funcionalitat", "given": "Donada\\>\\|Donat\\>\\|Atesa\\>\\|At\\%u00e8s\\>", "rule": "Rule", "scenario": "Escenari\\|Exemple", "scenario_outline": "Esquema de l'escenari", "then": "Aleshores\\>\\|Cal\\>", "when": "Quan\\>"}, + \"cs": {"and": "A tak\\%u00e9\\>\\|A\\>", "background": "Kontext\\|Pozad\\%u00ed", "but": "Ale\\>", "examples": "P\\%u0159\\%u00edklady", "feature": "Po\\%u017eadavek", "given": "Za p\\%u0159edpokladu\\>\\|Pokud\\>", "rule": "Pravidlo", "scenario": "P\\%u0159\\%u00edklad\\|Sc\\%u00e9n\\%u00e1\\%u0159", "scenario_outline": "Osnova sc\\%u00e9n\\%u00e1\\%u0159e\\|N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e", "then": "Pak\\>", "when": "Kdy\\%u017e\\>"}, + \"cy-GB": {"and": "A\\>", "background": "Cefndir", "but": "Ond\\>", "examples": "Enghreifftiau", "feature": "Arwedd", "given": "Anrhegedig a\\>", "rule": "Rule", "scenario": "Enghraifft\\|Scenario", "scenario_outline": "Scenario Amlinellol", "then": "Yna\\>", "when": "Pryd\\>"}, + \"da": {"and": "Og\\>", "background": "Baggrund", "but": "Men\\>", "examples": "Eksempler", "feature": "Egenskab", "given": "Givet\\>", "rule": "Rule", "scenario": "Eksempel\\|Scenarie", "scenario_outline": "Abstrakt Scenario", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"}, + \"de": {"and": "Und\\>", "background": "Voraussetzungen\\|Vorbedingungen\\|Hintergrund\\|Grundlage", "but": "Aber\\>", "examples": "Beispiele", "feature": "Funktionalit\\%u00e4t\\|Funktion", "given": "Gegeben seien\\>\\|Gegeben sei\\>\\|Angenommen\\>", "rule": "Regel\\|Rule", "scenario": "Beispiel\\|Szenario", "scenario_outline": "Szenariogrundriss\\|Szenarien", "then": "Dann\\>", "when": "Wenn\\>"}, + \"el": {"and": "\\%u039a\\%u03b1\\%u03b9\\>", "background": "\\%u03a5\\%u03c0\\%u03cc\\%u03b2\\%u03b1\\%u03b8\\%u03c1\\%u03bf", "but": "\\%u0391\\%u03bb\\%u03bb\\%u03ac\\>", "examples": "\\%u03a0\\%u03b1\\%u03c1\\%u03b1\\%u03b4\\%u03b5\\%u03af\\%u03b3\\%u03bc\\%u03b1\\%u03c4\\%u03b1\\|\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03b1", "feature": "\\%u0394\\%u03c5\\%u03bd\\%u03b1\\%u03c4\\%u03cc\\%u03c4\\%u03b7\\%u03c4\\%u03b1\\|\\%u039b\\%u03b5\\%u03b9\\%u03c4\\%u03bf\\%u03c5\\%u03c1\\%u03b3\\%u03af\\%u03b1", "given": "\\%u0394\\%u03b5\\%u03b4\\%u03bf\\%u03bc\\%u03ad\\%u03bd\\%u03bf\\%u03c5\\>", "rule": "Rule", "scenario": "\\%u03a0\\%u03b1\\%u03c1\\%u03ac\\%u03b4\\%u03b5\\%u03b9\\%u03b3\\%u03bc\\%u03b1\\|\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03bf", "scenario_outline": "\\%u03a0\\%u03b5\\%u03c1\\%u03af\\%u03b3\\%u03c1\\%u03b1\\%u03bc\\%u03bc\\%u03b1 \\%u03a3\\%u03b5\\%u03bd\\%u03b1\\%u03c1\\%u03af\\%u03bf\\%u03c5\\|\\%u03a0\\%u03b5\\%u03c1\\%u03b9\\%u03b3\\%u03c1\\%u03b1\\%u03c6\\%u03ae \\%u03a3\\%u03b5\\%u03bd\\%u03b1\\%u03c1\\%u03af\\%u03bf\\%u03c5", "then": "\\%u03a4\\%u03cc\\%u03c4\\%u03b5\\>", "when": "\\%u038c\\%u03c4\\%u03b1\\%u03bd\\>"}, + \"em": {"and": "\\%u1f602", "background": "\\%u1f4a4", "but": "\\%u1f614", "examples": "\\%u1f4d3", "feature": "\\%u1f4da", "given": "\\%u1f610", "rule": "Rule", "scenario": "\\%u1f952\\|\\%u1f4d5", "scenario_outline": "\\%u1f4d6", "then": "\\%u1f64f", "when": "\\%u1f3ac"}, + \"en-Scouse": {"and": "An\\>", "background": "Dis is what went down", "but": "Buh\\>", "examples": "Examples", "feature": "Feature", "given": "Youse know when youse got\\>\\|Givun\\>", "rule": "Rule", "scenario": "The thing of it is", "scenario_outline": "Wharrimean is", "then": "Den youse gotta\\>\\|Dun\\>", "when": "Youse know like when\\>\\|Wun\\>"}, + \"en-au": {"and": "Too right\\>", "background": "First off", "but": "Yeah nah\\>", "examples": "You'll wanna", "feature": "Pretty much", "given": "Y'know\\>", "rule": "Rule", "scenario": "Awww, look mate", "scenario_outline": "Reckon it's like", "then": "But at the end of the day I reckon\\>", "when": "It's just unbelievable\\>"}, + \"en-lol": {"and": "AN\\>", "background": "B4", "but": "BUT\\>", "examples": "EXAMPLZ", "feature": "OH HAI", "given": "I CAN HAZ\\>", "rule": "Rule", "scenario": "MISHUN", "scenario_outline": "MISHUN SRSLY", "then": "DEN\\>", "when": "WEN\\>"}, + \"en-old": {"and": "Ond\\>\\|7\\>", "background": "Aer\\|\\%u00c6r", "but": "Ac\\>", "examples": "Se the\\|Se \\%u00fee\\|Se \\%u00f0e", "feature": "Hwaet\\|Hw\\%u00e6t", "given": "Thurh\\>\\|\\%u00deurh\\>\\|\\%u00d0urh\\>", "rule": "Rule", "scenario": "Swa", "scenario_outline": "Swa hwaer swa\\|Swa hw\\%u00e6r swa", "then": "Tha the\\>\\|\\%u00dea \\%u00fee\\>\\|\\%u00d0a \\%u00f0e\\>\\|Tha\\>\\|\\%u00dea\\>\\|\\%u00d0a\\>", "when": "B\\%u00e6\\%u00fesealfa\\>\\|B\\%u00e6\\%u00fesealfe\\>\\|B\\%u00e6\\%u00fesealf\\>\\|Ciric\\%u00e6we\\>\\|Ciric\\%u00e6wa\\>\\|Ciric\\%u00e6w\\>"}, + \"en-pirate": {"and": "Aye\\>", "background": "Yo-ho-ho", "but": "Avast!\\>", "examples": "Dead men tell no tales", "feature": "Ahoy matey!", "given": "Gangway!\\>", "rule": "Rule", "scenario": "Heave to", "scenario_outline": "Shiver me timbers", "then": "Let go and haul\\>", "when": "Blimey!\\>"}, + \"en-tx": {"and": "Come hell or high water\\>", "background": "Lemme tell y'all a story", "but": "Well now hold on, I'll you what\\>", "examples": "Now that's a story longer than a cattle drive in July", "feature": "This ain\\%u2019t my first rodeo\\|All gussied up", "given": "All git out\\>\\|Fixin' to\\>", "rule": "Rule\\>", "scenario": "All hat and no cattle", "scenario_outline": "Busy as a hound in flea season\\|Serious as a snake bite", "then": "There\\%u2019s no tree but bears some fruit\\>", "when": "Quick out of the chute\\>"}, + \"eo": {"and": "Kaj\\>", "background": "Fono", "but": "Sed\\>", "examples": "Ekzemploj", "feature": "Trajto", "given": "Donita\\%u0135o\\>\\|Komence\\>", "rule": "Rule", "scenario": "Ekzemplo\\|Scenaro\\|Kazo", "scenario_outline": "Konturo de la scenaro\\|Kazo-skizo\\|Skizo", "then": "Do\\>", "when": "Se\\>"}, + \"es": {"and": "Y\\>\\|E\\>", "background": "Antecedentes", "but": "Pero\\>", "examples": "Ejemplos", "feature": "Necesidad del negocio\\|Caracter\\%u00edstica\\|Requisito", "given": "Dados\\>\\|Dadas\\>\\|Dado\\>\\|Dada\\>", "rule": "Regla de negocio\\|Regla", "scenario": "Escenario\\|Ejemplo", "scenario_outline": "Esquema del escenario", "then": "Entonces\\>", "when": "Cuando\\>"}, + \"et": {"and": "Ja\\>", "background": "Taust", "but": "Kuid\\>", "examples": "Juhtumid", "feature": "Omadus", "given": "Eeldades\\>", "rule": "Reegel", "scenario": "Stsenaarium\\|Juhtum", "scenario_outline": "Raamstsenaarium\\|Raamjuhtum", "then": "Siis\\>", "when": "Kui\\>"}, + \"fa": {"and": "\\%u0648\\>", "background": "\\%u0632\\%u0645\\%u06cc\\%u0646\\%u0647", "but": "\\%u0627\\%u0645\\%u0627\\>", "examples": "\\%u0646\\%u0645\\%u0648\\%u0646\\%u0647 \\%u0647\\%u0627", "feature": "\\%u0648\\%u0650\\%u06cc\\%u0698\\%u06af\\%u06cc", "given": "\\%u0628\\%u0627 \\%u0641\\%u0631\\%u0636\\>", "rule": "Rule", "scenario": "\\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648\\|\\%u0645\\%u062b\\%u0627\\%u0644", "scenario_outline": "\\%u0627\\%u0644\\%u06af\\%u0648\\%u06cc \\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648", "then": "\\%u0622\\%u0646\\%u06af\\%u0627\\%u0647\\>", "when": "\\%u0647\\%u0646\\%u06af\\%u0627\\%u0645\\%u06cc\\>"}, + \"fi": {"and": "Ja\\>", "background": "Tausta", "but": "Mutta\\>", "examples": "Tapaukset", "feature": "Ominaisuus", "given": "Oletetaan\\>", "rule": "Rule", "scenario": "Tapaus", "scenario_outline": "Tapausaihio", "then": "Niin\\>", "when": "Kun\\>"}, + \"fr": {"and": "Et que\\>\\|Et qu'\\|Et\\>", "background": "Contexte", "but": "Mais que\\>\\|Mais qu'\\|Mais\\>", "examples": "Exemples", "feature": "Fonctionnalit\\%u00e9", "given": "Etant donn\\%u00e9 que\\>\\|\\%u00c9tant donn\\%u00e9 que\\>\\|Etant donn\\%u00e9 qu'\\|\\%u00c9tant donn\\%u00e9 qu'\\|Etant donn\\%u00e9es\\>\\|\\%u00c9tant donn\\%u00e9es\\>\\|Etant donn\\%u00e9e\\>\\|Etant donn\\%u00e9s\\>\\|\\%u00c9tant donn\\%u00e9e\\>\\|\\%u00c9tant donn\\%u00e9s\\>\\|Sachant que\\>\\|Etant donn\\%u00e9\\>\\|\\%u00c9tant donn\\%u00e9\\>\\|Sachant qu'\\|Sachant\\>\\|Soit\\>", "rule": "R\\%u00e8gle", "scenario": "Sc\\%u00e9nario\\|Exemple", "scenario_outline": "Plan du sc\\%u00e9nario\\|Plan du Sc\\%u00e9nario", "then": "Alors\\>\\|Donc\\>", "when": "Lorsque\\>\\|Lorsqu'\\|Quand\\>"}, + \"ga": {"and": "Agus", "background": "C\\%u00falra", "but": "Ach", "examples": "Sampla\\%u00ed", "feature": "Gn\\%u00e9", "given": "Cuir i gc\\%u00e1s nach\\|Cuir i gc\\%u00e1s gur\\|Cuir i gc\\%u00e1s n\\%u00e1r\\|Cuir i gc\\%u00e1s go", "rule": "Rule", "scenario": "Sampla\\|C\\%u00e1s", "scenario_outline": "C\\%u00e1s Achomair", "then": "Ansin", "when": "Nuair nach\\|Nuair n\\%u00e1r\\|Nuair ba\\|Nuair a"}, + \"gj": {"and": "\\%u0a85\\%u0aa8\\%u0ac7\\>", "background": "\\%u0aac\\%u0ac7\\%u0a95\\%u0a97\\%u0acd\\%u0ab0\\%u0abe\\%u0a89\\%u0aa8\\%u0acd\\%u0aa1", "but": "\\%u0aaa\\%u0aa3\\>", "examples": "\\%u0a89\\%u0aa6\\%u0abe\\%u0ab9\\%u0ab0\\%u0aa3\\%u0acb", "feature": "\\%u0ab5\\%u0acd\\%u0aaf\\%u0abe\\%u0aaa\\%u0abe\\%u0ab0 \\%u0a9c\\%u0ab0\\%u0ac2\\%u0ab0\\|\\%u0a95\\%u0acd\\%u0ab7\\%u0aae\\%u0aa4\\%u0abe\\|\\%u0ab2\\%u0a95\\%u0acd\\%u0ab7\\%u0aa3", "given": "\\%u0a86\\%u0aaa\\%u0ac7\\%u0ab2 \\%u0a9b\\%u0ac7\\>", "rule": "Rule", "scenario": "\\%u0a89\\%u0aa6\\%u0abe\\%u0ab9\\%u0ab0\\%u0aa3\\|\\%u0ab8\\%u0acd\\%u0aa5\\%u0abf\\%u0aa4\\%u0abf", "scenario_outline": "\\%u0aaa\\%u0ab0\\%u0abf\\%u0aa6\\%u0acd\\%u0aa6\\%u0ab6\\%u0acd\\%u0aaf \\%u0ab0\\%u0ac2\\%u0aaa\\%u0ab0\\%u0ac7\\%u0a96\\%u0abe\\|\\%u0aaa\\%u0ab0\\%u0abf\\%u0aa6\\%u0acd\\%u0aa6\\%u0ab6\\%u0acd\\%u0aaf \\%u0aa2\\%u0abe\\%u0a82\\%u0a9a\\%u0acb", "then": "\\%u0aaa\\%u0a9b\\%u0ac0\\>", "when": "\\%u0a95\\%u0acd\\%u0aaf\\%u0abe\\%u0ab0\\%u0ac7\\>"}, + \"gl": {"and": "E\\>", "background": "Contexto", "but": "Mais\\>\\|Pero\\>", "examples": "Exemplos", "feature": "Caracter\\%u00edstica", "given": "Dados\\>\\|Dadas\\>\\|Dado\\>\\|Dada\\>", "rule": "Rule", "scenario": "Escenario\\|Exemplo", "scenario_outline": "Esbozo do escenario", "then": "Ent\\%u00f3n\\>\\|Logo\\>", "when": "Cando\\>"}, + \"he": {"and": "\\%u05d5\\%u05d2\\%u05dd\\>", "background": "\\%u05e8\\%u05e7\\%u05e2", "but": "\\%u05d0\\%u05d1\\%u05dc\\>", "examples": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\%u05d5\\%u05ea", "feature": "\\%u05ea\\%u05db\\%u05d5\\%u05e0\\%u05d4", "given": "\\%u05d1\\%u05d4\\%u05d9\\%u05e0\\%u05ea\\%u05df\\>", "rule": "\\%u05db\\%u05dc\\%u05dc", "scenario": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\|\\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9", "scenario_outline": "\\%u05ea\\%u05d1\\%u05e0\\%u05d9\\%u05ea \\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9", "then": "\\%u05d0\\%u05d6\\%u05d9\\>\\|\\%u05d0\\%u05d6\\>", "when": "\\%u05db\\%u05d0\\%u05e9\\%u05e8\\>"}, + \"hi": {"and": "\\%u0924\\%u0925\\%u093e\\>\\|\\%u0914\\%u0930\\>", "background": "\\%u092a\\%u0943\\%u0937\\%u094d\\%u0920\\%u092d\\%u0942\\%u092e\\%u093f", "but": "\\%u092a\\%u0930\\%u0928\\%u094d\\%u0924\\%u0941\\>\\|\\%u0915\\%u093f\\%u0928\\%u094d\\%u0924\\%u0941\\>\\|\\%u092a\\%u0930\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923", "feature": "\\%u0930\\%u0942\\%u092a \\%u0932\\%u0947\\%u0916", "given": "\\%u091a\\%u0942\\%u0902\\%u0915\\%u093f\\>\\|\\%u0905\\%u0917\\%u0930\\>\\|\\%u092f\\%u0926\\%u093f\\>", "rule": "\\%u0928\\%u093f\\%u092f\\%u092e", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e", "then": "\\%u0924\\%u0926\\%u093e\\>\\|\\%u0924\\%u092c\\>", "when": "\\%u0915\\%u0926\\%u093e\\>\\|\\%u091c\\%u092c\\>"}, + \"hr": {"and": "I\\>", "background": "Pozadina", "but": "Ali\\>", "examples": "Scenariji\\|Primjeri", "feature": "Mogu\\%u0107nost\\|Mogucnost\\|Osobina", "given": "Ukoliko\\>\\|Zadani\\>\\|Zadano\\>\\|Zadan\\>", "rule": "Rule", "scenario": "Scenarij\\|Primjer", "scenario_outline": "Koncept\\|Skica", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"}, + \"ht": {"and": "Epi\\>\\|Ak\\>\\|E\\>", "background": "Kont\\%u00e8ks\\|Istorik", "but": "Men\\>", "examples": "Egzanp", "feature": "Karakteristik\\|Fonksyonalite\\|Mak", "given": "Sipoze ke\\>\\|Sipoze Ke\\>\\|Sipoze\\>", "rule": "Rule", "scenario": "Senaryo", "scenario_outline": "Senaryo deskripsyon\\|Senaryo Deskripsyon\\|Dyagram senaryo\\|Dyagram Senaryo\\|Plan senaryo\\|Plan Senaryo", "then": "L\\%u00e8 sa a\\>\\|Le sa a\\>", "when": "L\\%u00e8\\>\\|Le\\>"}, + \"hu": {"and": "\\%u00c9s\\>", "background": "H\\%u00e1tt\\%u00e9r", "but": "De\\>", "examples": "P\\%u00e9ld\\%u00e1k", "feature": "Jellemz\\%u0151", "given": "Amennyiben\\>\\|Adott\\>", "rule": "Szab\\%u00e1ly", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\|P\\%u00e9lda", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat", "then": "Akkor\\>", "when": "Amikor\\>\\|Majd\\>\\|Ha\\>"}, + \"id": {"and": "Dan\\>", "background": "Latar Belakang\\|Dasar", "but": "Tetapi\\>\\|Tapi\\>", "examples": "Contoh\\|Misal", "feature": "Fitur", "given": "Diasumsikan\\>\\|Diketahui\\>\\|Dengan\\>\\|Bila\\>\\|Jika\\>", "rule": "Aturan\\|Rule", "scenario": "Skenario", "scenario_outline": "Garis-Besar Skenario\\|Skenario konsep", "then": "Kemudian\\>\\|Maka\\>", "when": "Ketika\\>"}, + \"is": {"and": "Og\\>", "background": "Bakgrunnur", "but": "En\\>", "examples": "Atbur\\%u00f0ar\\%u00e1sir\\|D\\%u00e6mi", "feature": "Eiginleiki", "given": "Ef\\>", "rule": "Rule", "scenario": "Atbur\\%u00f0ar\\%u00e1s", "scenario_outline": "L\\%u00fdsing Atbur\\%u00f0ar\\%u00e1sar\\|L\\%u00fdsing D\\%u00e6ma", "then": "\\%u00de\\%u00e1\\>", "when": "\\%u00deegar\\>"}, + \"it": {"and": "E\\>", "background": "Contesto", "but": "Ma\\>", "examples": "Esempi", "feature": "Esigenza di Business\\|Funzionalit\\%u00e0\\|Abilit\\%u00e0", "given": "Dato\\>\\|Data\\>\\|Dati\\>\\|Date\\>", "rule": "Regola", "scenario": "Scenario\\|Esempio", "scenario_outline": "Schema dello scenario", "then": "Allora\\>", "when": "Quando\\>"}, + \"ja": {"and": "\\%u4e14\\%u3064\\|\\%u304b\\%u3064", "background": "\\%u80cc\\%u666f", "but": "\\%u3057\\%u304b\\%u3057\\|\\%u305f\\%u3060\\%u3057\\|\\%u7136\\%u3057\\|\\%u4f46\\%u3057", "examples": "\\%u30b5\\%u30f3\\%u30d7\\%u30eb\\|\\%u4f8b", "feature": "\\%u30d5\\%u30a3\\%u30fc\\%u30c1\\%u30e3\\|\\%u6a5f\\%u80fd", "given": "\\%u524d\\%u63d0", "rule": "\\%u30eb\\%u30fc\\%u30eb", "scenario": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa", "scenario_outline": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30a2\\%u30a6\\%u30c8\\%u30e9\\%u30a4\\%u30f3\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\%u30fc\\%u30c8\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\|\\%u30c6\\%u30f3\\%u30d7\\%u30ec", "then": "\\%u306a\\%u3089\\%u3070", "when": "\\%u3082\\%u3057"}, + \"jv": {"and": "Lan\\>", "background": "Dasar", "but": "Ananging\\>\\|Nanging\\>\\|Tapi\\>", "examples": "Contone\\|Conto", "feature": "Fitur", "given": "Nalikaning\\>\\|Nalika\\>", "rule": "Rule", "scenario": "Skenario", "scenario_outline": "Konsep skenario", "then": "Banjur\\>\\|Njuk\\>", "when": "Manawa\\>\\|Menawa\\>"}, + \"ka": {"and": "\\%u10d0\\%u10e1\\%u10d4\\%u10d5\\%u10d4\\>\\|\\%u10d3\\%u10d0\\>", "background": "\\%u10d9\\%u10dd\\%u10dc\\%u10e2\\%u10d4\\%u10e5\\%u10e1\\%u10e2\\%u10d8", "but": "\\%u10db\\%u10d0\\%u10d2\\%u10e0\\%u10d0\\%u10db\\>\\|\\%u10d7\\%u10e3\\%u10db\\%u10ea\\%u10d0\\>", "examples": "\\%u10db\\%u10d0\\%u10d2\\%u10d0\\%u10da\\%u10d8\\%u10d7\\%u10d4\\%u10d1\\%u10d8", "feature": "\\%u10db\\%u10dd\\%u10d7\\%u10ee\\%u10dd\\%u10d5\\%u10dc\\%u10d0\\|\\%u10d7\\%u10d5\\%u10d8\\%u10e1\\%u10d4\\%u10d1\\%u10d0", "given": "\\%u10db\\%u10dd\\%u10ea\\%u10d4\\%u10db\\%u10e3\\%u10da\\%u10d8\\%u10d0\\>\\|\\%u10db\\%u10dd\\%u10ea\\%u10d4\\%u10db\\%u10e3\\%u10da\\%u10d8\\>\\|\\%u10d5\\%u10d7\\%u10e5\\%u10d5\\%u10d0\\%u10d7\\>", "rule": "\\%u10ec\\%u10d4\\%u10e1\\%u10d8", "scenario": "\\%u10db\\%u10d0\\%u10d2\\%u10d0\\%u10da\\%u10d8\\%u10d7\\%u10d0\\%u10d3\\|\\%u10db\\%u10d0\\%u10d2\\%u10d0\\%u10da\\%u10d8\\%u10d7\\%u10d8\\|\\%u10e1\\%u10ea\\%u10d4\\%u10dc\\%u10d0\\%u10e0\\%u10d8\\|\\%u10db\\%u10d0\\%u10d2", "scenario_outline": "\\%u10e1\\%u10ea\\%u10d4\\%u10dc\\%u10d0\\%u10e0\\%u10d8\\%u10e1 \\%u10e8\\%u10d0\\%u10d1\\%u10da\\%u10dd\\%u10dc\\%u10d8\\|\\%u10e1\\%u10ea\\%u10d4\\%u10dc\\%u10d0\\%u10e0\\%u10d8\\%u10e1 \\%u10dc\\%u10d8\\%u10db\\%u10e3\\%u10e8\\%u10d8\\|\\%u10e8\\%u10d0\\%u10d1\\%u10da\\%u10dd\\%u10dc\\%u10d8\\|\\%u10dc\\%u10d8\\%u10db\\%u10e3\\%u10e8\\%u10d8", "then": "\\%u10db\\%u10d0\\%u10e8\\%u10d8\\%u10dc\\>", "when": "\\%u10e0\\%u10dd\\%u10d2\\%u10dd\\%u10e0\\%u10ea \\%u10d9\\%u10d8\\>\\|\\%u10e0\\%u10dd\\%u10d3\\%u10d4\\%u10e1\\%u10d0\\%u10ea\\>\\|\\%u10e0\\%u10dd\\%u10ea\\%u10d0\\>\\|\\%u10d7\\%u10e3\\>"}, + \"kn": {"and": "\\%u0cae\\%u0ca4\\%u0ccd\\%u0ca4\\%u0cc1\\>", "background": "\\%u0cb9\\%u0cbf\\%u0ca8\\%u0ccd\\%u0ca8\\%u0cc6\\%u0cb2\\%u0cc6", "but": "\\%u0c86\\%u0ca6\\%u0cb0\\%u0cc6\\>", "examples": "\\%u0c89\\%u0ca6\\%u0cbe\\%u0cb9\\%u0cb0\\%u0ca3\\%u0cc6\\%u0c97\\%u0cb3\\%u0cc1", "feature": "\\%u0cb9\\%u0cc6\\%u0c9a\\%u0ccd\\%u0c9a\\%u0cb3", "given": "\\%u0ca8\\%u0cbf\\%u0cd5\\%u0ca1\\%u0cbf\\%u0ca6\\>", "rule": "Rule", "scenario": "\\%u0c95\\%u0ca5\\%u0cbe\\%u0cb8\\%u0cbe\\%u0cb0\\%u0cbe\\%u0c82\\%u0cb6\\|\\%u0c89\\%u0ca6\\%u0cbe\\%u0cb9\\%u0cb0\\%u0ca3\\%u0cc6", "scenario_outline": "\\%u0cb5\\%u0cbf\\%u0cb5\\%u0cb0\\%u0ca3\\%u0cc6", "then": "\\%u0ca8\\%u0c82\\%u0ca4\\%u0cb0\\>", "when": "\\%u0cb8\\%u0ccd\\%u0ca5\\%u0cbf\\%u0ca4\\%u0cbf\\%u0caf\\%u0ca8\\%u0ccd\\%u0ca8\\%u0cc1\\>"}, + \"ko": {"and": "\\%uadf8\\%ub9ac\\%uace0", "background": "\\%ubc30\\%uacbd", "but": "\\%ud558\\%uc9c0\\%ub9cc\\|\\%ub2e8", "examples": "\\%uc608", "feature": "\\%uae30\\%ub2a5", "given": "\\%uc870\\%uac74\\|\\%uba3c\\%uc800", "rule": "Rule", "scenario": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624", "scenario_outline": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624 \\%uac1c\\%uc694", "then": "\\%uadf8\\%ub7ec\\%uba74", "when": "\\%ub9cc\\%uc77c\\|\\%ub9cc\\%uc57d"}, + \"lt": {"and": "Ir\\>", "background": "Kontekstas", "but": "Bet\\>", "examples": "Pavyzd\\%u017eiai\\|Scenarijai\\|Variantai", "feature": "Savyb\\%u0117", "given": "Duota\\>", "rule": "Rule", "scenario": "Scenarijus\\|Pavyzdys", "scenario_outline": "Scenarijaus \\%u0161ablonas", "then": "Tada\\>", "when": "Kai\\>"}, + \"lu": {"and": "an\\>\\|a\\>", "background": "Hannergrond", "but": "awer\\>\\|m\\%u00e4\\>", "examples": "Beispiller", "feature": "Funktionalit\\%u00e9it", "given": "ugeholl\\>", "rule": "Rule", "scenario": "Beispill\\|Szenario", "scenario_outline": "Plang vum Szenario", "then": "dann\\>", "when": "wann\\>"}, + \"lv": {"and": "Un\\>", "background": "Konteksts\\|Situ\\%u0101cija", "but": "Bet\\>", "examples": "Piem\\%u0113ri\\|Paraugs", "feature": "Funkcionalit\\%u0101te\\|F\\%u012b\\%u010da", "given": "Kad\\>", "rule": "Rule", "scenario": "Scen\\%u0101rijs\\|Piem\\%u0113rs", "scenario_outline": "Scen\\%u0101rijs p\\%u0113c parauga", "then": "Tad\\>", "when": "Ja\\>"}, + \"mk-Cyrl": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\|\\%u0421\\%u043e\\%u0434\\%u0440\\%u0436\\%u0438\\%u043d\\%u0430", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\|\\%u0411\\%u0438\\%u0437\\%u043d\\%u0438\\%u0441 \\%u043f\\%u043e\\%u0442\\%u0440\\%u0435\\%u0431\\%u0430\\|\\%u041c\\%u043e\\%u0436\\%u043d\\%u043e\\%u0441\\%u0442", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>\\|\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u0430\\>", "rule": "Rule", "scenario": "\\%u041d\\%u0430 \\%u043f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\|\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440", "scenario_outline": "\\%u041f\\%u0440\\%u0435\\%u0433\\%u043b\\%u0435\\%u0434 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430", "then": "\\%u0422\\%u043e\\%u0433\\%u0430\\%u0448\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\>"}, + \"mk-Latn": {"and": "I\\>", "background": "Sodrzhina\\|Kontekst", "but": "No\\>", "examples": "Scenaria\\|Primeri", "feature": "Funkcionalnost\\|Biznis potreba\\|Mozhnost", "given": "Dadeno\\>\\|Dadena\\>", "rule": "Rule", "scenario": "Na primer\\|Scenario", "scenario_outline": "Pregled na scenarija\\|Koncept\\|Skica", "then": "Togash\\>", "when": "Koga\\>"}, + \"mn": {"and": "\\%u0422\\%u044d\\%u0433\\%u044d\\%u044d\\%u0434\\>\\|\\%u041c\\%u04e9\\%u043d\\>", "background": "\\%u0410\\%u0433\\%u0443\\%u0443\\%u043b\\%u0433\\%u0430", "but": "\\%u0413\\%u044d\\%u0445\\%u0434\\%u044d\\%u044d\\>\\|\\%u0425\\%u0430\\%u0440\\%u0438\\%u043d\\>", "examples": "\\%u0422\\%u0443\\%u0445\\%u0430\\%u0439\\%u043b\\%u0431\\%u0430\\%u043b", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446", "given": "\\%u04e8\\%u0433\\%u04e9\\%u0433\\%u0434\\%u0441\\%u04e9\\%u043d \\%u043d\\%u044c\\>\\|\\%u0410\\%u043d\\%u0445\\>", "rule": "Rule", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u044b\\%u043d \\%u0442\\%u04e9\\%u043b\\%u04e9\\%u0432\\%u043b\\%u04e9\\%u0433\\%u04e9\\%u04e9", "then": "\\%u04ae\\%u04af\\%u043d\\%u0438\\%u0439 \\%u0434\\%u0430\\%u0440\\%u0430\\%u0430\\>\\|\\%u0422\\%u044d\\%u0433\\%u044d\\%u0445\\%u044d\\%u0434\\>", "when": "\\%u0425\\%u044d\\%u0440\\%u044d\\%u0432\\>"}, + \"mr": {"and": "\\%u0924\\%u0938\\%u0947\\%u091a\\>\\|\\%u0906\\%u0923\\%u093f\\>", "background": "\\%u092a\\%u093e\\%u0930\\%u094d\\%u0936\\%u094d\\%u0935\\%u092d\\%u0942\\%u092e\\%u0940", "but": "\\%u092a\\%u0930\\%u0902\\%u0924\\%u0941\\>\\|\\%u092a\\%u0923\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923", "feature": "\\%u0935\\%u0948\\%u0936\\%u093f\\%u0937\\%u094d\\%u091f\\%u094d\\%u092f\\|\\%u0938\\%u0941\\%u0935\\%u093f\\%u0927\\%u093e", "given": "\\%u0926\\%u093f\\%u0932\\%u0947\\%u0932\\%u094d\\%u092f\\%u093e \\%u092a\\%u094d\\%u0930\\%u092e\\%u093e\\%u0923\\%u0947\\>\\|\\%u091c\\%u0930", "rule": "\\%u0928\\%u093f\\%u092f\\%u092e", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e", "then": "\\%u0924\\%u0947\\%u0935\\%u094d\\%u0939\\%u093e\\>\\|\\%u092e\\%u0917\\>", "when": "\\%u091c\\%u0947\\%u0935\\%u094d\\%u0939\\%u093e\\>"}, + \"ne": {"and": "\\%u0905\\%u0928\\%u093f\\>\\|\\%u0930\\>", "background": "\\%u092a\\%u0943\\%u0937\\%u094d\\%u0920\\%u092d\\%u0942\\%u092e\\%u0940", "but": "\\%u0924\\%u0930\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923\\%u0939\\%u0930\\%u0941\\|\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923", "feature": "\\%u0935\\%u093f\\%u0936\\%u0947\\%u0937\\%u0924\\%u093e\\|\\%u0938\\%u0941\\%u0935\\%u093f\\%u0927\\%u093e", "given": "\\%u0926\\%u093f\\%u0907\\%u090f\\%u0915\\%u094b\\>\\|\\%u0926\\%u093f\\%u090f\\%u0915\\%u094b\\>\\|\\%u092f\\%u0926\\%u093f\\>", "rule": "\\%u0928\\%u093f\\%u092f\\%u092e", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e", "then": "\\%u0924\\%u094d\\%u092f\\%u0938\\%u092a\\%u091b\\%u093f\\>\\|\\%u0905\\%u0928\\%u0940\\>", "when": "\\%u091c\\%u092c\\>"}, + \"nl": {"and": "En\\>", "background": "Achtergrond", "but": "Maar\\>", "examples": "Voorbeelden", "feature": "Functionaliteit", "given": "Gegeven\\>\\|Stel\\>", "rule": "Rule", "scenario": "Voorbeeld\\|Scenario", "scenario_outline": "Abstract Scenario", "then": "Dan\\>", "when": "Wanneer\\>\\|Als\\>"}, + \"no": {"and": "Og\\>", "background": "Bakgrunn", "but": "Men\\>", "examples": "Eksempler", "feature": "Egenskap", "given": "Gitt\\>", "rule": "Regel", "scenario": "Eksempel\\|Scenario", "scenario_outline": "Abstrakt Scenario\\|Scenariomal", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"}, + \"pa": {"and": "\\%u0a05\\%u0a24\\%u0a47\\>", "background": "\\%u0a2a\\%u0a3f\\%u0a1b\\%u0a4b\\%u0a15\\%u0a5c", "but": "\\%u0a2a\\%u0a30\\>", "examples": "\\%u0a09\\%u0a26\\%u0a3e\\%u0a39\\%u0a30\\%u0a28\\%u0a3e\\%u0a02", "feature": "\\%u0a28\\%u0a15\\%u0a36 \\%u0a28\\%u0a41\\%u0a39\\%u0a3e\\%u0a30\\|\\%u0a2e\\%u0a41\\%u0a39\\%u0a3e\\%u0a02\\%u0a26\\%u0a30\\%u0a3e\\|\\%u0a16\\%u0a3e\\%u0a38\\%u0a40\\%u0a05\\%u0a24", "given": "\\%u0a1c\\%u0a3f\\%u0a35\\%u0a47\\%u0a02 \\%u0a15\\%u0a3f\\>\\|\\%u0a1c\\%u0a47\\%u0a15\\%u0a30\\>", "rule": "Rule", "scenario": "\\%u0a09\\%u0a26\\%u0a3e\\%u0a39\\%u0a30\\%u0a28\\|\\%u0a2a\\%u0a1f\\%u0a15\\%u0a25\\%u0a3e", "scenario_outline": "\\%u0a2a\\%u0a1f\\%u0a15\\%u0a25\\%u0a3e \\%u0a30\\%u0a42\\%u0a2a \\%u0a30\\%u0a47\\%u0a16\\%u0a3e\\|\\%u0a2a\\%u0a1f\\%u0a15\\%u0a25\\%u0a3e \\%u0a22\\%u0a3e\\%u0a02\\%u0a1a\\%u0a3e", "then": "\\%u0a24\\%u0a26\\>", "when": "\\%u0a1c\\%u0a26\\%u0a4b\\%u0a02\\>"}, + \"pl": {"and": "Oraz\\>\\|I\\>", "background": "Za\\%u0142o\\%u017cenia", "but": "Ale\\>", "examples": "Przyk\\%u0142ady", "feature": "Potrzeba biznesowa\\|W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\|Funkcja\\|Aspekt", "given": "Zak\\%u0142adaj\\%u0105c, \\%u017ce\\>\\|Zak\\%u0142adaj\\%u0105c\\>\\|Maj\\%u0105c\\>", "rule": "Zasada\\|Regu\\%u0142a", "scenario": "Scenariusz\\|Przyk\\%u0142ad", "scenario_outline": "Szablon scenariusza", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>\\|Je\\%u015bli\\>\\|Kiedy\\>\\|Gdy\\>"}, + \"pt": {"and": "E\\>", "background": "Cen\\%u00e1rio de Fundo\\|Cenario de Fundo\\|Contexto\\|Fundo", "but": "Mas\\>", "examples": "Exemplos\\|Cen\\%u00e1rios\\|Cenarios", "feature": "Funcionalidade\\|Caracter\\%u00edstica\\|Caracteristica", "given": "Dados\\>\\|Dadas\\>\\|Dado\\>\\|Dada\\>", "rule": "Regra", "scenario": "Exemplo\\|Cen\\%u00e1rio\\|Cenario", "scenario_outline": "Delinea\\%u00e7\\%u00e3o do Cen\\%u00e1rio\\|Delineacao do Cenario\\|Esquema do Cen\\%u00e1rio\\|Esquema do Cenario", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"}, + \"ro": {"and": "Si\\>\\|\\%u0218i\\>\\|\\%u015ei\\>", "background": "Context", "but": "Dar\\>", "examples": "Exemple", "feature": "Functionalitate\\|Func\\%u021bionalitate\\|Func\\%u0163ionalitate", "given": "Date fiind\\>\\|Dati fiind\\>\\|Da\\%u021bi fiind\\>\\|Da\\%u0163i fiind\\>\\|Dat fiind\\>\\|Dat\\%u0103 fiind", "rule": "Rule", "scenario": "Scenariu\\|Exemplu", "scenario_outline": "Structura scenariu\\|Structur\\%u0103 scenariu", "then": "Atunci\\>", "when": "Cand\\>\\|C\\%u00e2nd\\>"}, + \"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0422\\%u0430\\%u043a\\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\|\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442", "but": "\\%u0418\\%u043d\\%u0430\\%u0447\\%u0435\\>\\|\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u044b", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u044c\\%u043d\\%u043e\\%u0441\\%u0442\\%u044c\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\|\\%u0421\\%u0432\\%u043e\\%u0439\\%u0441\\%u0442\\%u0432\\%u043e\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u044f\\|\\%u0424\\%u0438\\%u0447\\%u0430", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>\\|\\%u041f\\%u0443\\%u0441\\%u0442\\%u044c\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "rule": "\\%u041f\\%u0440\\%u0430\\%u0432\\%u0438\\%u043b\\%u043e", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f\\|\\%u0428\\%u0430\\%u0431\\%u043b\\%u043e\\%u043d \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f", "then": "\\%u0417\\%u0430\\%u0442\\%u0435\\%u043c\\>\\|\\%u0422\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0415\\%u0441\\%u043b\\%u0438\\>"}, + \"sk": {"and": "A taktie\\%u017e\\>\\|A z\\%u00e1rove\\%u0148\\>\\|A tie\\%u017e\\>\\|A\\>", "background": "Pozadie", "but": "Ale\\>", "examples": "Pr\\%u00edklady", "feature": "Po\\%u017eiadavka\\|Vlastnos\\%u0165\\|Funkcia", "given": "Za predpokladu\\>\\|Pokia\\%u013e\\>", "rule": "Rule", "scenario": "Pr\\%u00edklad\\|Scen\\%u00e1r", "scenario_outline": "Osnova Scen\\%u00e1ra\\|N\\%u00e1\\%u010drt Scen\\%u00e1ru\\|N\\%u00e1\\%u010drt Scen\\%u00e1ra", "then": "Potom\\>\\|Tak\\>", "when": "Ke\\%u010f\\>\\|Ak\\>"}, + \"sl": {"and": "Ter\\>\\|In\\>", "background": "Kontekst\\|Osnova\\|Ozadje", "but": "Vendar\\>\\|Ampak\\>\\|Toda\\>", "examples": "Scenariji\\|Primeri", "feature": "Funkcionalnost\\|Zna\\%u010dilnost\\|Funkcija\\|Mo\\%u017enosti\\|Moznosti\\|Lastnost", "given": "Privzeto\\>\\|Podano\\>\\|Zaradi\\>\\|Dano\\>", "rule": "Rule", "scenario": "Scenarij\\|Primer", "scenario_outline": "Struktura scenarija\\|Oris scenarija\\|Koncept\\|Osnutek\\|Skica", "then": "Takrat\\>\\|Potem\\>\\|Nato\\>", "when": "Kadar\\>\\|Ko\\>\\|Ce\\>\\|\\%u010ce\\>"}, + \"sr-Cyrl": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\|\\%u041f\\%u043e\\%u0437\\%u0430\\%u0434\\%u0438\\%u043d\\%u0430\\|\\%u041e\\%u0441\\%u043d\\%u043e\\%u0432\\%u0430", "but": "\\%u0410\\%u043b\\%u0438\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0438\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\|\\%u041c\\%u043e\\%u0433\\%u0443\\%u045b\\%u043d\\%u043e\\%u0441\\%u0442\\|\\%u041e\\%u0441\\%u043e\\%u0431\\%u0438\\%u043d\\%u0430", "given": "\\%u0417\\%u0430 \\%u0434\\%u0430\\%u0442\\%u043e\\>\\|\\%u0417\\%u0430 \\%u0434\\%u0430\\%u0442\\%u0435\\>\\|\\%u0417\\%u0430 \\%u0434\\%u0430\\%u0442\\%u0438\\>", "rule": "\\%u041f\\%u0440\\%u0430\\%u0432\\%u0438\\%u043b\\%u043e", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430", "then": "\\%u041e\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u041a\\%u0430\\%u0434\\%u0430\\>\\|\\%u041a\\%u0430\\%u0434\\>"}, + \"sr-Latn": {"and": "I\\>", "background": "Kontekst\\|Pozadina\\|Osnova", "but": "Ali\\>", "examples": "Scenariji\\|Primeri", "feature": "Funkcionalnost\\|Mogu\\%u0107nost\\|Mogucnost\\|Osobina", "given": "Za dato\\>\\|Za date\\>\\|Za dati\\>", "rule": "Pravilo", "scenario": "Scenario\\|Primer", "scenario_outline": "Struktura scenarija\\|Koncept\\|Skica", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"}, + \"sv": {"and": "Och\\>", "background": "Bakgrund", "but": "Men\\>", "examples": "Exempel", "feature": "Egenskap", "given": "Givet\\>", "rule": "Regel", "scenario": "Scenario", "scenario_outline": "Abstrakt Scenario\\|Scenariomall", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"}, + \"ta": {"and": "\\%u0bae\\%u0bc7\\%u0bb2\\%u0bc1\\%u0bae\\%u0bcd \\>\\|\\%u0bae\\%u0bb1\\%u0bcd\\%u0bb1\\%u0bc1\\%u0bae\\%u0bcd\\>", "background": "\\%u0baa\\%u0bbf\\%u0ba9\\%u0bcd\\%u0ba9\\%u0ba3\\%u0bbf", "but": "\\%u0b86\\%u0ba9\\%u0bbe\\%u0bb2\\%u0bcd \\>", "examples": "\\%u0b8e\\%u0b9f\\%u0bc1\\%u0ba4\\%u0bcd\\%u0ba4\\%u0bc1\\%u0b95\\%u0bcd\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9f\\%u0bc1\\%u0b95\\%u0bb3\\%u0bcd\\|\\%u0ba8\\%u0bbf\\%u0bb2\\%u0bc8\\%u0bae\\%u0bc8\\%u0b95\\%u0bb3\\%u0bbf\\%u0bb2\\%u0bcd\\|\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9a\\%u0bbf\\%u0b95\\%u0bb3\\%u0bcd", "feature": "\\%u0bb5\\%u0ba3\\%u0bbf\\%u0b95 \\%u0ba4\\%u0bc7\\%u0bb5\\%u0bc8\\|\\%u0b85\\%u0bae\\%u0bcd\\%u0b9a\\%u0bae\\%u0bcd\\|\\%u0ba4\\%u0bbf\\%u0bb1\\%u0ba9\\%u0bcd", "given": "\\%u0b95\\%u0bc6\\%u0bbe\\%u0b9f\\%u0bc1\\%u0b95\\%u0bcd\\%u0b95\\%u0baa\\%u0bcd\\%u0baa\\%u0b9f\\%u0bcd\\%u0b9f\\>", "rule": "Rule", "scenario": "\\%u0b89\\%u0ba4\\%u0bbe\\%u0bb0\\%u0ba3\\%u0bae\\%u0bbe\\%u0b95\\|\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9a\\%u0bbf", "scenario_outline": "\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9a\\%u0bbf \\%u0bb5\\%u0bbe\\%u0bb0\\%u0bcd\\%u0baa\\%u0bcd\\%u0baa\\%u0bc1\\%u0bb0\\%u0bc1\\|\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9a\\%u0bbf \\%u0b9a\\%u0bc1\\%u0bb0\\%u0bc1\\%u0b95\\%u0bcd\\%u0b95\\%u0bae\\%u0bcd", "then": "\\%u0b85\\%u0baa\\%u0bcd\\%u0baa\\%u0bc6\\%u0bbe\\%u0bb4\\%u0bc1\\%u0ba4\\%u0bc1\\>", "when": "\\%u0b8e\\%u0baa\\%u0bcd\\%u0baa\\%u0bc7\\%u0bbe\\%u0ba4\\%u0bc1\\>"}, + \"te": {"and": "\\%u0c2e\\%u0c30\\%u0c3f\\%u0c2f\\%u0c41\\>", "background": "\\%u0c28\\%u0c47\\%u0c2a\\%u0c25\\%u0c4d\\%u0c2f\\%u0c02", "but": "\\%u0c15\\%u0c3e\\%u0c28\\%u0c3f\\>", "examples": "\\%u0c09\\%u0c26\\%u0c3e\\%u0c39\\%u0c30\\%u0c23\\%u0c32\\%u0c41", "feature": "\\%u0c17\\%u0c41\\%u0c23\\%u0c2e\\%u0c41", "given": "\\%u0c1a\\%u0c46\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c2c\\%u0c21\\%u0c3f\\%u0c28\\%u0c26\\%u0c3f\\>", "rule": "Rule", "scenario": "\\%u0c38\\%u0c28\\%u0c4d\\%u0c28\\%u0c3f\\%u0c35\\%u0c47\\%u0c36\\%u0c02\\|\\%u0c09\\%u0c26\\%u0c3e\\%u0c39\\%u0c30\\%u0c23", "scenario_outline": "\\%u0c15\\%u0c25\\%u0c28\\%u0c02", "then": "\\%u0c05\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c41\\%u0c21\\%u0c41\\>", "when": "\\%u0c08 \\%u0c2a\\%u0c30\\%u0c3f\\%u0c38\\%u0c4d\\%u0c25\\%u0c3f\\%u0c24\\%u0c3f\\%u0c32\\%u0c4b\\>"}, + \"th": {"and": "\\%u0e41\\%u0e25\\%u0e30\\>", "background": "\\%u0e41\\%u0e19\\%u0e27\\%u0e04\\%u0e34\\%u0e14", "but": "\\%u0e41\\%u0e15\\%u0e48\\>", "examples": "\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\|\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e15\\%u0e31\\%u0e27\\%u0e2d\\%u0e22\\%u0e48\\%u0e32\\%u0e07", "feature": "\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e15\\%u0e49\\%u0e2d\\%u0e07\\%u0e01\\%u0e32\\%u0e23\\%u0e17\\%u0e32\\%u0e07\\%u0e18\\%u0e38\\%u0e23\\%u0e01\\%u0e34\\%u0e08\\|\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e2a\\%u0e32\\%u0e21\\%u0e32\\%u0e23\\%u0e16\\|\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2b\\%u0e25\\%u0e31\\%u0e01", "given": "\\%u0e01\\%u0e33\\%u0e2b\\%u0e19\\%u0e14\\%u0e43\\%u0e2b\\%u0e49\\>", "rule": "Rule", "scenario": "\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c", "scenario_outline": "\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2a\\%u0e23\\%u0e49\\%u0e32\\%u0e07\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\|\\%u0e2a\\%u0e23\\%u0e38\\%u0e1b\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c", "then": "\\%u0e14\\%u0e31\\%u0e07\\%u0e19\\%u0e31\\%u0e49\\%u0e19\\>", "when": "\\%u0e40\\%u0e21\\%u0e37\\%u0e48\\%u0e2d\\>"}, + \"tlh": {"and": "latlh\\>\\|'ej\\>", "background": "mo'", "but": "'ach\\>\\|'a\\>", "examples": "ghantoH\\|lutmey", "feature": "poQbogh malja'\\|Qu'meH 'ut\\|perbogh\\|Qap\\|laH", "given": "DaH ghu' bejlu'\\>\\|ghu' noblu'\\>", "rule": "Rule", "scenario": "lut", "scenario_outline": "lut chovnatlh", "then": "vaj\\>", "when": "qaSDI'\\>"}, + \"tr": {"and": "Ve\\>", "background": "Ge\\%u00e7mi\\%u015f", "but": "Fakat\\>\\|Ama\\>", "examples": "\\%u00d6rnekler", "feature": "\\%u00d6zellik", "given": "Diyelim ki\\>", "rule": "Kural", "scenario": "Senaryo\\|\\%u00d6rnek", "scenario_outline": "Senaryo tasla\\%u011f\\%u0131", "then": "O zaman\\>", "when": "E\\%u011fer ki\\>"}, + \"tt": {"and": "\\%u04ba\\%u04d9\\%u043c\\>\\|\\%u0412\\%u04d9\\>", "background": "\\%u041a\\%u0435\\%u0440\\%u0435\\%u0448", "but": "\\%u041b\\%u04d9\\%u043a\\%u0438\\%u043d\\>\\|\\%u04d8\\%u043c\\%u043c\\%u0430\\>", "examples": "\\%u04ae\\%u0440\\%u043d\\%u04d9\\%u043a\\%u043b\\%u04d9\\%u0440\\|\\%u041c\\%u0438\\%u0441\\%u0430\\%u043b\\%u043b\\%u0430\\%u0440", "feature": "\\%u04ae\\%u0437\\%u0435\\%u043d\\%u0447\\%u04d9\\%u043b\\%u0435\\%u043a\\%u043b\\%u0435\\%u043b\\%u0435\\%u043a\\|\\%u041c\\%u04e9\\%u043c\\%u043a\\%u0438\\%u043d\\%u043b\\%u0435\\%u043a", "given": "\\%u04d8\\%u0439\\%u0442\\%u0438\\%u043a\\>", "rule": "Rule", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\%u043d\\%u044b\\%u04a3 \\%u0442\\%u04e9\\%u0437\\%u0435\\%u043b\\%u0435\\%u0448\\%u0435", "then": "\\%u041d\\%u04d9\\%u0442\\%u0438\\%u0497\\%u04d9\\%u0434\\%u04d9\\>", "when": "\\%u04d8\\%u0433\\%u04d9\\%u0440\\>"}, + \"uk": {"and": "\\%u0410 \\%u0442\\%u0430\\%u043a\\%u043e\\%u0436\\>\\|\\%u0422\\%u0430\\>\\|\\%u0406\\>", "background": "\\%u041f\\%u0435\\%u0440\\%u0435\\%u0434\\%u0443\\%u043c\\%u043e\\%u0432\\%u0430", "but": "\\%u0410\\%u043b\\%u0435\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043a\\%u043b\\%u0430\\%u0434\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0456\\%u043e\\%u043d\\%u0430\\%u043b", "given": "\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e, \\%u0449\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e\\>\\|\\%u041d\\%u0435\\%u0445\\%u0430\\%u0439\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "rule": "Rule", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u0439\\|\\%u041f\\%u0440\\%u0438\\%u043a\\%u043b\\%u0430\\%u0434", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u044e", "then": "\\%u0422\\%u043e\\%u0434\\%u0456\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u042f\\%u043a\\%u0449\\%u043e\\>\\|\\%u041a\\%u043e\\%u043b\\%u0438\\>"}, + \"ur": {"and": "\\%u0627\\%u0648\\%u0631\\>", "background": "\\%u067e\\%u0633 \\%u0645\\%u0646\\%u0638\\%u0631", "but": "\\%u0644\\%u06cc\\%u06a9\\%u0646\\>", "examples": "\\%u0645\\%u062b\\%u0627\\%u0644\\%u06cc\\%u06ba", "feature": "\\%u06a9\\%u0627\\%u0631\\%u0648\\%u0628\\%u0627\\%u0631 \\%u06a9\\%u06cc \\%u0636\\%u0631\\%u0648\\%u0631\\%u062a\\|\\%u0635\\%u0644\\%u0627\\%u062d\\%u06cc\\%u062a\\|\\%u062e\\%u0635\\%u0648\\%u0635\\%u06cc\\%u062a", "given": "\\%u0641\\%u0631\\%u0636 \\%u06a9\\%u06cc\\%u0627\\>\\|\\%u0628\\%u0627\\%u0644\\%u0641\\%u0631\\%u0636\\>\\|\\%u0627\\%u06af\\%u0631\\>", "rule": "Rule", "scenario": "\\%u0645\\%u0646\\%u0638\\%u0631\\%u0646\\%u0627\\%u0645\\%u06c1", "scenario_outline": "\\%u0645\\%u0646\\%u0638\\%u0631 \\%u0646\\%u0627\\%u0645\\%u06d2 \\%u06a9\\%u0627 \\%u062e\\%u0627\\%u06a9\\%u06c1", "then": "\\%u067e\\%u06be\\%u0631\\>\\|\\%u062a\\%u0628\\>", "when": "\\%u062c\\%u0628\\>"}, + \"uz": {"and": "\\%u0412\\%u0430\\>", "background": "\\%u0422\\%u0430\\%u0440\\%u0438\\%u0445", "but": "\\%u041b\\%u0435\\%u043a\\%u0438\\%u043d\\>\\|\\%u0411\\%u0438\\%u0440\\%u043e\\%u043a\\>\\|\\%u0410\\%u043c\\%u043c\\%u043e\\>", "examples": "\\%u041c\\%u0438\\%u0441\\%u043e\\%u043b\\%u043b\\%u0430\\%u0440", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b", "given": "Belgilangan\\>", "rule": "Rule", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439 \\%u0441\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430\\%u0441\\%u0438", "then": "\\%u0423\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u0410\\%u0433\\%u0430\\%u0440\\>"}, + \"vi": {"and": "V\\%u00e0\\>", "background": "B\\%u1ed1i c\\%u1ea3nh", "but": "Nh\\%u01b0ng\\>", "examples": "D\\%u1eef li\\%u1ec7u", "feature": "T\\%u00ednh n\\%u0103ng", "given": "Bi\\%u1ebft\\>\\|Cho\\>", "rule": "Rule", "scenario": "T\\%u00ecnh hu\\%u1ed1ng\\|K\\%u1ecbch b\\%u1ea3n", "scenario_outline": "Khung t\\%u00ecnh hu\\%u1ed1ng\\|Khung k\\%u1ecbch b\\%u1ea3n", "then": "Th\\%u00ec\\>", "when": "Khi\\>"}, + \"zh-CN": {"and": "\\%u800c\\%u4e14\\|\\%u5e76\\%u4e14\\|\\%u540c\\%u65f6", "background": "\\%u80cc\\%u666f", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50", "feature": "\\%u529f\\%u80fd", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8bbe\\|\\%u5047\\%u5b9a", "rule": "Rule\\|\\%u89c4\\%u5219", "scenario": "\\%u573a\\%u666f\\|\\%u5267\\%u672c", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\|\\%u5267\\%u672c\\%u5927\\%u7eb2", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"}, + \"zh-TW": {"and": "\\%u800c\\%u4e14\\|\\%u4e26\\%u4e14\\|\\%u540c\\%u6642", "background": "\\%u80cc\\%u666f", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50", "feature": "\\%u529f\\%u80fd", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8a2d\\|\\%u5047\\%u5b9a", "rule": "Rule", "scenario": "\\%u5834\\%u666f\\|\\%u5287\\%u672c", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\|\\%u5287\\%u672c\\%u5927\\%u7db1", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}} function! s:pattern(key) let language = matchstr(getline(1),'#\s*language:\s*\zs\S\+') @@ -83,16 +107,18 @@ function! s:pattern(key) endfunction function! s:Add(name) - let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","Comment","String","Table"],'"cucumber".a:name.v:val'),",") + let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","StarRegion","Comment","String","Table"],'"cucumber".a:name.v:val'),",") exe "syn region cucumber".a:name.'Region matchgroup=cucumber'.a:name.' start="\%(^\s*\)\@<=\%('.s:pattern(tolower(a:name)).'\)" end="$"'.next exe 'syn region cucumber'.a:name.'AndRegion matchgroup=cucumber'.a:name.'And start="\%(^\s*\)\@<='.s:pattern('and').'" end="$" contained'.next exe 'syn region cucumber'.a:name.'ButRegion matchgroup=cucumber'.a:name.'But start="\%(^\s*\)\@<='.s:pattern('but').'" end="$" contained'.next + exe 'syn region cucumber'.a:name.'StarRegion matchgroup=cucumber'.a:name.'Star start="\%(^\s*\)\@<=\*\S\@!" end="$" contained'.next exe 'syn match cucumber'.a:name.'Comment "\%(^\s*\)\@<=#.*" contained'.next exe 'syn region cucumber'.a:name.'String start=+\%(^\s*\)\@<="""+ end=+"""+ contained'.next exe 'syn match cucumber'.a:name.'Table "\%(^\s*\)\@<=|.*" contained contains=cucumberDelimiter'.next exe 'hi def link cucumber'.a:name.'Comment cucumberComment' exe 'hi def link cucumber'.a:name.'String cucumberString' exe 'hi def link cucumber'.a:name.'But cucumber'.a:name.'And' + exe 'hi def link cucumber'.a:name.'Star cucumber'.a:name.'And' exe 'hi def link cucumber'.a:name.'And cucumber'.a:name exe 'syn cluster cucumberStepRegions add=cucumber'.a:name.'Region,cucumber'.a:name.'AndRegion,cucumber'.a:name.'ButRegion' endfunction @@ -100,12 +126,13 @@ endfunction syn match cucumberComment "\%(^\s*\)\@<=#.*" syn match cucumberComment "\%(\%^\s*\)\@<=#.*" contains=cucumberLanguage syn match cucumberLanguage "\%(#\s*\)\@<=language:" contained -syn match cucumberUnparsed "\S.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained -syn match cucumberUnparsedComment "#.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained +syn match cucumberUnparsed "\S.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberRule,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained +syn match cucumberUnparsedComment "#.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberRule,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained -exe 'syn match cucumberFeature "\%(^\s*\)\@<='.s:pattern('feature').':" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty' +exe 'syn match cucumberFeature "\%(^\s*\)\@<='.s:pattern('feature').':" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberBackground,cucumberRule,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty' exe 'syn match cucumberBackground "\%(^\s*\)\@<='.s:pattern('background').':"' exe 'syn match cucumberScenario "\%(^\s*\)\@<='.s:pattern('scenario').':"' +exe 'syn match cucumberRule "\%(^\s*\)\@<='.s:pattern('rule').':"' exe 'syn match cucumberScenarioOutline "\%(^\s*\)\@<='.s:pattern('scenario_outline').':"' exe 'syn match cucumberExamples "\%(^\s*\)\@<='.s:pattern('examples').':" nextgroup=cucumberExampleTable skipempty skipwhite' @@ -123,6 +150,7 @@ hi def link cucumberComment Comment hi def link cucumberLanguage SpecialComment hi def link cucumberFeature Macro hi def link cucumberBackground Define +hi def link cucumberRule Define hi def link cucumberScenario Define hi def link cucumberScenarioOutline Define hi def link cucumberExamples Define diff --git a/runtime/syntax/dcl.vim b/runtime/syntax/dcl.vim index 7e9741efc7..547fdcb9f7 100644 --- a/runtime/syntax/dcl.vim +++ b/runtime/syntax/dcl.vim @@ -1,9 +1,10 @@ " Vim syntax file " Language: DCL (Digital Command Language - vms) -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Mar 26, 2019 " Version: 13 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL " quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/deb822sources.vim b/runtime/syntax/deb822sources.vim index 81113610e8..f7d337fce9 100644 --- a/runtime/syntax/deb822sources.vim +++ b/runtime/syntax/deb822sources.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Debian deb822-format source list file " Maintainer: Debian Vim Maintainers -" Last Change: 2023 May 25 +" Last Change: 2024 Jan 30 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/deb822sources.vim " Standard syntax initialization @@ -12,19 +12,19 @@ endif " case insensitive syn case ignore +" A bunch of useful keywords +syn match deb822sourcesType /\<\(deb-src\|deb\)\ */ contained +syn match deb822sourcesFreeComponent /\<\(main\|universe\)\> */ contained +syn match deb822sourcesNonFreeComponent /\<\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)\> */ contained + " Comments are matched from the first character of a line to the end-of-line syn region deb822sourcesComment start="^#" end="$" -" A bunch of useful keywords -syn match deb822sourcesType /\(deb-src\|deb\)/ -syn match deb822sourcesFreeComponent /\(main\|universe\)/ -syn match deb822sourcesNonFreeComponent /\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)/ - " Include Debian versioning information runtime! syntax/shared/debversions.vim -exe 'syn match deb822sourcesSupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedSupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\)+' -exe 'syn match deb822sourcesUnsupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedUnsupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\)+' +exe 'syn match deb822sourcesSupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedSupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\) *+' +exe 'syn match deb822sourcesUnsupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedUnsupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\) *+' unlet g:debSharedSupportedVersions unlet g:debSharedUnsupportedVersions @@ -37,13 +37,13 @@ syn keyword deb822sourcesYesNo contained yes no " Match uri's syn match deb822sourcesUri '\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\+' -syn match deb822sourcesEntryField "^\%(Types\|URIs\|Suites\|Components\): *" -syn match deb822sourcesOptionField "^\%(Signed-By\|Check-Valid-Until\|Valid-Until-Min\|Valid-Until-Max\|Date-Max-Future\|InRelease-Path\): *" -syn match deb822sourcesMultiValueOptionField "^\%(Architectures\|Languages\|Targets\)\%(-Add\|-Remove\)\?: *" - +syn region deb822sourcesStrictField matchgroup=deb822sourcesEntryField start="^\%(Types\|URIs\|Suites\|Components\): *" end="$" contains=deb822sourcesType,deb822sourcesUri,deb822sourcesSupportedSuites,deb822sourcesUnsupportedSuites,deb822sourcesFreeComponent,deb822sourcesNonFreeComponent oneline +syn region deb822sourcesField matchgroup=deb822sourcesOptionField start="^\%(Signed-By\|Check-Valid-Until\|Valid-Until-Min\|Valid-Until-Max\|Date-Max-Future\|InRelease-Path\): *" end="$" oneline +syn region deb822sourcesField matchgroup=deb822sourcesMultiValueOptionField start="^\%(Architectures\|Languages\|Targets\)\%(-Add\|-Remove\)\?: *" end="$" oneline syn region deb822sourcesStrictField matchgroup=deb822sourcesBooleanOptionField start="^\%(PDiffs\|Allow-Insecure\|Allow-Weak\|Allow-Downgrade-To-Insecure\|Trusted\|Check-Date\): *" end="$" contains=deb822sourcesYesNo oneline syn region deb822sourcesStrictField matchgroup=deb822sourcesForceBooleanOptionField start="^\%(By-Hash\): *" end="$" contains=deb822sourcesForce,deb822sourcesYesNo oneline +hi def link deb822sourcesField Default hi def link deb822sourcesComment Comment hi def link deb822sourcesEntryField Keyword hi def link deb822sourcesOptionField Special diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim index af78ebc3ae..b173a7b3f7 100644 --- a/runtime/syntax/debcontrol.vim +++ b/runtime/syntax/debcontrol.vim @@ -3,7 +3,7 @@ " Maintainer: Debian Vim Maintainers " Former Maintainers: Gerfried Fuchs <alfie@ist.org> " Wichert Akkerman <wakkerma@debian.org> -" Last Change: 2023 Jan 16 +" Last Change: 2023 Dec 22 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debcontrol.vim " Standard syntax initialization @@ -29,7 +29,7 @@ syn match debControlSpace "[ \t]" let s:kernels = ['linux', 'hurd', 'kfreebsd', 'knetbsd', 'kopensolaris', 'netbsd'] let s:archs = [ \ 'alpha', 'amd64', 'armeb', 'armel', 'armhf', 'arm64', 'avr32', 'hppa' - \, 'i386', 'ia64', 'lpia', 'm32r', 'm68k', 'mipsel', 'mips64el', 'mips' + \, 'i386', 'ia64', 'loong64', 'lpia', 'm32r', 'm68k', 'mipsel', 'mips64el', 'mips' \, 'powerpcspe', 'powerpc', 'ppc64el', 'ppc64', 'riscv64', 's390x', 's390', 'sh3eb' \, 'sh3', 'sh4eb', 'sh4', 'sh', 'sparc64', 'sparc', 'x32' \ ] diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim index 9846cfdef0..76b52cfaa4 100644 --- a/runtime/syntax/debsources.vim +++ b/runtime/syntax/debsources.vim @@ -2,7 +2,7 @@ " Language: Debian sources.list " Maintainer: Debian Vim Maintainers " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl> -" Last Change: 2023 Oct 11 +" Last Change: 2024 Jan 30 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debsources.vim " Standard syntax initialization @@ -14,9 +14,9 @@ endif syn case match " A bunch of useful keywords -syn match debsourcesType /\(deb-src\|deb\)/ -syn match debsourcesFreeComponent /\(main\|universe\)/ -syn match debsourcesNonFreeComponent /\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)/ +syn match debsourcesType /\<\(deb-src\|deb\)\>/ contained +syn match debsourcesFreeComponent /\<\(main\|universe\)\>/ contained +syn match debsourcesNonFreeComponent /\<\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)\>/ contained " Match comments syn match debsourcesComment /#.*/ contains=@Spell @@ -34,7 +34,6 @@ unlet g:debSharedUnsupportedVersions syn match debsourcesUri '\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\+' syn region debsourcesLine start="^" end="$" contains=debsourcesType,debsourcesFreeComponent,debsourcesNonFreeComponent,debsourcesComment,debsourcesUri,debsourcesDistrKeyword,debsourcesUnsupportedDistrKeyword oneline - " Associate our matches and regions with pretty colours hi def link debsourcesType Statement hi def link debsourcesFreeComponent Statement diff --git a/runtime/syntax/diff.vim b/runtime/syntax/diff.vim index 4cadf5dae8..b0a8594def 100644 --- a/runtime/syntax/diff.vim +++ b/runtime/syntax/diff.vim @@ -378,9 +378,9 @@ hi def link diffBDiffer Constant hi def link diffIsA Constant hi def link diffNoEOL Constant hi def link diffCommon Constant -hi def link diffRemoved Special -hi def link diffChanged PreProc -hi def link diffAdded Identifier +hi def link diffRemoved Removed +hi def link diffChanged Changed +hi def link diffAdded Added hi def link diffLine Statement hi def link diffSubname PreProc hi def link diffComment Comment diff --git a/runtime/syntax/dosbatch.vim b/runtime/syntax/dosbatch.vim index a75771bd2d..55601996ad 100644 --- a/runtime/syntax/dosbatch.vim +++ b/runtime/syntax/dosbatch.vim @@ -2,11 +2,11 @@ " Language: MS-DOS/Windows batch file (with NT command extensions) " Maintainer: Mike Williams <mrmrdubya@gmail.com> " Filenames: *.bat -" Last Change: 12th February 2023 +" Last Change: 3rd February 2024 " " Options Flags: " dosbatch_cmdextversion - 1 = Windows NT, 2 = Windows 2000 [default] -" dosbatch_colons_comment - any value to treat :: as comment line +" dosbatch_colons_comment - any value to allow :: comments in code blocks " " quit when a syntax file was already loaded @@ -88,18 +88,22 @@ syn match dosbatchLabel "\<goto\s\+\h\w*\>"lc=4 syn match dosbatchLabel ":\h\w*\>" " Comments - usual rem but also two colons as first non-space is an idiom -syn match dosbatchComment "^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell -syn match dosbatchComment "^@rem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell -syn match dosbatchComment "\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell -syn match dosbatchComment "\s@rem\($\|\s.*$\)"lc=5 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchRemComment "^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchRemComment "^@rem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchRemComment "\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchRemComment "\s@rem\($\|\s.*$\)"lc=5 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchColonComment "\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell + +" Commands code blocks +syn cluster dosbatchCodeBlockComment contains=dosbatchRemComment if exists("dosbatch_colons_comment") - syn match dosbatchComment "\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell + syn cluster dosbatchCodeBlockComment add=dosbatchColonComment else - syn match dosbatchError "\s*:\s*:.*$" + syn match dosbatchColonCommentErr contained "\s*:\s*:.*$" endif - -" Comments in ()'s - still to handle spaces before rem -syn match dosbatchComment "(rem\([^)]\|\^\@<=)\)*"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchColonCommentErr contained "\s*:\s*:[^)]*\(\(\n\s*\)\?)\)\@=" +syn region dosbatchCodeBlock transparent start=+(+ end=+)+ contains=dosbatchString,dosbatchVariable,dosBatchArgument,@dosbatchNumber,dosbatchImplicit,dosbatchStatement,dosbatchConditional,dosbatchRepeat,dosbatchOperator,@dosbatchCodeBlockComment,dosbatchColonCommentErr,dosbatchCodeBlock +syn match dosbatchCodeBlockErr ")" syn keyword dosbatchImplicit append assoc at attrib break cacls cd chcp chdir syn keyword dosbatchImplicit chkdsk chkntfs cls cmd color comp compact convert copy @@ -116,6 +120,8 @@ syn keyword dosbatchImplicit vol xcopy hi def link dosbatchTodo Todo hi def link dosbatchError Error +hi def link dosbatchCodeBlockErr dosbatchError +hi def link dosbatchColonCommentErr dosbatchError hi def link dosbatchStatement Statement hi def link dosbatchCommands dosbatchStatement @@ -140,6 +146,9 @@ hi def link dosbatchBinary dosbatchNumber hi def link dosbatchOctal dosbatchNumber hi def link dosbatchComment Comment +hi def link dosbatchRemComment dosbatchComment +hi def link dosbatchColonComment dosbatchComment + hi def link dosbatchImplicit Function hi def link dosbatchSwitch Special diff --git a/runtime/syntax/elmfilt.vim b/runtime/syntax/elmfilt.vim index d995853e8e..aa1b57cbfe 100644 --- a/runtime/syntax/elmfilt.vim +++ b/runtime/syntax/elmfilt.vim @@ -1,9 +1,10 @@ " Vim syntax file " Language: Elm Filter rules -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Aug 31, 2016 " Version: 9 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT " quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/exports.vim b/runtime/syntax/exports.vim index 05a3f1acfe..00b7d80dfa 100644 --- a/runtime/syntax/exports.vim +++ b/runtime/syntax/exports.vim @@ -1,10 +1,11 @@ " Vim syntax file " Language: exports -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Aug 31, 2016 " Version: 8 " Notes: This file includes both SysV and BSD 'isms -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_EXPORTS +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_EXPORTS " quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/fortran.vim b/runtime/syntax/fortran.vim index fc6c82b480..8167e4d737 100644 --- a/runtime/syntax/fortran.vim +++ b/runtime/syntax/fortran.vim @@ -1,7 +1,8 @@ " Vim syntax file -" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77) -" Version: (v105) 2023 August 14 -" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/> +" Language: Fortran 2023 (and Fortran 2018, 2008, 2003, 95, 90, and 77) +" Version: (v113) 2024 February 01 +" Maintainers: Ajit J. Thakkar <ajit@unb.ca>; <https://ajit.ext.unb.ca/> +" Joshua Hollett <j.hollett@uwinnipeg.ca> " Usage: For instructions, do :help fortran-syntax from Vim " Credits: " Version 0.1 for Fortran 95 was created in April 2000 by Ajit Thakkar from an @@ -11,7 +12,8 @@ " Walter Dieudonne, Alexander Wagner, Roman Bertle, Charles Rendleman, " Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann, " Stefano Zaghi, Vishnu V. Krishnan, Judicael Grasset, Takuma Yoshida, -" Eisuke Kawashima, Andre Chalella, Fritz Reese, and Karl D. Hammond. +" Eisuke Kawashima, Andre Chalella, Fritz Reese, Karl D. Hammond, +" and Michele Esposito Marzino. if exists("b:current_syntax") finish @@ -20,35 +22,10 @@ endif let s:cpo_save = &cpo set cpo&vim -" Choose fortran_dialect using the priority: -" source file directive > buffer-local value > global value > file extension -" first try using directive in first three lines of file -let b:fortran_retype = getline(1)." ".getline(2)." ".getline(3) -if b:fortran_retype =~? '\<fortran_dialect\s*=\s*F\>' - let b:fortran_dialect = "F" -elseif b:fortran_retype =~? '\<fortran_dialect\s*=\s*f08\>' - let b:fortran_dialect = "f08" -elseif !exists("b:fortran_dialect") - if exists("g:fortran_dialect") && g:fortran_dialect =~# '\<F\|f08\>' - " try global variable - let b:fortran_dialect = g:fortran_dialect - else " nothing found, so use default - let b:fortran_dialect = "f08" - endif -endif -unlet! b:fortran_retype -" make sure buffer-local value is not invalid -if b:fortran_dialect !~# '\<F\|f08\>' - let b:fortran_dialect = "f08" -endif - " Choose between fixed and free source form if this hasn't been done yet if !exists("b:fortran_fixed_source") - if b:fortran_dialect == "F" - " F requires free source form - let b:fortran_fixed_source = 0 - elseif exists("fortran_free_source") - " User guarantees free source form for all fortran files + if exists("fortran_free_source") + " User guarantees free source form for all Fortran files let b:fortran_fixed_source = 0 elseif exists("fortran_fixed_source") " User guarantees fixed source form for all fortran files @@ -60,7 +37,7 @@ if !exists("b:fortran_fixed_source") " Fixed-form file extension defaults let b:fortran_fixed_source = 1 else - " Modern fortran still allows both free and fixed source form. + " Modern Fortran compilers still allow both free and fixed source form. " Assume fixed source form unless signs of free source form " are detected in the first five columns of the first s:lmax lines. " Detection becomes more accurate and time-consuming if more lines @@ -84,6 +61,9 @@ if !exists("b:fortran_fixed_source") endif endif +" Group names ending in 'Del' and 'Ob', respectively, indicate features deleted and obsolescent in Fortran 2018 and later +" Deleted features are highlighted as errors +" Obsolescent features are highlighted as todo items syn case ignore if b:fortran_fixed_source == 1 @@ -91,46 +71,107 @@ if b:fortran_fixed_source == 1 else syn match fortranConstructName "^\s*\zs\a\w*\ze\s*:" endif -if exists("fortran_more_precise") - syn match fortranConstructName "\(\<end\s*do\s\+\)\@11<=\a\w*" - syn match fortranConstructName "\(\<end\s*if\s\+\)\@11<=\a\w*" - syn match fortranConstructName "\(\<end\s*select\s\+\)\@15<=\a\w*" - syn match fortranConstructName "\(\<\%(exit\|cycle\)\s\+\)\@11<=\a\w*" +syn match fortranConstructName "\%(\<end\s*do\s\+\)\@11<=\a\w*" +syn match fortranConstructName "\%(\<end\s*if\s\+\)\@11<=\a\w*" +syn match fortranConstructName "\%(\<end\s*select\s\+\)\@15<=\a\w*" +syn match fortranConstructName "\%(\<end\s*where\s\+\)\@14<=\a\w*" +syn match fortranConstructName "\%(\<end\s*block\s\+\)\@14<=\a\w*" +syn match fortranConstructName "\%(\<\%(exit\|cycle\)\s\+\)\@11<=\a\w*" +syn match fortranConstructName "\%(\<end\s*forall\s\+\)\@15<=\a\w*\>" +syn match fortranConstructName "\%(\<end\s*critical\s\+\)\@17<=\a\w*\>" +syn match fortranConstructName "\%(\<end\s*associate\s\+\)\@18<=\a\w*\>" + +syn match fortranUnitName "\%(\<\%(end\s*\)\?\%(subroutine\|function\|module\|program\|submodule\)\s\+\)\@12<=\a\w*" +syn match fortranUnitHeader "\<end\>\ze\s*\%(!.*\)\?$" + +syn keyword fortranIntrinsic abs acos aimag aint anint asin atan atan2 cmplx conjg cos cosh exp ichar index int log log10 max min nint sin sinh sqrt tan tanh +syn keyword fortranIntrinsicR achar iachar transfer dble dprod dim lge lgt lle llt mod +syn keyword fortranIntrinsic command_argument_count get_command get_command_argument get_environment_variable is_iostat_end is_iostat_eor move_alloc new_line same_type_as extends_type_of +syn keyword fortranIntrinsic selected_real_kind selected_int_kind selected_logical_kind selected_char_kind next previous +syn keyword fortranIntrinsic acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 +syn keyword fortranIntrinsic adjustl adjustr all allocated any associated bit_size btest ceiling cshift date_and_time digits +syn keyword fortranIntrinsic dot_product eoshift exponent floor fraction iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc merge minexponent minloc +syn keyword fortranIntrinsic modulo mvbits nearest pack precision present radix random_number random_seed range repeat reshape rrspacing scale scan set_exponent shape spacing +" intrinsic names often used for variables in older Fortran code +syn match fortranIntrinsic '\<\%(count\|epsilon\|maxval\|minval\|product\|sum\|huge\|tiny\|char\)\>\ze\s*(' +syn keyword fortranIntrinsic spread system_clock transpose trim ubound unpack verify is_contiguous event_query +syn keyword fortranIntrinsic atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits +syn keyword fortranIntrinsic bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image +syn keyword fortranIntrinsic null cpu_time failed_images stopped_images image_status co_broadcast co_max co_min co_sum co_reduce +syn keyword fortranIntrinsic atomic_add atomic_and atomic_or atomic_xor atomic_fetch_add atomic_fetch_and atomic_fetch_or atomic_fetch_xor atomic_cas +syn keyword fortranIntrinsic ieee_arithmetic ieee_features ieee_exceptions +syn keyword fortranIntrinsic ieee_class ieee_copy_sign ieee_fma ieee_get_rounding_mode ieee_get_underflow_mode ieee_int ieee_is_finite +syn keyword fortranIntrinsic ieee_is_nan ieee_is_negative ieee_is_normal ieee_logb ieee_max ieee_max_mag ieee_max_num ieee_max_num_mag +syn keyword fortranIntrinsic ieee_min ieee_min_mag ieee_min_num ieee_min_num_mag ieee_next_after ieee_next_down ieee_next_up ieee_quiet_eq +syn keyword fortranIntrinsic ieee_quiet_ge ieee_quiet_gt ieee_quiet_le ieee_quiet_lt ieee_quiet_ne ieee_real ieee_rem ieee_rint ieee_scalb +syn keyword fortranIntrinsic ieee_selected_real_kind ieee_set_rounding_mode ieee_set_underflow_mode ieee_signaling_eq ieee_signaling_ge +syn keyword fortranIntrinsic ieee_signaling_gt ieee_signaling_le ieee_signaling_lt ieee_signaling_ne ieee_signbit ieee_support_datatype +syn keyword fortranIntrinsic ieee_support_denormal ieee_support_divide ieee_support_inf ieee_support_io ieee_support_nan ieee_support_rounding +syn keyword fortranIntrinsic ieee_support_sqrt ieee_support_subnormal ieee_support_standard ieee_support_underflow_control +syn keyword fortranIntrinsic ieee_unordered ieee_value ieee_get_flag ieee_get_halting_mode ieee_get_modes ieee_get_status +syn keyword fortranIntrinsic ieee_set_flag ieee_set_halting_mode ieee_set_modes ieee_set_status ieee_support_flag ieee_support_halting +syn keyword fortranIntrinsic iso_c_binding c_loc c_funloc c_sizeof c_associated c_f_pointer c_f_procpointer c_f_strpointer f_c_string +syn keyword fortranIntrinsic iso_fortran_env compiler_options compiler_version +syn keyword fortranIntrinsic out_of_range reduce random_init coshape get_team split tokenize +syn keyword fortranIntrinsic acosd asind atand atan2d cosd sind tand acospi asinpi atanpi atan2pi cospi sinpi tanpi +syn match fortranIntrinsic "\%(^\s*\|type *is *(\s*\)\@12<!\<real\ze\s*(" +syn match fortranIntrinsic '\<\%(logical\|not\|len\|kind\|rank\)\>\ze\s*(' +syn match fortranIntrinsic '\<\%(sign\|size\|team_number\)\>\ze\s*(' +" Obsolescent type-specific intrinsics +syn keyword fortranIntrinsicOb alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl +if exists("fortran_vendor_intrinsics") + syn keyword fortranIntrinsicVen algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh endif -syn match fortranUnitHeader "\<end\>" -syn match fortranType "\<character\((\s*kind\s*=\w\+)\)\?\>" -syn match fortranType "\<complex\((\s*kind\s*=\w\+)\)\?\>" -syn keyword fortranType intrinsic -syn match fortranType "\<implicit\>\s\+\(none\)\?" -syn keyword fortranStructure dimension -syn keyword fortranStorageClass parameter save -syn match fortranUnitHeader "\<subroutine\>" -syn keyword fortranCall call -syn match fortranUnitHeader "\<function\>" -syn match fortranUnitHeader "\<program\>" -syn match fortranUnitHeader "\<block\>" -syn keyword fortranKeyword return stop -syn keyword fortranConditional else then -syn match fortranConditional "\<if\>" -syn match fortranConditionalOb "\<if\s*(.*)\s*\d\+\s*,\s*\d\+\s*,\s*\d\+\s*$" +syn keyword fortranType generic final enumerator import classof typeof team_type event_type lock_type notify_type +syn keyword fortranType ieee_flag_type ieee_modes_type ieee_status_type ieee_class_type ieee_round_type ieee_features_type +syn keyword fortranType c_ptr c_funptr elemental pure impure recursive non_recursive simple +syn match fortranType "^\s*\%(implicit\s\+\)\?\%(real\|double\s*precision\|integer\|logical\|complex\|character\|type\)\>" +syn match fortranTypeOb "^\s*\%(character\s*\)\@15<=\*" +syn match fortranType "^\s*\zsimplicit\s\+none\>" +syn match fortranType "\<class\>" +syn match fortranType "\%(\<type\s\+is\s\+[(]\s*\)\@15<=\%(real\|double\s*precision\|integer\|logical\|complex\|character\)\>" +syn match fortranType "\<\%(end\s*\)\?interface\>" +syn match fortranType "\<enum\s*,\s*bind\s*(\s*c\s*)" +syn match fortranType "\<end\s*\%(enum\|type\)\>" +syn match fortranType "\<\%(end\s*\)\?enumeration\s\+type\>" +syn match fortranType "\<\%(end\s*\)\?\%(module\s\+\)\?procedure\>" +syn match fortranType "\%(simple \|pure \|impure \|recursive \|non_recursive \|elemental \|module \)\@17<=\%(real\|double precision\|integer\|logical\|complex\|character\)" +syn match fortranTypeR display "\<double\s*precision\>" +syn match fortranTypeR display "\<double\s\+complex\>" +syn keyword fortranAttribute abstract allocatable bind codimension contiguous deferred dimension extends +syn keyword fortranAttribute external intent intrinsic non_intrinsic non_overridable nopass optional parameter pass +syn keyword fortranAttribute pointer private protected public save sequence target value volatile +syn match fortranAttribute "\<asynchronous\>\ze\s*\%(::\|,\|(\)" + +syn keyword fortranUnitHeader result operator assignment +syn match fortranUnitHeader "\<\%(end\s*\)\?\%(subroutine\|function\|module\|program\|submodule\)\>" +syn match fortranBlock "\<\%(end\s*\)\?\%(block\|critical\|associate\)\>" +syn match fortranCalled "\<\%(call\s\+\)\@7<=\a\w*" syn match fortranRepeat "\<do\>" +syn keyword fortranRepeat concurrent +syn keyword fortranRepeatR while +syn match fortranRepeat "\<end\s*do\>" +syn keyword fortranRepeatOb forall +syn match fortranRepeatOb "\<end\s*forall\>" -syn keyword fortranTodo contained todo fixme +syn keyword fortranTodo contained bug note debug todo fixme "Catch errors caused by too many right parentheses syn region fortranParen transparent start="(" end=")" contains=ALLBUT,fortranParenError,@fortranCommentGroup,cIncluded,@spell syn match fortranParenError ")" -syn match fortranOperator "\.\s*n\=eqv\s*\." -syn match fortranOperator "\.\s*\(and\|or\|not\)\s*\." -syn match fortranOperator "\(+\|-\|/\|\*\)" -syn match fortranTypeOb "\<character\s*\*" - -syn match fortranBoolean "\.\s*\(true\|false\)\s*\." +syn match fortranOperator "\.\s*n\?eqv\s*\." +syn match fortranOperator "\.\s*\%(and\|or\|not\)\s*\." +syn match fortranOperator "\%(+\|-\|/\|\*\)" +syn match fortranOperator "\%(\%(>\|<\)=\?\|==\|/=\|=\)" +syn match fortranOperator "\%(%\|?\|=>\)" +syn match fortranOperator "\%([\|]\)" +syn match fortranOperatorR "\.\s*[gl][et]\s*\." +syn match fortranOperatorR "\.\s*\%(eq\|ne\)\s*\." -syn keyword fortranReadWrite print -syn match fortranReadWrite '\<\(backspace\|close\|endfile\|inquire\|open\|read\|rewind\|write\)\ze\s*(' +syn keyword fortranReadWrite print flush +syn match fortranReadWrite '\<\%(backspace\|close\|endfile\|inquire\|open\|read\|rewind\|wait\|write\)\ze\s*(' "If tabs are allowed then the left margin checks do not work if exists("fortran_have_tabs") @@ -139,34 +180,19 @@ else syn match fortranTab "\t" endif -syn match fortranIO '\%(\((\|,\|, *&\n\)\s*\)\@<=\(access\|blank\|direct\|exist\|file\|fmt\|form\|formatted\|iostat\|name\|named\|nextrec\|number\|opened\|rec\|recl\|sequential\|status\|unformatted\|unit\)\ze\s*=' - -syn keyword fortranIntrinsicR alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl - -" Intrinsics provided by some vendors -syn keyword fortranExtraIntrinsic algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh - -syn keyword fortranIntrinsic abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh -syn match fortranIntrinsic "\<len\s*[(,]"me=s+3 -syn match fortranIntrinsic "\<real\s*("me=s+4 -syn match fortranIntrinsic "\<logical\s*("me=s+7 -syn match fortranType "\<type\>\(\s\+is\>\)\?" -syn match fortranType "^\s*\(type\s\+\(is\)\? \)\?\s*\(real\|integer\|logical\|complex\|character\)\>" -syn match fortranType "^\s*\(implicit \)\?\s*\(real\|integer\|logical\|complex\|character\)\>" - "Numbers of various sorts " Integers -syn match fortranNumber display "\<\d\+\(_\a\w*\)\=\>" +syn match fortranNumber display "\<\d\+\%(_\a\w*\)\?\>" " floating point number, without a decimal point -syn match fortranFloatIll display "\<\d\+[deq][-+]\=\d\+\(_\a\w*\)\=\>" +syn match fortranFloatIll display "\<\d\+[deq][-+]\?\d\+\%(_\a\w*\)\?\>" " floating point number, starting with a decimal point -syn match fortranFloatIll display "\.\d\+\([deq][-+]\=\d\+\)\=\(_\a\w*\)\=\>" +syn match fortranFloatIll display "\.\d\+\%([deq][-+]\?\d\+\)\?\%(_\a\w*\)\?\>" " floating point number, no digits after decimal -syn match fortranFloatIll display "\<\d\+\.\([deq][-+]\=\d\+\)\=\(_\a\w*\)\=\>" +syn match fortranFloatIll display "\<\d\+\.\%([deq][-+]\?\d\+\)\?\%(_\a\w*\)\?\>" " floating point number, D or Q exponents -syn match fortranFloatIll display "\<\d\+\.\d\+\([dq][-+]\=\d\+\)\=\(_\a\w*\)\=\>" +syn match fortranFloatIll display "\<\d\+\.\d\+\%([dq][-+]\?\d\+\)\?\%(_\a\w*\)\?\>" " floating point number -syn match fortranFloat display "\<\d\+\.\d\+\(e[-+]\=\d\+\)\=\(_\a\w*\)\=\>" +syn match fortranFloat display "\<\d\+\.\d\+\%(e[-+]\?\d\+\)\?\%(_\a\w*\)\?\>" " binary number syn match fortranBinary display "b["'][01]\+["']" " octal number @@ -175,151 +201,95 @@ syn match fortranOctal display "o["'][0-7]\+["']" syn match fortranHex display "z["'][0-9A-F]\+["']" " Numbers in formats syn match fortranFormatSpec display "\d*f\d\+\.\d\+" -syn match fortranFormatSpec display "\d*e[sn]\=\d\+\.\d\+\(e\d+\>\)\=" -syn match fortranFormatSpec display "\d*\(d\|q\|g\)\d\+\.\d\+\(e\d+\)\=" +syn match fortranFormatSpec display "\d*e[sn]\?\d\+\.\d\+\%(e\d+\>\)\?" +syn match fortranFormatSpec display "\d*\%(d\|q\|g\)\d\+\.\d\+\%(e\d+\)\?" syn match fortranFormatSpec display "\d\+x\>" " The next match cannot be used because it would pick up identifiers as well -" syn match fortranFormatSpec display "\<\(a\|i\)\d\+" - +" syn match fortranFormatSpec display "\<\%(a\|i\)\d\+" " Numbers as labels -syn match fortranLabelNumber display "^\d\{1,5}\s"me=e-1 -syn match fortranLabelNumber display "^ \d\{1,4}\s"ms=s+1,me=e-1 -syn match fortranLabelNumber display "^ \d\{1,3}\s"ms=s+2,me=e-1 -syn match fortranLabelNumber display "^ \d\d\=\s"ms=s+3,me=e-1 -syn match fortranLabelNumber display "^ \d\s"ms=s+4,me=e-1 - -if exists("fortran_more_precise") - " Numbers as targets - syn match fortranTarget display "\(\<if\s*(.\+)\s*\)\@<=\(\d\+\s*,\s*\)\{2}\d\+\>" - syn match fortranTarget display "\(\<do\s\+\)\@11<=\d\+\>" - syn match fortranTarget display "\(\<go\s*to\s*(\=\)\@11<=\(\d\+\s*,\s*\)*\d\+\>" +if (b:fortran_fixed_source == 1) + syn match fortranLabelNumber display "^\zs\d\{1,5}\ze\s" + syn match fortranLabelNumber display "^ \zs\d\{1,4}\ze\s" + syn match fortranLabelNumber display "^ \zs\d\{1,3}\ze\s" + syn match fortranLabelNumber display "^ \zs\d\d\?\ze\s" + syn match fortranLabelNumber display "^ \zs\d\ze\s" +else + syn match fortranLabelNumber display "^\s*\zs\d\{1,5}\ze\s*\a" + syn match fortranLabelNumberOb display "^\s*\zs\d\{1,5}\ze *end\s*\%(do\|if\)\>\ze" endif +" Numbers as targets +syn match fortranTarget display "\%(\<if\s*(.\+)\s*\)\@<=\%(\d\+\s*,\s*\)\{2}\d\+\>" +syn match fortranTargetOb display "\%(\<do\s*,\?\s*\)\@11<=\d\+\>" +syn match fortranTarget display "\%(\<go\s*to\s*(\?\)\@11<=\%(\d\+\s*,\s*\)*\d\+\>" -syn keyword fortranTypeR external -syn keyword fortranIOR format -syn match fortranKeywordR "\<continue\>" -syn match fortranKeyword "^\s*\d\+\s\+continue\>" +syn match fortranBoolean "\.\s*\%(true\|false\)\s*\." + +syn keyword fortranKeyword call use only continue allocate deallocate nullify return cycle exit contains +syn match fortranKeyword "\<fail\s\+image\>" +syn match fortranKeyword "\<\%(error\s\+\)\?stop\>" syn match fortranKeyword "\<go\s*to\>" syn match fortranKeywordDel "\<go\s*to\ze\s\+.*,\s*(.*$" syn match fortranKeywordOb "\<go\s*to\ze\s*(\d\+.*$" -syn region fortranStringR start=+'+ end=+'+ contains=fortranContinueMark,fortranLeftMargin,fortranSerialNumber -syn keyword fortranIntrinsicR dim lge lgt lle llt mod -syn keyword fortranKeywordDel assign pause - -syn keyword fortranStructure private public intent optional -syn keyword fortranStructure pointer target allocatable -syn keyword fortranStorageClass in out -syn match fortranStorageClass "\<kind\s*="me=s+4 -syn match fortranStorageClass "\<len\s*="me=s+3 - -syn match fortranUnitHeader "\<module\>" -syn match fortranUnitHeader "\<submodule\>" -syn keyword fortranUnitHeader use only contains -syn keyword fortranUnitHeader result operator assignment -syn match fortranUnitHeader "\<interface\>" -syn keyword fortranKeyword allocate deallocate nullify cycle exit -syn match fortranConditional "\<select\>" -syn match fortranConditional "\<case\s\+default\>" -syn keyword fortranConditional where elsewhere - -syn match fortranOperator "\(\(>\|<\)=\=\|==\|/=\|=\)" -syn match fortranOperator "=>" +syn keyword fortranKeywordDel pause +syn match fortranKeywordDel "assign\s*\d\+\s*to\s\+\a\w*" +syn match fortranStringDel display "[/(,] *\d\+H" +syn region fortranString start=+'+ end=+'+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber syn region fortranString start=+"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber -syn keyword fortranIO pad position action delim readwrite -syn keyword fortranIO eor advance nml - -syn match fortranIntrinsic '\<\(adjustl\|adjustr\|all\|allocated\|any\|associated\|bit_size\|btest\|ceiling\|count\|cshift\|date_and_time\|digits\|dot_product\|eoshift\|epsilon\|exponent\|floor\|fraction\|huge\|iand\|ibclr\|ibits\|ibset\|ieor\|ior\|ishft\|ishftc\|lbound\|len_trim\|matmul\|maxexponent\|maxloc\|maxval\|merge\|minexponent\|minloc\|minval\|modulo\|mvbits\|nearest\|pack\|precision\|present\|product\|radix\|random_number\|random_seed\|range\|repeat\|reshape\|rrspacing\|scale\|scan\|selected_int_kind\|selected_real_kind\|set_exponent\|shape\|size\|spacing\|spread\|sum\|system_clock\|tiny\|transpose\|trim\|ubound\|unpack\|verify\)\>\ze\s*(' -syn match fortranIntrinsic "\<not\>\(\s*\.\)\@!"me=s+3 -syn match fortranIntrinsic "\<kind\>\s*[(,]"me=s+4 - -syn match fortranUnitHeader "\<end\s*function" -syn match fortranUnitHeader "\<end\s*interface" -syn match fortranUnitHeader "\<end\s*module" -syn match fortranUnitHeader "\<end\s*submodule" -syn match fortranUnitHeader "\<end\s*program" -syn match fortranUnitHeader "\<end\s*subroutine" -syn match fortranUnitHeader "\<end\s*block" -syn match fortranRepeat "\<end\s*do" -syn match fortranConditional "\<end\s*where" -syn match fortranConditional "\<select\s*case" -syn match fortranConditional "\<end\s*select" -syn match fortranType "\<end\s*type" -syn match fortranType "\<in\s*out" - -syn keyword fortranType procedure -syn match fortranType "\<module\ze\s\+procedure\>" -syn keyword fortranIOR namelist -syn keyword fortranConditionalR while -syn keyword fortranIntrinsicR achar iachar transfer + +syn match fortranSpecifier '\%(\%((\|,\|, *&\n\)\s*\)\@<=\%(access\|acquired_lock\|action\|advance\|asynchronous\|blank\|decimal\|delim\|direct\|encoding\|end\|eor\|err\)\ze\s*=' +syn match fortranSpecifier '\%(\%((\|,\|, *&\n\)\s*\)\@<=\%(errmsg\|exist\|file\|fmt\|form\|formatted\|id\|iolength\|iomsg\|iostat\|leading_zero\|mold\|name\|named\)\ze\s*=' +syn match fortranSpecifier '\%(\%((\|,\|, *&\n\)\s*\)\@<=\%(new_index\|newunit\|nextrec\|nml\|notify\|number\|opened\|pad\|pending\|pos\|position\|quiet\)\ze\s*=' +syn match fortranSpecifier '\%(\%((\|,\|, *&\n\)\s*\)\@<=\%(read\|readwrite\|rec\|recl\|round\|sequential\|sign\|size\)\ze\s*=' +syn match fortranSpecifier '\%(\%((\|,\|, *&\n\)\s*\)\@<=\%(source\|stat\|status\|stream\|team\|team_number\|unformatted\|unit\|until_count\|write\)\ze\s*=' +syn match fortranSpecifier "\%((\s*\)\@<=\%(un\)\?formatted\ze\s*)" +syn match fortranSpecifier "\%(local\|local_init\|reduce\|shared\)\ze\s*(" +syn match fortranSpecifier "\<default\s*(\s*none\s*)" +syn keyword fortranIOR format namelist + +syn keyword fortranConditional else then where elsewhere +syn match fortranConditional "\<\%(else\s*\)\?if\>" +syn match fortranConditional "\<\%(end\s*\)\?\%(if\|where\|select\)\>" +syn match fortranConditional "\<select\s*\%(case\|rank\|type\)\>" +syn match fortranConditional "\<\%(case\|rank\|class\)\s\+default\>" +syn match fortranConditional "^\s*\zs\%(case\|rank\)\ze\s\+(" +syn match fortranConditional "\<\%(class\|type\)\s\+is\>" +syn match fortranConditionalDel "\<if\s*(.*)\s*\d\+\s*,\s*\d\+\s*,\s*\d\+\s*$" syn keyword fortranInclude include -syn keyword fortranStorageClassR sequence -syn match fortranConditional "\<end\s*if" -syn match fortranIO contains=fortranOperator "\<e\(nd\|rr\)\s*=\s*\d\+" -syn match fortranConditional "\<else\s*if" +syn match fortranImageControl "\<sync\s\+\%(all\|images\|memory\|team\)\>" +syn match fortranImageControl "\<\%(change\|form\|end\)\s\+team\>" +syn match fortranImageControl "\<event\s\+\%(post\|wait\)" +syn match fortranImageControl "\<\%(un\)\?lock\ze\s*(" +syn match fortranImageControl "\<notify\s\+wait\ze\s*(" syn keyword fortranUnitHeaderOb entry -syn match fortranTypeR display "double\s\+precision" -syn match fortranTypeR display "double\s\+complex" -syn match fortranUnitHeaderR display "block\s\+data" -syn keyword fortranStorageClassR common equivalence data -syn keyword fortranIntrinsicR dble dprod -syn match fortranOperatorR "\.\s*[gl][et]\s*\." -syn match fortranOperatorR "\.\s*\(eq\|ne\)\s*\." - -syn keyword fortranRepeat forall -syn match fortranRepeat "\<end\s*forall" -syn keyword fortranIntrinsic null cpu_time -syn match fortranType "\<elemental\>" -syn match fortranType "\<pure\>" -syn match fortranType "\<impure\>" -syn match fortranType "\<recursive\>" -if exists("fortran_more_precise") - syn match fortranConstructName "\(\<end\s*forall\s\+\)\@15<=\a\w*\>" -endif - -if b:fortran_dialect == "f08" - " F2003 - syn keyword fortranIntrinsic command_argument_count get_command get_command_argument get_environment_variable is_iostat_end is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of - " ISO_C_binding - syn keyword fortranConstant c_null_char c_alert c_backspace c_form_feed c_new_line c_carriage_return c_horizontal_tab c_vertical_tab - syn keyword fortranConstant c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr - syn keyword fortranIntrinsic iso_c_binding c_loc c_funloc c_associated c_f_pointer c_f_procpointer - syn keyword fortranType c_ptr c_funptr - " ISO_Fortran_env - syn keyword fortranConstant iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit - " IEEE_arithmetic - syn keyword fortranIntrinsic ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode - - syn keyword fortranReadWrite flush wait - syn keyword fortranIO decimal round iomsg - syn keyword fortranType asynchronous nopass non_overridable pass protected volatile extends import - syn keyword fortranType non_intrinsic value bind deferred generic final enumerator - syn match fortranType "\<abstract\>" - syn match fortranType "\<class\>" - syn match fortranType "\<associate\>" - syn match fortranType "\<end\s*associate" - syn match fortranType "\<enum\s*,\s*bind\s*(\s*c\s*)" - syn match fortranType "\<end\s*enum" - syn match fortranConditional "\<select\s*type" - syn match fortranConditional "\<class\s*is\>" - syn match fortranConditional "\<class\s*default\>" - syn match fortranUnitHeader "\<abstract\s*interface\>" - syn match fortranOperator "\([\|]\)" - - " F2008 - syn keyword fortranIntrinsic acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 - syn keyword fortranIntrinsic atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits - syn keyword fortranIntrinsic bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image - syn keyword fortranIO newunit - syn keyword fortranType contiguous - syn keyword fortranRepeat concurrent - -" CUDA fortran +syn match fortranUnitHeaderOb display "\<block\s*data\>" + +syn keyword fortranStorageClass in out inout +syn match fortranStorageClass '\<\%(kind\|len\)\>\ze\s*=' +syn match fortranStorageClass "^\s*data\>\ze\%(\s\+\a\)\@=" +syn match fortranStorageClassOb "\<common\>\%(\s*\%(/\|\a\)\)\@=" +syn match fortranStorageClassOb "\<equivalence\>\%(\s*(\)\@=" + +syn keyword fortranConstant c_null_char c_alert c_backspace c_form_feed c_new_line c_carriage_return c_horizontal_tab c_vertical_tab c_ptrdiff_t +syn keyword fortranConstant c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr +syn keyword fortranConstant character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit stat_failed_image stat_locked stat_locked_other_image stat_stopped_image stat_unlocked stat_unlocked_failed_image +syn keyword fortranConstant int8 int16 int32 int64 real16 real32 real64 real128 character_kinds integer_kinds logical_kinds real_kinds iostat_inquire_internal_unit initial_team current_team parent_team +syn keyword fortranConstant ieee_invalid ieee_overflow ieee_divide_by_zero ieee_underflow ieee_inexact ieee_usual ieee_all +syn keyword fortranConstant ieee_signaling_nan ieee_quiet_nan ieee_negative_inf ieee_negative_normal ieee_negative_subnormal +syn keyword fortranConstant ieee_negative_zero ieee_positive_zero ieee_positive_subnormal ieee_positive_normal ieee_positive_inf +syn keyword fortranConstant ieee_other_value ieee_negative_denormal ieee_positive_denormal ieee_negative_subnormal +syn keyword fortranConstant ieee_positive_subnormal ieee_nearest ieee_to_zero ieee_up ieee_down ieee_away ieee_other ieee_datatype +syn keyword fortranConstant ieee_denormal ieee_divide ieee_halting ieee_inexact_flag ieee_inf ieee_invalid_flag ieee_nan +syn keyword fortranConstant ieee_rounding ieee_sqrt ieee_subnormal ieee_underflow_flag +syn match fortranConstant "\.\s*nil\s*\." + +" CUDA Fortran +if exists("fortran_CUDA") syn match fortranTypeCUDA "\<attributes\>" - syn keyword fortranTypeCUDA host global device value + syn keyword fortranTypeCUDA host global device syn keyword fortranTypeCUDA shared constant pinned texture syn keyword fortranTypeCUDA dim1 dim2 dim3 dim4 syn keyword fortranTypeCUDA cudadeviceprop cuda_count_kind cuda_stream_kind @@ -336,10 +306,10 @@ if b:fortran_dialect == "f08" syn keyword fortranTypeCUDA cudaErrorNotReady cudaSuccess cudaErrorInvalidValue syn keyword fortranTypeCUDA c_devptr - syn match fortranStringCUDA "blockidx%[xyz]" - syn match fortranStringCUDA "blockdim%[xyz]" - syn match fortranStringCUDA "griddim%[xyz]" - syn match fortranStringCUDA "threadidx%[xyz]" + syn match fortranStringCUDA "\<blockidx%[xyz]\>" + syn match fortranStringCUDA "\<blockdim%[xyz]\>" + syn match fortranStringCUDA "\<griddim%[xyz]\>" + syn match fortranStringCUDA "\<threadidx%[xyz]\>" syn keyword fortranIntrinsicCUDA warpsize syncthreads syncthreads_and syncthreads_count syncthreads_or threadfence threadfence_block threadfence_system gpu_time allthreads anythread ballot syn keyword fortranIntrinsicCUDA atomicadd atomicsub atomicmax atomicmin atomicand atomicor atomicxor atomicexch atomicinc atomicdec atomiccas sizeof __shfl __shfl_up __shfl_down __shfl_xor @@ -349,22 +319,21 @@ if b:fortran_dialect == "f08" syn keyword fortranIntrinsicCUDA cudaHostAlloc cudaHostGetDevicePointer cudaHostGetFlags cudaHostRegister cudaHostUnregister cudaMalloc cudaMallocArray cudaMallocHost cudaMallocPitch cudaMalloc3D cudaMalloc3DArray syn keyword fortranIntrinsicCUDA cudaMemcpy cudaMemcpyArraytoArray cudaMemcpyAsync cudaMemcpyFromArray cudaMemcpyFromSymbol cudaMemcpyFromSymbolAsync cudaMemcpyPeer cudaMemcpyPeerAsync cudaMemcpyToArray cudaMemcpyToSymbol cudaMemcpyToSymbolAsync cudaMemcpy2D cudaMemcpy2DArrayToArray cudaMemcpy2DAsync cudaMemcpy2DFromArray cudaMemcpy2DToArray cudaMemcpy3D cudaMemcpy3DAsync syn keyword fortranIntrinsicCUDA cudaMemGetInfo cudaMemset cudaMemset2D cudaMemset3D cudaDeviceCanAccessPeer cudaDeviceDisablePeerAccess cudaDeviceEnablePeerAccess cudaPointerGetAttributes cudaDriverGetVersion cudaRuntimeGetVersion - - syn region none matchgroup=fortranType start="<<<" end=">>>" contains=ALLBUT,none endif +syn region none matchgroup=fortranType start="<<<" end=">>>" contains=ALLBUT,none + syn cluster fortranCommentGroup contains=fortranTodo if (b:fortran_fixed_source == 1) if !exists("fortran_have_tabs") - " Fixed format requires a textwidth of 72 for code, - " but some vendor extensions allow longer lines if exists("fortran_extended_line_length") + " Vendor extensions allow lines with a text width of 132 syn match fortranSerialNumber excludenl "^.\{133,}$"lc=132 - elseif exists("fortran_cardimage_line_length") - syn match fortranSerialNumber excludenl "^.\{81,}$"lc=80 else - syn match fortranSerialNumber excludenl "^.\{73,}$"lc=72 + " Standard requires fixed format to have a text width of 72, + " but all current compilers use 80 instead + syn match fortranSerialNumber excludenl "^.\{81,}$"lc=80 endif "Flag left margin errors syn match fortranLabelError "^.\{-,4}[^0-9 ]" contains=fortranTab @@ -378,20 +347,20 @@ else endif syn match fortranComment excludenl "!.*$" contains=@fortranCommentGroup,@spell -syn match fortranOpenMP excludenl "^\s*!\$\(OMP\)\=&\=\s.*$" +syn match fortranOpenMP excludenl "^\s*\zs!\$\%(OMP\)\?&\?\s.*$" +syn match fortranEndStatement display ";" "cpp is often used with Fortran -syn match cPreProc "^\s*#\s*\(define\|ifdef\)\>.*" -syn match cPreProc "^\s*#\s*\(elif\|if\)\>.*" -syn match cPreProc "^\s*#\s*\(ifndef\|undef\)\>.*" -syn match cPreCondit "^\s*#\s*\(else\|endif\)\>.*" +syn match cPreProc "^\s*#\s*\%(define\|ifdef\)\>.*" +syn match cPreProc "^\s*#\s*\%(elif\|if\)\>.*" +syn match cPreProc "^\s*#\s*\%(ifndef\|undef\)\>.*" +syn match cPreCondit "^\s*#\s*\%(else\|endif\)\>.*" syn region cIncluded contained start=+"[^("]+ skip=+\\\\\|\\"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber -"syn region cIncluded contained start=+"[^("]+ skip=+\\\\\|\\"+ end=+"+ syn match cIncluded contained "<[^>]*>" syn match cInclude "^\s*#\s*include\>\s*["<]" contains=cIncluded "Synchronising limits assume that comment and continuation lines are not mixed -if exists("fortran_fold") || exists("fortran_more_precise") +if exists("fortran_fold") syn sync fromstart elseif (b:fortran_fixed_source == 0) syn sync linecont "&" minlines=30 @@ -401,149 +370,118 @@ endif if exists("fortran_fold") + if has("folding") + setlocal foldmethod=syntax + endif if (b:fortran_fixed_source == 1) - syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule - syn region fortranModule transparent fold keepend start="^\s*submodule\s\+(\a\w*\s*\(:\a\w*\s*\)*)\s*\z\(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(submodule\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram,fortranModule - syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram - syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule - syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule - syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock - syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction - syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock - syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface + syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*\%(program\%(\s\+\z1\>\)\?\|$\)" contains=ALLBUT,fortranModule + syn region fortranModule transparent fold keepend start="^\s*submodule\s\+(\a\w*\s*\%(:\a\w*\s*\)*)\s*\z\(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*\%(submodule\%(\s\+\z1\>\)\?\|$\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranModule transparent fold keepend start="^\s*module\s\+\%(procedure\)\@9!\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*\%(module\%(\s\+\z1\>\)\?\|$\)" contains=ALLBUT,fortranProgram + syn region fortranFunction transparent fold keepend extend start="\<function\s\+\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*\%($\|function\%(\s\+\z1\>\)\?\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranSubroutine transparent fold keepend extend start="\<subroutine\s\+\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*\%($\|subroutine\%(\s\+\z1\>\)\?\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranBlockData transparent fold keepend start="\<block\>" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*block\>" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock + syn region fortranAssociate transparent fold keepend start="\<associate\s\+" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction + syn region fortranCritical transparent fold keepend start="\<critical\s\+" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*critical" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction + syn region fortranTeam transparent fold keepend start="\<change\s\+team\>" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*team\>" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction + syn region fortranInterface transparent fold keepend extend start="\<\%(abstract \)\?\s*interface\>" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock + syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\%(,\s*\%(abstract\|private\|public\|bind(c)\|extends(\a\w*)\)\)\{0,4}\s*::\s*\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>\%(\s\+\z1\>\)\?" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction + syn region fortranMultiComments fold start="^\zs[!c*].*\_s*[!c*]" skip="^[!c*]" end='^\ze\s*[^!c*]' else - syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule - syn region fortranModule transparent fold keepend start="^\s*submodule\s\+(\a\w*\s*\(:\a\w*\s*\)*)\s*\z\(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(submodule\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram,fortranModule - syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram - syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule - syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule - syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock - syn region fortranAssociate transparent fold keepend start="^\s*\<associate\s\+" skip="^\s*[!#].*$" excludenl end="\<end\s*associate" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction - syn region fortranInterface transparent fold keepend extend start="^\s*\(abstract \)\=\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock - syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\|abstract\)\)\=\s*::" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock,fortranInterface + syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\%(program\%(\s\+\z1\>\)\?\|$\)" contains=ALLBUT,fortranModule + syn region fortranModule transparent fold keepend start="^\s*submodule\s\+(\a\w*\s*\%(:\a\w*\s*\)*)\s*\z\(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\%(submodule\%(\s\+\z1\>\)\?\|$\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranModule transparent fold keepend start="^\s*module\s\+\%(procedure\)\@9!\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\%(module\%(\s\+\z1\>\)\?\|$\)" contains=ALLBUT,fortranProgram + syn region fortranFunction transparent fold keepend extend start="\<function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\%($\|function\%(\s\+\z1\>\)\?\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranSubroutine transparent fold keepend extend start="\<subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\%($\|subroutine\%(\s\+\z1\>\)\?\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranBlockData transparent fold keepend start="\<block\>" skip="^\s*[!#].*$" excludenl end="\<end\s*block\>" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock + syn region fortranAssociate transparent fold keepend start="\<associate\>" skip="^\s*[!#].*$" excludenl end="\<end\s*associate\>" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction + syn region fortranCritical transparent fold keepend start="\<critical\>" skip="^\s*[!#].*$" excludenl end="\<end\s*critical\>" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction + syn region fortranTeam transparent fold keepend start="\<change\s\+team\>" skip="^\s*[!#].*$" excludenl end="\<end\s*team\>" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction + syn region fortranInterface transparent fold keepend extend start="\<\%(abstract \)\?\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock + syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\%(,\s*\%(abstract\|private\|public\|bind(c)\|extends(\a\w*)\)\)\{0,4}\s*::\s*\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>\%(\s\+\z1\>\)\?" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction + syn region fortranMultiComments fold start="^\zs\s*!.*\_s*!" skip="^\s*!" end='^\ze\s*[^!]' endif if exists("fortran_fold_conditionals") if (b:fortran_fixed_source == 1) - syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData - syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData - syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(.\+)\s*then\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData - syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData + syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranAttribute,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData + syn region fortran90Loop transparent fold keepend extend start="\%(\<end\s\+\)\@5<!\<do\%(\s\+\a\|\s*$\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranAttribute,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData + syn region fortranIfBlock transparent fold keepend extend start="\%(\<e\%(nd\|lse\)\s\+\)\@6<!\<if\s*(.\+)\s*then\>" skip="^\%([!c*]\|\s*#\).*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranAttribute,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData + syn region fortranCase transparent fold keepend extend start="\<select\s*\%(case\|type\|rank\)\>" skip="^\%([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranAttribute,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData else - syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData - syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\s*[!#].*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData - syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(\(.\|&\s*\n\)\+)\(\s\|&\s*\n\)*then\>" skip="^\s*[!#].*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData - syn region fortranCase transparent fold keepend extend start="\<select\s*\(case\|type\)\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData + syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranAttribute,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData + syn region fortran90Loop transparent fold keepend extend start="\%(\<end\s\+\)\@5<!\<do\%(\s\+\a\|\s*$\)" skip="^\s*[!#].*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranAttribute,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData + syn region fortranIfBlock transparent fold keepend extend start="\%(\<e\%(nd\|lse\)\s\+\)\@6<!\<if\s*(\%(.\|&\s*\n\)\+)\%(\s\|&\s*\n\)*then\>" skip="^\s*[!#].*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranAttribute,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData + syn region fortranCase transparent fold keepend extend start="\<select\s*\%(case\|type\|rank\)\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranAttribute,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData endif endif - if exists("fortran_fold_multilinecomments") - if (b:fortran_fixed_source == 1) - syn match fortranMultiLineComments transparent fold "\(^[!c*].*\(\n\|\%$\)\)\{4,}" contains=ALLBUT,fortranMultiCommentLines - else - syn match fortranMultiLineComments transparent fold "\(^\s*!.*\(\n\|\%$\)\)\{4,}" contains=ALLBUT,fortranMultiCommentLines - endif - endif endif " Define the default highlighting. -" The default highlighting differs for each dialect. -" Transparent groups: -" fortranParen, fortranLeftMargin -" fortranProgram, fortranModule, fortranSubroutine, fortranFunction, -" fortranBlockData -" fortran77Loop, fortran90Loop, fortranIfBlock, fortranCase -" fortranMultiCommentLines -hi def link fortranKeyword Keyword +hi def link fortranBoolean Boolean +hi def link fortranComment Comment +hi def link fortranMultiComments Comment +hi def link fortranBlock Conditional +hi def link fortranConditional Conditional +hi def link fortranConstant Constant +hi def link fortranConditionalDel Error +hi def link fortranKeywordDel Error +hi def link fortranLabelError Error +hi def link fortranParenError Error +hi def link fortranStringDel Error +hi def link fortranTab Error +hi def link fortranFloat Float +hi def link fortranFloatIll Float +hi def link fortranCalled Function +hi def link fortranIntrinsic Function +hi def link fortranIntrinsicCUDA Function +hi def link fortranIntrinsicR Function +hi def link fortranIntrinsicVen Function +hi def link fortranUnitName Function hi def link fortranConstructName Identifier -hi def link fortranConditional Conditional -hi def link fortranRepeat Repeat -hi def link fortranTodo Todo -hi def link fortranContinueMark Special -hi def link fortranString String -hi def link fortranNumber Number -hi def link fortranBinary Number -hi def link fortranOctal Number -hi def link fortranHex Number -hi def link fortranOperator Operator -hi def link fortranBoolean Boolean -hi def link fortranLabelError Error -hi def link fortranObsolete Todo -hi def link fortranType Type -hi def link fortranStructure Type -hi def link fortranStorageClass StorageClass -hi def link fortranCall Function -hi def link fortranUnitHeader fortranPreCondit -hi def link fortranReadWrite Keyword -hi def link fortranIO Keyword -hi def link fortranIntrinsic Function -hi def link fortranConstant Constant - -" To stop deleted & obsolescent features being highlighted as Todo items, -" comment out the next 5 lines and uncomment the 5 lines after that -hi def link fortranUnitHeaderOb fortranObsolete -hi def link fortranKeywordOb fortranObsolete -hi def link fortranConditionalOb fortranObsolete -hi def link fortranTypeOb fortranObsolete -hi def link fortranKeywordDel fortranObsolete -"hi def link fortranUnitHeaderOb fortranUnitHeader -"hi def link fortranKeywordOb fortranKeyword -"hi def link fortranConditionalOb fortranConditional -"hi def link fortranTypeOb fortranType -"hi def link fortranKeywordDel fortranKeyword - -if b:fortran_dialect == "F" - hi! def link fortranIntrinsicR fortranObsolete - hi! def link fortranUnitHeaderR fortranObsolete - hi! def link fortranTypeR fortranObsolete - hi! def link fortranStorageClassR fortranObsolete - hi! def link fortranOperatorR fortranObsolete - hi! def link fortranInclude fortranObsolete - hi! def link fortranLabelNumber fortranObsolete - hi! def link fortranTarget fortranObsolete - hi! def link fortranFloatIll fortranObsolete - hi! def link fortranIOR fortranObsolete - hi! def link fortranKeywordR fortranObsolete - hi! def link fortranStringR fortranObsolete - hi! def link fortranConditionalR fortranObsolete -else - hi! def link fortranIntrinsicR fortranIntrinsic - hi! def link fortranUnitHeaderR fortranPreCondit - hi! def link fortranTypeR fortranType - hi! def link fortranStorageClassR fortranStorageClass - hi! def link fortranOperatorR fortranOperator - hi! def link fortranInclude Include - hi! def link fortranLabelNumber Special - hi! def link fortranTarget Special - hi! def link fortranFloatIll fortranFloat - hi! def link fortranIOR fortranIO - hi! def link fortranKeywordR fortranKeyword - hi! def link fortranStringR fortranString - hi! def link fortranConditionalR fortranConditional -endif - -hi def link fortranFormatSpec Identifier -hi def link fortranFloat Float -hi def link fortranPreCondit PreCondit -hi def link cIncluded fortranString -hi def link cInclude Include -hi def link cPreProc PreProc -hi def link cPreCondit PreCondit -hi def link fortranOpenMP PreProc -hi def link fortranParenError Error -hi def link fortranComment Comment -hi def link fortranSerialNumber Todo -hi def link fortranTab Error - -if exists("fortran_CUDA") - hi def link fortranIntrinsicCUDA fortranIntrinsic - hi def link fortranTypeCUDA fortranType - hi def link fortranStringCUDA fortranString -endif - -if exists("fortran_vendor_intrinsics") - hi def link fortranExtraIntrinsic Function -endif +hi def link fortranFormatSpec Identifier +hi def link cInclude Include +hi def link fortranInclude Include +hi def link fortranIOR Keyword +hi def link fortranImageControl Keyword +hi def link fortranKeyword Keyword +hi def link fortranReadWrite Keyword +hi def link fortranSpecifier Keyword +hi def link fortranBinary Number +hi def link fortranHex Number +hi def link fortranNumber Number +hi def link fortranBinary Number +hi def link fortranOctal Number +hi def link fortranOperator Operator +hi def link fortranOperatorR Operator +hi def link cPreCondit PreCondit +hi def link fortranUnitHeader PreCondit +hi def link fortranOpenMP PreProc +hi def link cPreProc PreProc +hi def link fortranRepeat Repeat +hi def link fortranRepeatR Repeat +hi def link fortranContinueMark Special +hi def link fortranEndStatement Special +hi def link fortranLabelNumber Special +hi def link fortranTarget Special +hi def link fortranStorageClass StorageClass +hi def link cIncluded String +hi def link fortranString String +hi def link fortranStringCUDA String +hi def link fortranIntrinsicOb Todo +hi def link fortranKeywordOb Todo +hi def link fortranLabelNumberOb Todo +hi def link fortranRepeatOb Todo +hi def link fortranSerialNumber Todo +hi def link fortranStorageClassOb Todo +hi def link fortranTargetOb Todo +hi def link fortranTodo Todo +hi def link fortranTypeOb Todo +hi def link fortranUnitHeaderOb Todo +hi def link fortranAttribute Type +hi def link fortranType Type +hi def link fortranTypeCUDA Type +hi def link fortranTypeR Type let b:current_syntax = "fortran" diff --git a/runtime/syntax/git.vim b/runtime/syntax/git.vim index bf013ce195..51eb8127dd 100644 --- a/runtime/syntax/git.vim +++ b/runtime/syntax/git.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: generic git output " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2022 Jan 05 +" Last Change: 2023 Dec 28 if exists("b:current_syntax") finish @@ -38,7 +38,7 @@ syn match gitReflog /^\x\{40,\} \x\{40,\} .\{-\}\d\+\s-\d\{4\}\t.*/ skipwhite c syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff -syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff +syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge syn match gitDiffAdded "{+[^}]*+}" contained containedin=gitDiff diff --git a/runtime/syntax/gitcommit.vim b/runtime/syntax/gitcommit.vim index 42c8d4414f..bce6772762 100644 --- a/runtime/syntax/gitcommit.vim +++ b/runtime/syntax/gitcommit.vim @@ -2,7 +2,7 @@ " Language: git commit file " Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Filenames: *.git/COMMIT_EDITMSG -" Last Change: 2022 Jan 05 +" Last Change: 2023 Dec 28 if exists("b:current_syntax") finish @@ -21,7 +21,11 @@ endif syn include @gitcommitDiff syntax/diff.vim syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|@@\@!\|[^[:alnum:]\ +-]\S\@!\)\@=/ fold contains=@gitcommitDiff -syn match gitcommitSummary "^.*\%<51v." contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell +if get(g:, 'gitcommit_summary_length') < 0 + syn match gitcommitSummary "^.*$" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell +elseif get(g:, 'gitcommit_summary_length', 1) > 0 + exe 'syn match gitcommitSummary "^.*\%<' . (get(g:, 'gitcommit_summary_length', 50) + 1) . 'v." contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell' +endif syn match gitcommitOverflow ".*" contained contains=@Spell syn match gitcommitBlank "^.\+" contained contains=@Spell syn match gitcommitFirstLine "\%^.*" nextgroup=gitcommitBlank,gitcommitComment skipnl diff --git a/runtime/syntax/go.vim b/runtime/syntax/go.vim index 4272e807f3..ba776f949c 100644 --- a/runtime/syntax/go.vim +++ b/runtime/syntax/go.vim @@ -5,7 +5,7 @@ " go.vim: Vim syntax file for Go. " Language: Go " Maintainer: Billie Cleek <bhcleek@gmail.com> -" Latest Revision: 2023-08-21 +" Latest Revision: 2024-01-21 " License: BSD-style. See LICENSE file in source repository. " Repository: https://github.com/fatih/vim-go @@ -230,21 +230,31 @@ endif " import if s:FoldEnable('import') syn region goImport start='import (' end=')' transparent fold contains=goImport,goImportString,goComment + syn match goImport /^import ()/ transparent fold contains=goImport else syn region goImport start='import (' end=')' transparent contains=goImport,goImportString,goComment + syn match goImport /^import ()/ transparent contains=goImport endif " var, const if s:FoldEnable('varconst') syn region goVar start='var (' end='^\s*)$' transparent fold - \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + syn match goVar /var ()/ transparent fold + \ contains=goVar syn region goConst start='const (' end='^\s*)$' transparent fold - \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + syn match goConst /const ()/ transparent fold + \ contains=goConst else syn region goVar start='var (' end='^\s*)$' transparent - \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + syn match goVar /var ()/ transparent + \ contains=goVar syn region goConst start='const (' end='^\s*)$' transparent - \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + syn match goConst /const ()/ transparent + \ contains=goConst endif " Single-line var, const, and import. diff --git a/runtime/syntax/gpg.vim b/runtime/syntax/gpg.vim index c7f3584ff0..f132a52705 100644 --- a/runtime/syntax/gpg.vim +++ b/runtime/syntax/gpg.vim @@ -1,9 +1,13 @@ " Vim syntax file " Language: gpg(1) configuration file +" Maintainer: This runtime file is looking for a maintainer. " Previous Maintainer: Nikolai Weibull <now@bitwi.se> -" Latest Revision: 2010-10-14 -" Updated: 2023-01-23 @ObserverOfTime: added a couple of keywords +" Latest Revision: 2024-02-11 +" Updated: +" 2023-01-23 @ObserverOfTime: added a couple of keywords " 2023-03-21 Todd Zullinger <tmz@pobox.com>: sync with gnupg-2.4.0 +" 2024-02-10 Daniel Kahn Gillmor <dkg@fifthhorseman.net>: +" mark use-embedded-filename as warning for security reasons if exists("b:current_syntax") finish @@ -21,7 +25,7 @@ syn region gpgComment contained display oneline start='#' end='$' syn match gpgID contained display '\<\(0x\)\=\x\{8,}\>' -syn match gpgBegin display '^' skipwhite nextgroup=gpgComment,gpgOption,gpgCommand +syn match gpgBegin display '^' skipwhite nextgroup=gpgComment,gpgOption,gpgOptionDeprecated,gpgCommand syn keyword gpgCommand contained skipwhite nextgroup=gpgArg \ change-passphrase check-sig check-signatures @@ -41,6 +45,7 @@ syn keyword gpgCommand contained skipwhite nextgroup=gpgArg \ quick-set-expire quick-set-primary-uid quick-sign-key \ quick-update-pref receive-keys recv-keys refresh-keys \ search-keys show-key show-keys sign-key tofu-policy + syn keyword gpgCommand contained skipwhite nextgroup=gpgArgError \ card-edit card-status change-pin check-trustdb \ clear-sign clearsign dearmor dearmour decrypt @@ -97,6 +102,7 @@ syn keyword gpgOption contained skipwhite nextgroup=gpgArg \ trusted-key trust-model try-secret-key ttyname \ ttytype ungroup user verify-options weak-digest \ xauthority + syn keyword gpgOption contained skipwhite nextgroup=gpgArgError \ allow-freeform-uid allow-multiple-messages \ allow-multisig-verification allow-non-selfsigned-uid @@ -145,7 +151,7 @@ syn keyword gpgOption contained skipwhite nextgroup=gpgArgError \ no-sk-comments no-skip-hidden-recipients \ no-symkey-cache not-dash-escaped no-textmode \ no-throw-keyids no-tty no-use-agent - \ no-use-embedded-filename no-utf8-strings no-verbose + \ no-utf8-strings no-verbose \ no-version only-sign-text-ids openpgp \ override-compliance-check pgp6 pgp7 pgp8 \ preserve-permissions print-dane-records quiet @@ -155,7 +161,7 @@ syn keyword gpgOption contained skipwhite nextgroup=gpgArgError \ show-notation show-photos show-policy-url \ show-session-key sk-comments skip-hidden-recipients \ skip-verify textmode throw-keyids try-all-secrets - \ unwrap use-agent use-embedded-filename use-keyboxd + \ unwrap use-agent use-keyboxd \ use-only-openpgp-card utf8-strings verbose version \ warranty with-colons with-fingerprint \ with-icao-spelling with-key-data with-keygrip @@ -164,6 +170,10 @@ syn keyword gpgOption contained skipwhite nextgroup=gpgArgError \ with-subkey-fingerprints with-tofu-info with-wkd-hash \ yes +" depcrated for security reasons +syn keyword gpgOptionDeprecated contained skipwhite nextgroup=gpgArgError + \ use-embedded-filename no-use-embedded-filename + syn match gpgArg contained display '\S\+\(\s\+\S\+\)*' contains=gpgID syn match gpgArgError contained display '\S\+\(\s\+\S\+\)*' @@ -171,6 +181,7 @@ hi def link gpgComment Comment hi def link gpgTodo Todo hi def link gpgID Number hi def link gpgOption Keyword +hi def link gpgOptionDeprecated WarningMsg hi def link gpgCommand Error hi def link gpgArgError Error diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim index f1e650b2fb..fced5e7dd1 100644 --- a/runtime/syntax/help.vim +++ b/runtime/syntax/help.vim @@ -136,6 +136,10 @@ syn match helpTodo "\t[* ]Todo\t\+[a-z].*" syn match helpURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-zA-Z0-9/]` +syn match helpDiffAdded "\t[* ]Added\t\+[a-z].*" +syn match helpDiffChanged "\t[* ]Changed\t\+[a-z].*" +syn match helpDiffRemoved "\t[* ]Removed\t\+[a-z].*" + " Additionally load a language-specific syntax file "help_ab.vim". let s:i = match(expand("%"), '\.\a\ax$') if s:i > 0 @@ -209,6 +213,9 @@ hi def link helpUnderlined Underlined hi def link helpError Error hi def link helpTodo Todo hi def link helpURL String +hi def link helpDiffAdded Added +hi def link helpDiffChanged Changed +hi def link helpDiffRemoved Removed let b:current_syntax = "help" diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim index 82c829a2e1..c975ae8620 100644 --- a/runtime/syntax/html.vim +++ b/runtime/syntax/html.vim @@ -3,9 +3,9 @@ " Maintainer: Doug Kearns <dougkearns@gmail.com> " Previous Maintainers: Jorge Maldonado Ventura <jorgesumle@freakspot.net> " Claudio Fleiner <claudio@fleiner.com> -" Last Change: 2023 Feb 20 +" Last Change: 2023 Nov 28 -" Please check :help html.vim for some comments and a description of the options +" See :help html.vim for some comments and a description of the options " quit when a syntax file was already loaded if !exists("main_syntax") @@ -28,7 +28,6 @@ syn case ignore " mark illegal characters syn match htmlError "[<>&]" - " tags syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc @@ -39,7 +38,6 @@ syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName, syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster syn match htmlTagError contained "[^>]<"ms=s+1 - " tag names syn keyword htmlTagName contained address applet area a base basefont syn keyword htmlTagName contained big blockquote br caption center @@ -61,7 +59,7 @@ syn keyword htmlTagName contained article aside audio bdi canvas data syn keyword htmlTagName contained datalist details dialog embed figcaption syn keyword htmlTagName contained figure footer header hgroup keygen main syn keyword htmlTagName contained mark menuitem meter nav output picture -syn keyword htmlTagName contained progress rb rp rt rtc ruby section +syn keyword htmlTagName contained progress rb rp rt rtc ruby search section syn keyword htmlTagName contained slot source summary template time track syn keyword htmlTagName contained video wbr @@ -88,19 +86,72 @@ syn keyword htmlArg contained size src start target text type url syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap syn match htmlArg contained "\<\%(http-equiv\|href\|title\)="me=e-1 -" aria attributes -exe 'syn match htmlArg contained "\<aria-\%(' . join([ - \ 'activedescendant', 'atomic', 'autocomplete', 'busy', 'checked', 'colcount', - \ 'colindex', 'colspan', 'controls', 'current', 'describedby', 'details', - \ 'disabled', 'dropeffect', 'errormessage', 'expanded', 'flowto', 'grabbed', - \ 'haspopup', 'hidden', 'invalid', 'keyshortcuts', 'label', 'labelledby', 'level', - \ 'live', 'modal', 'multiline', 'multiselectable', 'orientation', 'owns', - \ 'placeholder', 'posinset', 'pressed', 'readonly', 'relevant', 'required', - \ 'roledescription', 'rowcount', 'rowindex', 'rowspan', 'selected', 'setsize', - \ 'sort', 'valuemax', 'valuemin', 'valuenow', 'valuetext' - \ ], '\|') . '\)\>"' syn keyword htmlArg contained role +" ARIA attributes {{{1 +let s:aria =<< trim END + activedescendant + atomic + autocomplete + braillelabel + brailleroledescription + busy + checked + colcount + colindex + colindextext + colspan + controls + current + describedby + description + details + disabled + errormessage + expanded + flowto + haspopup + hidden + invalid + keyshortcuts + label + labelledby + level + live + modal + multiline + multiselectable + orientation + owns + placeholder + posinset + pressed + readonly + relevant + required + roledescription + rowcount + rowindex + rowindextext + rowspan + selected + setsize + sort + valuemax + valuemin + valuenow + valuetext +END +let s:aria_deprecated =<< trim END + dropeffect + grabbed +END + +call extend(s:aria, s:aria_deprecated) +exe 'syn match htmlArg contained "\%#=1\<aria-\%(' .. s:aria->join('\|') .. '\)\>"' +unlet s:aria s:aria_deprecated +" }}} + " Netscape extensions syn keyword htmlTagName contained frame noframes frameset nobr blink syn keyword htmlTagName contained layer ilayer nolayer spacer @@ -321,9 +372,9 @@ if !exists("html_no_rendering") hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline hi def htmlItalic term=italic cterm=italic gui=italic if v:version > 800 || v:version == 800 && has("patch1038") - hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough + hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough else - hi def htmlStrike term=underline cterm=underline gui=underline + hi def htmlStrike term=underline cterm=underline gui=underline endif endif endif @@ -356,4 +407,5 @@ endif let &cpo = s:cpo_save unlet s:cpo_save -" vim: ts=8 + +" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: diff --git a/runtime/syntax/i3config.vim b/runtime/syntax/i3config.vim index d4512525f9..8131639a11 100644 --- a/runtime/syntax/i3config.vim +++ b/runtime/syntax/i3config.vim @@ -2,8 +2,8 @@ " Language: i3 config file " Original Author: Josef Litos (JosefLitos/i3config.vim) " Maintainer: Quentin Hibon (github user hiqua) -" Version: 1.0.0 -" Last Change: 2023-11-11 +" Version: 1.0.2 +" Last Change: 2023-12-28 " References: " http://i3wm.org/docs/userguide.html#configuring @@ -137,8 +137,7 @@ syn match i3ConfigIpcKeyword /ipc-socket/ contained syn match i3ConfigParamLine /^ipc-socket .*$/ contains=i3ConfigIpcKeyword " 4.24 Focus follows mouse -syn keyword i3ConfigFocusFollowsMouseOpts always contained -syn match i3ConfigKeyword /^focus_follows_mouse \(yes\|no\|always\)$/ contains=i3ConfigBoolean,i3ConfigFocusFollowsMouseOpts +syn match i3ConfigKeyword /^focus_follows_mouse \(yes\|no\)$/ contains=i3ConfigBoolean " 4.25 Mouse warping syn keyword i3ConfigMouseWarpingOpts output container none contained @@ -298,7 +297,6 @@ hi def link i3ConfigWorkspaceDir i3ConfigOption hi def link i3ConfigDotOperator i3ConfigOperator hi def link i3ConfigClientOpts i3ConfigOption hi def link i3ConfigIpcKeyword i3ConfigKeyword -hi def link i3ConfigFocusFollowsMouseOpts i3ConfigOption hi def link i3ConfigMouseWarpingOpts i3ConfigOption hi def link i3ConfigPopupFullscreenOpts i3ConfigOption hi def link i3ConfigFocusWrappingOpts i3ConfigOption diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim index 00d6071944..f6d2660277 100644 --- a/runtime/syntax/java.vim +++ b/runtime/syntax/java.vim @@ -2,7 +2,7 @@ " Language: Java " Maintainer: Claudio Fleiner <claudio@fleiner.com> " URL: https://github.com/fleiner/vim/blob/master/runtime/syntax/java.vim -" Last Change: 2022 Jun 08 +" Last Change: 2024 Mar 02 " Please check :help java.vim for comments on some of the options available. @@ -37,6 +37,14 @@ syn keyword javaBoolean true false syn keyword javaConstant null syn keyword javaTypedef this super syn keyword javaOperator var new instanceof +" Since the yield statement, which could take a parenthesised operand, +" and _qualified_ yield methods get along within the switch block +" (JLS-17, §3.8), it seems futile to make a region definition for this +" block; instead look for the _yield_ word alone, and if found, +" backtrack (arbitrarily) 80 bytes, at most, on the matched line and, +" if necessary, on the line before that (h: \@<=), trying to match +" neither a method reference nor a qualified method invocation. +syn match javaOperator "\%(\%(::\|\.\)[[:space:]\n]*\)\@80<!\<yield\>" syn keyword javaType boolean char byte short int long float double syn keyword javaType void syn keyword javaStatement return @@ -56,6 +64,7 @@ syn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite syn match javaUserLabelRef "\k\+" contained syn match javaVarArg "\.\.\." syn keyword javaScopeDecl public protected private abstract +syn match javaConceptKind "\<default\>\%(\s*\%(:\|->\)\)\@!" function s:isModuleInfoDeclarationCurrentBuffer() abort return fnamemodify(bufname("%"), ":t") =~ '^module-info\%(\.class\>\)\@!' @@ -142,28 +151,46 @@ if exists("java_space_errors") endif endif -syn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" end="->" matchgroup=NONE end=":" contains=javaNumber,javaCharacter,javaString -syn match javaUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=javaLabel -syn keyword javaLabel default +syn match javaUserLabel "^\s*\<\K\k*\>\%(\<default\>\)\@<!\s*:"he=e-1 +syn region javaLabelRegion transparent matchgroup=javaLabel start="\<case\>" matchgroup=NONE end=":\|->" contains=javaLabelCastType,javaLabelNumber,javaCharacter,javaString,javaConstant,@javaClasses,javaLabelDefault,javaLabelVarType,javaLabelWhenClause +syn region javaLabelRegion transparent matchgroup=javaLabel start="\<default\>\%(\s*\%(:\|->\)\)\@=" matchgroup=NONE end=":\|->" oneline +" Consider grouped _default_ _case_ labels, i.e. +" case null, default -> +" case null: default: +syn keyword javaLabelDefault contained default +syn keyword javaLabelVarType contained var +syn keyword javaLabelCastType contained char byte short int +" Allow for the contingency of the enclosing region not being able to +" _keep_ its _end_, e.g. case ':':. +syn region javaLabelWhenClause contained transparent matchgroup=javaLabel start="\<when\>" matchgroup=NONE end=":"me=e-1 end="->"me=e-2 contains=TOP,javaExternal +syn match javaLabelNumber contained "\<0\>[lL]\@!" +syn match javaLabelNumber contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)\>[lL]\@!" +hi def link javaLabelDefault javaLabel +hi def link javaLabelVarType javaOperator +hi def link javaLabelNumber javaNumber +hi def link javaLabelCastType javaType " highlighting C++ keywords as errors removed, too many people find it " annoying. Was: if !exists("java_allow_cpp_keywords") " The following cluster contains all java groups except the contained ones -syn cluster javaTop add=javaExternal,javaError,javaBranch,javaLabelRegion,javaLabel,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaScopeDecl,javaError2,javaUserLabel,javaLangObject,javaAnnotation,javaVarArg +syn cluster javaTop add=javaExternal,javaError,javaBranch,javaLabelRegion,javaConditional,javaRepeat,javaBoolean,javaConstant,javaTypedef,javaOperator,javaType,javaStatement,javaStorageClass,javaAssert,javaExceptions,javaMethodDecl,javaClassDecl,javaScopeDecl,javaConceptKind,javaError2,javaUserLabel,javaLangObject,javaAnnotation,javaVarArg " Comments syn keyword javaTodo contained TODO FIXME XXX + if exists("java_comment_strings") syn region javaCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell - syn region javaComment2String contained start=+"+ end=+$\|"+ contains=javaSpecial,javaSpecialChar,@Spell + syn region javaCommentString contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecial,javaCommentStar,javaSpecialChar,@Spell,javaSpecialError,javaTextBlockError + syn region javaComment2String contained start=+"+ end=+$\|"+ contains=javaSpecial,javaSpecialChar,@Spell syn match javaCommentCharacter contained "'\\[^']\{1,6\}'" contains=javaSpecialChar syn match javaCommentCharacter contained "'\\''" contains=javaSpecialChar syn match javaCommentCharacter contained "'[^\\]'" syn cluster javaCommentSpecial add=javaCommentString,javaCommentCharacter,javaNumber syn cluster javaCommentSpecial2 add=javaComment2String,javaCommentCharacter,javaNumber endif + syn region javaComment start="/\*" end="\*/" contains=@javaCommentSpecial,javaTodo,@Spell syn match javaCommentStar contained "^\s*\*[^/]"me=e-1 syn match javaCommentStar contained "^\s*\*$" @@ -202,22 +229,32 @@ syn match javaComment "/\*\*/" " Strings and constants syn match javaSpecialError contained "\\." syn match javaSpecialCharError contained "[^']" -syn match javaSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)" +" Escape Sequences (JLS-17, §3.10.7): +syn match javaSpecialChar contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)" syn region javaString start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell -" next line disabled, it can cause a crash for a long line -"syn match javaStringError +"\([^"\\]\|\\.\)*$+ +syn region javaString start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaSpecialChar,javaSpecialError,javaTextBlockError,@Spell +syn match javaTextBlockError +"""\s*"""+ +" The next line is commented out, it can cause a crash for a long line +"syn match javaStringError +"\%([^"\\]\|\\.\)*$+ syn match javaCharacter "'[^']*'" contains=javaSpecialChar,javaSpecialCharError syn match javaCharacter "'\\''" contains=javaSpecialChar syn match javaCharacter "'[^\\]'" -syn match javaNumber "\<\(0[bB][0-1]\+\|0[0-7]*\|0[xX]\x\+\|\d\(\d\|_\d\)*\)[lL]\=\>" -syn match javaNumber "\(\<\d\(\d\|_\d\)*\.\(\d\(\d\|_\d\)*\)\=\|\.\d\(\d\|_\d\)*\)\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\=" -syn match javaNumber "\<\d\(\d\|_\d\)*[eE][-+]\=\d\(\d\|_\d\)*[fFdD]\=\>" -syn match javaNumber "\<\d\(\d\|_\d\)*\([eE][-+]\=\d\(\d\|_\d\)*\)\=[fFdD]\>" - -" unicode characters -syn match javaSpecial "\\u\d\{4\}" - -syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError +" Integer literals (JLS-17, §3.10.1): +syn keyword javaNumber 0 0l 0L +syn match javaNumber "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)[lL]\=\>" +" Decimal floating-point literals (JLS-17, §3.10.2): +" Against "\<\d\+\>\.": +syn match javaNumber "\<\d\%(_*\d\)*\." +syn match javaNumber "\%(\<\d\%(_*\d\)*\.\%(\d\%(_*\d\)*\)\=\|\.\d\%(_*\d\)*\)\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\=\>" +syn match javaNumber "\<\d\%(_*\d\)*[eE][-+]\=\d\%(_*\d\)*[fFdD]\=\>" +syn match javaNumber "\<\d\%(_*\d\)*\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\>" +" Hexadecimal floating-point literals (JLS-17, §3.10.2): +syn match javaNumber "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>" + +" Unicode characters +syn match javaSpecial "\\u\x\x\x\x" + +syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError,javaTextBlockError if exists("java_highlight_functions") if java_highlight_functions == "indent" @@ -231,26 +268,31 @@ if exists("java_highlight_functions") " 1. class names are always capitalized (ie: Button) " 2. method names are never capitalized (except constructors, of course) "syn region javaFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses - syn region javaFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(<.*>\s\+\)\?\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^(){}]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*(+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses,javaAnnotation + syn region javaFuncDef start=+^\s\+\%(\%(public\|protected\|private\|static\|\%(abstract\|default\)\|final\|native\|synchronized\)\s\+\)*\%(<.*>\s\+\)\?\%(\%(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\%([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\%(<[^(){}]*>\)\=\%(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*(+ end=+)+ contains=javaScopeDecl,javaType,javaStorageClass,javaComment,javaLineComment,@javaClasses,javaAnnotation endif - syn match javaLambdaDef "[a-zA-Z_][a-zA-Z0-9_]*\s*->" + syn match javaLambdaDef "\<\K\k*\>\%(\<default\>\)\@<!\s*->" syn match javaBraces "[{}]" syn cluster javaTop add=javaFuncDef,javaBraces,javaLambdaDef endif if exists("java_highlight_debug") - " Strings and constants - syn match javaDebugSpecial contained "\\\d\d\d\|\\." + syn match javaDebugSpecial contained "\\\%(u\x\x\x\x\|[0-3]\o\o\|\o\o\=\|[bstnfr"'\\]\)" syn region javaDebugString contained start=+"+ end=+"+ contains=javaDebugSpecial - syn match javaDebugStringError +"\([^"\\]\|\\.\)*$+ + syn region javaDebugString contained start=+"""[ \t\x0c\r]*$+hs=e+1 end=+"""+he=s-1 contains=javaDebugSpecial,javaDebugTextBlockError +" The next line is commented out, it can cause a crash for a long line +" syn match javaDebugStringError contained +"\%([^"\\]\|\\.\)*$+ + syn match javaDebugTextBlockError contained +"""\s*"""+ syn match javaDebugCharacter contained "'[^\\]'" syn match javaDebugSpecialCharacter contained "'\\.'" syn match javaDebugSpecialCharacter contained "'\\''" - syn match javaDebugNumber contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" - syn match javaDebugNumber contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" - syn match javaDebugNumber contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" - syn match javaDebugNumber contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" + syn keyword javaDebugNumber contained 0 0l 0L + syn match javaDebugNumber contained "\<\d\%(_*\d\)*\." + syn match javaDebugNumber contained "\<\%(0\%([xX]\x\%(_*\x\)*\|_*\o\%(_*\o\)*\|[bB][01]\%(_*[01]\)*\)\|[1-9]\%(_*\d\)*\)[lL]\=\>" + syn match javaDebugNumber contained "\%(\<\d\%(_*\d\)*\.\%(\d\%(_*\d\)*\)\=\|\.\d\%(_*\d\)*\)\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\=\>" + syn match javaDebugNumber contained "\<\d\%(_*\d\)*[eE][-+]\=\d\%(_*\d\)*[fFdD]\=\>" + syn match javaDebugNumber contained "\<\d\%(_*\d\)*\%([eE][-+]\=\d\%(_*\d\)*\)\=[fFdD]\>" + syn match javaDebugNumber contained "\<0[xX]\%(\x\%(_*\x\)*\.\=\|\%(\x\%(_*\x\)*\)\=\.\x\%(_*\x\)*\)[pP][-+]\=\d\%(_*\d\)*[fFdD]\=\>" syn keyword javaDebugBoolean contained true false syn keyword javaDebugType contained null this super syn region javaDebugParen start=+(+ end=+)+ contained contains=javaDebug.*,javaDebugParen @@ -266,6 +308,7 @@ if exists("java_highlight_debug") hi def link javaDebug Debug hi def link javaDebugString DebugString hi def link javaDebugStringError javaError + hi def link javaDebugTextBlockError javaDebugStringError hi def link javaDebugType DebugType hi def link javaDebugBoolean DebugBoolean hi def link javaDebugNumber Debug @@ -326,6 +369,7 @@ hi def link javaStorageClass StorageClass hi def link javaMethodDecl javaStorageClass hi def link javaClassDecl javaStorageClass hi def link javaScopeDecl javaStorageClass +hi def link javaConceptKind NonText hi def link javaBoolean Boolean hi def link javaSpecial Special @@ -337,6 +381,7 @@ hi def link javaSpecialChar SpecialChar hi def link javaNumber Number hi def link javaError Error hi def link javaStringError Error +hi def link javaTextBlockError javaStringError hi def link javaStatement Statement hi def link javaOperator Operator hi def link javaComment Comment diff --git a/runtime/syntax/json5.vim b/runtime/syntax/json5.vim index 5b01d33aad..dc0d11b2a1 100644 --- a/runtime/syntax/json5.vim +++ b/runtime/syntax/json5.vim @@ -49,9 +49,11 @@ syn match json5Key /@\?\%(\I\|\$\)\%(\i\|\$\)*\s*\ze::\@!/ contains=@Spell syn match json5Key /"\([^"]\|\\"\)\{-}"\ze\s*:/ contains=json5Escape,@Spell " Comment -syn region json5LineComment start=+\/\/+ end=+$+ keepend contains=@Spell -syn region json5LineComment start=+^\s*\/\/+ skip=+\n\s*\/\/+ end=+$+ keepend fold contains=@Spell -syn region json5Comment start="/\*" end="\*/" fold contains=@Spell +syn region json5LineComment start=+\/\/+ end=+$+ keepend contains=@Spell,json5Todo +syn region json5LineComment start=+^\s*\/\/+ skip=+\n\s*\/\/+ end=+$+ keepend fold contains=@Spell,json5Todo +syn region json5Comment start="/\*" end="\*/" fold contains=@Spell,json5Todo + +syn keyword json5Todo contained TODO FIXME XXX " Define the default highlighting hi def link json5String String @@ -66,6 +68,7 @@ hi def link json5Boolean Boolean hi def link json5LineComment Comment hi def link json5Comment Comment hi def link json5NumError Error +hi def link json5Todo Todo if !exists('b:current_syntax') let b:current_syntax = 'json5' diff --git a/runtime/syntax/lex.vim b/runtime/syntax/lex.vim index 82197adbed..b05148e88f 100644 --- a/runtime/syntax/lex.vim +++ b/runtime/syntax/lex.vim @@ -1,9 +1,11 @@ " Vim syntax file " Language: Lex and Flex -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Contributor: Robert A. van Engelen <engelen@acm.org> -" Last Change: Apr 24, 2020 " Version: 18 +" Last Change: Apr 24, 2020 +" 2024 Feb 19 by Vim Project (announce adoption) " quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim index 90513e3a00..5350b4dc51 100644 --- a/runtime/syntax/lisp.vim +++ b/runtime/syntax/lisp.vim @@ -1,9 +1,11 @@ " Vim syntax file " Language: Lisp -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Nov 10, 2021 +" 2024 Feb 19 by Vim Project (announce adoption) " Version: 31 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_LISP " " Thanks to F Xavier Noria for a list of 978 Common Lisp symbols taken from HyperSpec " Clisp additions courtesy of http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/emacs/lisp.vim diff --git a/runtime/syntax/logtalk.vim b/runtime/syntax/logtalk.vim index bc70ef41b4..2c6c82aaa0 100644 --- a/runtime/syntax/logtalk.vim +++ b/runtime/syntax/logtalk.vim @@ -1,8 +1,9 @@ " Vim syntax file " " Language: Logtalk -" Maintainer: Paulo Moura <pmoura@logtalk.org> -" Last Change: August 3, 2018 +" Maintainer: Paulo Moura <pmoura@logtalk.org> +" Last Change: December 16, 2023 + " quit when a syntax file was already loaded @@ -30,7 +31,7 @@ syn match logtalkOperator ":-" " Logtalk quoted atoms and strings -syn region logtalkString start=+"+ skip=+\\"+ end=+"+ +syn region logtalkString start=+"+ skip=+\\"+ end=+"+ contains=logtalkEscapeSequence syn region logtalkAtom start=+'+ skip=+\\'+ end=+'+ contains=logtalkEscapeSequence syn match logtalkEscapeSequence contained "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+\|[0-7]\+\)\\\)" @@ -39,7 +40,7 @@ syn match logtalkEscapeSequence contained "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+ " Logtalk message sending operators syn match logtalkOperator "::" -syn match logtalkOperator ":" +syn match logtalkOperator "\(0'\)\@<!:" syn match logtalkOperator "\^\^" @@ -138,7 +139,7 @@ syn match logtalkBuiltIn "\<logtalk_make\>" syn match logtalkBuiltIn "\<\(for\|retract\)all\ze(" -syn match logtalkBuiltIn "\<threaded\(_\(call\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze(" +syn match logtalkBuiltIn "\<threaded\(_\(ca\(ll\|ncel\)\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze(" syn match logtalkBuiltIn "\<threaded_engine\(_\(create\|destroy\|self\|next\|next_reified\|yield\|post\|fetch\)\)\?\ze(" @@ -171,8 +172,8 @@ syn match logtalkBuiltInMethod "\<phrase\ze(" " Mode operators -syn match logtalkOperator "?" -syn match logtalkOperator "@" +syn match logtalkOperator "\(0'\)\@<!?" +syn match logtalkOperator "\(0'\)\@<!@" " Control constructs @@ -181,19 +182,19 @@ syn match logtalkKeyword "\<true\>" syn match logtalkKeyword "\<fail\>" syn match logtalkKeyword "\<false\>" syn match logtalkKeyword "\<ca\(ll\|tch\)\ze(" -syn match logtalkOperator "!" -" syn match logtalkOperator "," -syn match logtalkOperator ";" +syn match logtalkOperator "\(0'\)\@<!!" +" syn match logtalkOperator "\(0'\)\@<!," +syn match logtalkOperator "\(0'\)\@<!;" syn match logtalkOperator "-->" syn match logtalkOperator "->" syn match logtalkKeyword "\<throw\ze(" syn match logtalkKeyword "\<\(instantiation\|system\)_error\>" -syn match logtalkKeyword "\<\(type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze(" +syn match logtalkKeyword "\<\(uninstantiation\|type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze(" " Term unification -syn match logtalkOperator "=" +syn match logtalkOperator "\(0'\)\@<!=" syn match logtalkKeyword "\<subsumes_term\ze(" syn match logtalkKeyword "\<unify_with_occurs_check\ze(" syn match logtalkOperator "\\=" @@ -246,9 +247,9 @@ syn match logtalkOperator "\<is\>" syn match logtalkOperator "=:=" syn match logtalkOperator "=\\=" -syn match logtalkOperator "<" +syn match logtalkOperator "\(0'\)\@<!<" syn match logtalkOperator "=<" -syn match logtalkOperator ">" +syn match logtalkOperator "\(0'\)\@<!>" syn match logtalkOperator ">=" @@ -310,11 +311,11 @@ syn match logtalkKeyword "\<\(key\)\?sort\ze(" " Evaluable functors -syn match logtalkOperator "+" -syn match logtalkOperator "-" -syn match logtalkOperator "\*" +syn match logtalkOperator "\(0'\)\@<![+]" +syn match logtalkOperator "\(0'\)\@<![-]" +syn match logtalkOperator "\(0'\)\@<!\*" syn match logtalkOperator "//" -syn match logtalkOperator "/" +syn match logtalkOperator "\(0'\)\@<!/" syn match logtalkKeyword "\<div\ze(" syn match logtalkKeyword "\<r\(ound\|em\)\ze(" syn match logtalkKeyword "\<e\>" @@ -330,7 +331,7 @@ syn match logtalkKeyword "\<t\(an\|runcate\)\ze(" syn match logtalkKeyword "\<ceiling\ze(" -" Other arithmetic functors +" Other arithemtic functors syn match logtalkOperator "\*\*" syn match logtalkKeyword "\<s\(in\|qrt\)\ze(" @@ -346,18 +347,18 @@ syn match logtalkOperator ">>" syn match logtalkOperator "<<" syn match logtalkOperator "/\\" syn match logtalkOperator "\\/" -syn match logtalkOperator "\\" +syn match logtalkOperator "0'\@<!\\" syn match logtalkKeyword "\<xor\ze(" " Logtalk list operator -syn match logtalkOperator "|" +syn match logtalkOperator "\(0'\)\@<!|" " Logtalk existential quantifier operator -syn match logtalkOperator "\^" +syn match logtalkOperator "\(0'\)\@<!^" " Logtalk numbers @@ -366,7 +367,7 @@ syn match logtalkNumber "\<\d\+\>" syn match logtalkNumber "\<\d\+\.\d\+\>" syn match logtalkNumber "\<\d\+[eE][-+]\=\d\+\>" syn match logtalkNumber "\<\d\+\.\d\+[eE][-+]\=\d\+\>" -syn match logtalkNumber "\<0'[\\]\?.\|0''\|0'\"\>" +syn match logtalkNumber "0'[\\]\?." syn match logtalkNumber "\<0b[0-1]\+\>" syn match logtalkNumber "\<0o\o\+\>" syn match logtalkNumber "\<0x\x\+\>" @@ -374,13 +375,13 @@ syn match logtalkNumber "\<0x\x\+\>" " Logtalk end-of-clause -syn match logtalkOperator "\." +syn match logtalkOperator "\(0'\)\@<!\." " Logtalk comments syn region logtalkBlockComment start="/\*" end="\*/" fold -syn match logtalkLineComment "%.*" +syn match logtalkLineComment "%.*$" syn cluster logtalkComment contains=logtalkBlockComment,logtalkLineComment diff --git a/runtime/syntax/mail.vim b/runtime/syntax/mail.vim index 0cd48fc77a..9beeba69e2 100644 --- a/runtime/syntax/mail.vim +++ b/runtime/syntax/mail.vim @@ -2,7 +2,7 @@ " Language: Mail file " Previous Maintainer: Felix von Leitner <leitner@math.fu-berlin.de> " Maintainer: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com' -" Last Change: Wed 14 Aug 2013 08:24:52 AM PDT +" Last Change: Thu 25 Jan 2024 10:34:02 AM EST " Quit when a syntax file was already loaded if exists("b:current_syntax") @@ -12,6 +12,8 @@ endif let s:cpo_save = &cpo set cpo&vim +syn spell toplevel + " The mail header is recognized starting with a "keyword:" line and ending " with an empty line or other line that can't be in the header. All lines of " the header are highlighted. Headers of quoted messages (quoted with >) are @@ -61,6 +63,9 @@ syn region mailVerbatim contains=@mailQuoteExps,@NoSpell keepend start="^\z(\(> syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]` syn match mailEmail contains=@NoSpell "\v[_=a-z\./+0-9-]+\@[a-z0-9._-]+\a{2}" +" Don't spell emojis +syn match mailEmoji contains=@NoSpell "\%#=2\v[\U1f300-\U1f64f\U1f900-\U1f9ff]" + " Make sure quote markers in regions (header / signature) have correct color syn match mailQuoteExp1 contained "\v^(\> ?)" syn match mailQuoteExp2 contained "\v^(\> ?){2}" @@ -86,14 +91,14 @@ endif " Define the default highlighting. hi def link mailVerbatim Special -hi def link mailHeader Statement +hi def link mailHeader PreProc hi def link mailHeaderKey Type -hi def link mailSignature PreProc +hi def link mailSignature Comment hi def link mailHeaderEmail mailEmail -hi def link mailEmail Special -hi def link mailURL String -hi def link mailSubject Title -hi def link mailQuoted1 Comment +hi def link mailEmail String +hi def link mailURL Constant +hi def link mailSubject Statement +hi def link mailQuoted1 Function hi def link mailQuoted3 mailQuoted1 hi def link mailQuoted5 mailQuoted1 hi def link mailQuoted2 Identifier diff --git a/runtime/syntax/maple.vim b/runtime/syntax/maple.vim index 78f2b4e09e..b0bd9aaef9 100644 --- a/runtime/syntax/maple.vim +++ b/runtime/syntax/maple.vim @@ -1,9 +1,11 @@ " Vim syntax file " Language: Maple V (based on release 4) -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer:Charles E. Campbell " Last Change: Mar 26, 2019 +" 2024 Feb 19 by Vim Project (announce adoption) " Version: 17 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE " " Package Function Selection: {{{1 " Because there are a lot of packages, and because of the potential for namespace diff --git a/runtime/syntax/masm.vim b/runtime/syntax/masm.vim index 85e457106d..dc9a292cce 100644 --- a/runtime/syntax/masm.vim +++ b/runtime/syntax/masm.vim @@ -2,7 +2,7 @@ " Language: Microsoft Macro Assembler (80x86) " Orig Author: Rob Brady <robb@datatone.com> " Maintainer: Wu Yongwei <wuyongwei@gmail.com> -" Last Change: 2023-09-09 20:48:26 +0800 +" Last Change: 2023-12-20 10:20:04 +0800 " Quit when a syntax file was already loaded if exists("b:current_syntax") @@ -459,8 +459,9 @@ syn keyword masmOpcode VMOVAPD VMOVAPS VMOVD VMOVQ VMOVDDUP syn keyword masmOpcode VMOVHLPS VMOVHPD VMOVHPS VMOVLHPS VMOVLPD syn keyword masmOpcode VMOVLPS VMOVNTDQA VMOVNTDQ VMOVNTPD VMOVNTPS syn keyword masmOpcode VMOVSD VMOVSHDUP VMOVSLDUP VMOVSS VMOVUPD -syn keyword masmOpcode VMOVUPS VMOVDQA32 VMOVDQA64 VMOVDQU8 -syn keyword masmOpcode VMOVDQU16 VMOVDQU32 VMOVDQU64 VMULPD VMULPS +syn keyword masmOpcode VMOVUPS VMOVDQA VMOVDQA32 VMOVDQA64 +syn keyword masmOpcode VMOVDQU VMOVDQU8 VMOVDQU16 VMOVDQU32 VMOVDQU64 +syn keyword masmOpcode VMULPD VMULPS syn keyword masmOpcode VMULSD VMULSS VORPD VORPS VSQRTPD VSQRTPS syn keyword masmOpcode VSQRTSD VSQRTSS VSUBPD VSUBPS VSUBSD VSUBSS syn keyword masmOpcode VUCOMISD VUCOMISS VUNPCKHPD VUNPCKHPS VUNPCKLPD @@ -468,8 +469,8 @@ syn keyword masmOpcode VUNPCKLPS VXORPD VXORPS VEXTRACTPS VINSERTPS syn keyword masmOpcode VPEXTRB VPEXTRW VPEXTRD VPEXTRQ VPINSRB VPINSRW syn keyword masmOpcode VPINSRD VPINSRQ VPACKSSWB VPACKSSDW VPACKUSDW syn keyword masmOpcode VPACKUSWB VPADDB VPADDW VPADDD VPADDQ VPADDSB -syn keyword masmOpcode VPADDSW VPADDUSB VPADDUSW VPANDD VPANDQ VPANDND -syn keyword masmOpcode VPANDNQ VPAVGB VPAVGW VPCMPEQB VPCMPEQW +syn keyword masmOpcode VPADDSW VPADDUSB VPADDUSW VPAND VPANDD VPANDQ +syn keyword masmOpcode VPANDND VPANDNQ VPAVGB VPAVGW VPCMPEQB VPCMPEQW syn keyword masmOpcode VPCMPEQD VPCMPEQQ VPCMPGTB VPCMPGTW VPCMPGTD syn keyword masmOpcode VPCMPGTQ VPMAXSB VPMAXSW VPMAXSD VPMAXSQ syn keyword masmOpcode VPMAXUB VPMAXUW VPMAXUD VPMAXUQ VPMINSB VPMINSW @@ -482,7 +483,8 @@ syn keyword masmOpcode VPMULLQ VPMULLW VPORD VPORQ VPSUBB VPSUBW syn keyword masmOpcode VPSUBD VPSUBQ VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW syn keyword masmOpcode VPUNPCKHBW VPUNPCKHWD VPUNPCKHDQ VPUNPCKHQDQ syn keyword masmOpcode VPUNPCKLBW VPUNPCKLWD VPUNPCKLDQ VPUNPCKLQDQ -syn keyword masmOpcode VPXORD VPXORQ VPSADBW VPSHUFB VPSHUFHW VPSHUFLW +syn keyword masmOpcode VPXOR VPXORD VPXORQ +syn keyword masmOpcode VPSADBW VPSHUFB VPSHUFHW VPSHUFLW syn keyword masmOpcode VPSHUFD VPSLLDQ VPSLLW VPSLLD VPSLLQ VPSRAW syn keyword masmOpcode VPSRAD VPSRAQ VPSRLDQ VPSRLW VPSRLD VPSRLQ syn keyword masmOpcode VPSLLVW VPSRLVW VPSHUFPD VPSHUFPS VEXTRACTF32X4 @@ -516,7 +518,7 @@ syn keyword masmOpcode VFNMSUB132SS VFNMSUB213SS VFNMSUB231SS syn keyword masmOpcode VPSRAVW VPSRAVQ " Other opcodes in Pentium and later processors -syn keyword masmOpcode CMPXCHG8B CPUID UD2 +syn keyword masmOpcode CMPXCHG8B CPUID UD2 MOVSXD syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" diff --git a/runtime/syntax/mermaid.vim b/runtime/syntax/mermaid.vim index afdbcc3d62..5a9a217337 100644 --- a/runtime/syntax/mermaid.vim +++ b/runtime/syntax/mermaid.vim @@ -2,7 +2,7 @@ " Language: Mermaid " Maintainer: Craig MacEahern <https://github.com/craigmac/vim-mermaid> " Filenames: *.mmd -" Last Change: 2022 Nov 22 +" Last Change: 2023 Dec 26 if exists("b:current_syntax") finish @@ -85,54 +85,30 @@ syntax keyword mermaidKeyword highlight link mermaidKeyword Keyword syntax match mermaidStatement "|" -syntax match mermaidStatement "--\?[>x)]>\?+\?-\?" syntax match mermaidStatement "\~\~\~" syntax match mermaidStatement "--" -syntax match mermaidStatement "---" -syntax match mermaidStatement "-->" +syntax match mermaidStatement "\%(<|\|[<*o]\)\?\%(--\|\.\.\)\%(|>\|[>*o]\)\?" +syntax match mermaidStatement "-\{2,4}[>ox-]" +syntax match mermaidStatement "\.-[>ox]" syntax match mermaidStatement "-\." -syntax match mermaidStatement "\.->" -syntax match mermaidStatement "-\.-" -syntax match mermaidStatement "-\.\.-" -syntax match mermaidStatement "-\.\.\.-" +syntax match mermaidStatement "-\.\{1,3}-" syntax match mermaidStatement "==" -syntax match mermaidStatement "==>" -syntax match mermaidStatement "===>" -syntax match mermaidStatement "====>" +syntax match mermaidStatement "=\{2,4}[>ox=]" syntax match mermaidStatement "&" -syntax match mermaidStatement "--o" -syntax match mermaidStatement "--x" +syntax match mermaidStatement "--\?[>x)]>\?[+-]\?" syntax match mermaidStatement "x--x" -syntax match mermaidStatement "-----" -syntax match mermaidStatement "---->" -syntax match mermaidStatement "===" -syntax match mermaidStatement "====" -syntax match mermaidStatement "=====" +syntax match mermaidStatement "o--o\?" +syntax match mermaidStatement "<-->\?" syntax match mermaidStatement ":::" -syntax match mermaidStatement "<|--" -syntax match mermaidStatement "\*--" -syntax match mermaidStatement "o--" -syntax match mermaidStatement "o--o" -syntax match mermaidStatement "<--" -syntax match mermaidStatement "<-->" -syntax match mermaidStatement "\.\." -syntax match mermaidStatement "<\.\." -syntax match mermaidStatement "<|\.\." -syntax match mermaidStatement "--|>" -syntax match mermaidStatement "--\*" -syntax match mermaidStatement "--o" -syntax match mermaidStatement "\.\.>" -syntax match mermaidStatement "\.\.|>" -syntax match mermaidStatement "<|--|>" syntax match mermaidStatement "||--o{" highlight link mermaidStatement Statement -syntax match mermaidIdentifier "[\+-]\?\w\+(.*)[\$\*]\?" -highlight link mermaidIdentifier Identifier +" FIXME: This unexpectedly matches flow chart node `id1(text)` or others. +"syntax match mermaidIdentifier "[\+-]\?\w\+(.*)[\$\*]\?" +"highlight link mermaidIdentifier Identifier -syntax match mermaidType "[\+-\#\~]\?\cint\>" -syntax match mermaidType "[\+-\#\~]\?\cString\>" -syntax match mermaidType "[\+-\#\~]\?\cbool\>" +syntax match mermaidType "[\+-\#\~]\?\c\%(const\s\+\|\*\s*\)*\%(unsigned\s\+\)\?\%(int\|u\?int\%(8\|16\|32\|64\)_t\|char\|long\|long\s\+long\)\>\%(\s\+const\|\s*[\*&]\)*" +syntax match mermaidType "[\+-\#\~]\?\c\%(const\s\+\|\*\s*\)*\%(double\|float\|String\|bool\)\>\%(\s\+const\|\s*[\*&]\)*" syntax match mermaidType "[\+-\#\~]\?\cBigDecimal\>" syntax match mermaidType "[\+-\#\~]\?\cList\~.\+\~" syntax match mermaidType "<<\w\+>>" diff --git a/runtime/syntax/modula2.vim b/runtime/syntax/modula2.vim index 4a14cf1f6f..6a9f4af6aa 100644 --- a/runtime/syntax/modula2.vim +++ b/runtime/syntax/modula2.vim @@ -1,73 +1,16 @@ " Vim syntax file -" Language: Modula 2 -" Maintainer: pf@artcom0.north.de (Peter Funk) -" based on original work of Bram Moolenaar <Bram@vim.org> -" Last Change: 2001 May 09 +" Language: Modula-2 +" Maintainer: Doug Kearns <dougkearns@gmail.com> +" Previous Maintainer: pf@artcom0.north.de (Peter Funk) +" Last Change: 2024 Jan 04 -" quit when a syntax file was already loaded if exists("b:current_syntax") finish endif -" Don't ignore case (Modula-2 is case significant). This is the default in vim - -" Especially emphasize headers of procedures and modules: -syn region modula2Header matchgroup=modula2Header start="PROCEDURE " end="(" contains=modula2Ident oneline -syn region modula2Header matchgroup=modula2Header start="MODULE " end=";" contains=modula2Ident oneline -syn region modula2Header matchgroup=modula2Header start="BEGIN (\*" end="\*)" contains=modula2Ident oneline -syn region modula2Header matchgroup=modula2Header start="END " end=";" contains=modula2Ident oneline -syn region modula2Keyword start="END" end=";" contains=ALLBUT,modula2Ident oneline - -" Some very important keywords which should be emphasized more than others: -syn keyword modula2AttKeyword CONST EXIT HALT RETURN TYPE VAR -" All other keywords in alphabetical order: -syn keyword modula2Keyword AND ARRAY BY CASE DEFINITION DIV DO ELSE -syn keyword modula2Keyword ELSIF EXPORT FOR FROM IF IMPLEMENTATION IMPORT -syn keyword modula2Keyword IN LOOP MOD NOT OF OR POINTER QUALIFIED RECORD -syn keyword modula2Keyword SET THEN TO UNTIL WHILE WITH - -syn keyword modula2Type ADDRESS BITSET BOOLEAN CARDINAL CHAR INTEGER REAL WORD -syn keyword modula2StdFunc ABS CAP CHR DEC EXCL INC INCL ORD SIZE TSIZE VAL -syn keyword modula2StdConst FALSE NIL TRUE -" The following may be discussed, since NEW and DISPOSE are some kind of -" special builtin macro functions: -syn keyword modula2StdFunc NEW DISPOSE -" The following types are added later on and may be missing from older -" Modula-2 Compilers (they are at least missing from the original report -" by N.Wirth from March 1980 ;-) Highlighting should apply nevertheless: -syn keyword modula2Type BYTE LONGCARD LONGINT LONGREAL PROC SHORTCARD SHORTINT -" same note applies to min and max, which were also added later to m2: -syn keyword modula2StdFunc MAX MIN -" The underscore was originally disallowed in m2 ids, it was also added later: -syn match modula2Ident " [A-Z,a-z][A-Z,a-z,0-9,_]*" contained - -" Comments may be nested in Modula-2: -syn region modula2Comment start="(\*" end="\*)" contains=modula2Comment,modula2Todo -syn keyword modula2Todo contained TODO FIXME XXX - -" Strings -syn region modula2String start=+"+ end=+"+ -syn region modula2String start="'" end="'" -syn region modula2Set start="{" end="}" - -" Define the default highlighting. -" Only when an item doesn't have highlighting yet - -hi def link modula2Ident Identifier -hi def link modula2StdConst Boolean -hi def link modula2Type Identifier -hi def link modula2StdFunc Identifier -hi def link modula2Header Type -hi def link modula2Keyword Statement -hi def link modula2AttKeyword PreProc -hi def link modula2Comment Comment -" The following is just a matter of taste (you want to try this instead): -" hi modula2Comment term=bold ctermfg=DarkBlue guifg=Blue gui=bold -hi def link modula2Todo Todo -hi def link modula2String String -hi def link modula2Set String - +let dialect = modula2#GetDialect() +exe "runtime! syntax/modula2/opt/" .. dialect .. ".vim" let b:current_syntax = "modula2" -" vim: ts=8 +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/modula2/opt/iso.vim b/runtime/syntax/modula2/opt/iso.vim new file mode 100644 index 0000000000..5bd24f6885 --- /dev/null +++ b/runtime/syntax/modula2/opt/iso.vim @@ -0,0 +1,380 @@ +" Vim syntax file +" Language: Modula-2 (ISO) +" Maintainer: B.Kowarsch <trijezdci@moc.liamg> +" Last Change: 2016 August 22 + +" ---------------------------------------------------- +" THIS FILE IS LICENSED UNDER THE VIM LICENSE +" see https://github.com/vim/vim/blob/master/LICENSE +" ---------------------------------------------------- + +" Remarks: +" Vim Syntax files are available for the following Modula-2 dialects: +" * for the PIM dialect : m2pim.vim +" * for the ISO dialect : m2iso.vim (this file) +" * for the R10 dialect : m2r10.vim + +" ----------------------------------------------------------------------------- +" This syntax description follows ISO standard IS-10514 (aka ISO Modula-2) +" with the addition of the following language extensions: +" * non-standard types LONGCARD and LONGBITSET +" * non-nesting code disabling tags ?< and >? at the start of a line +" ----------------------------------------------------------------------------- + +" Parameters: +" +" Vim's filetype script recognises Modula-2 dialect tags within the first 200 +" lines of Modula-2 .def and .mod input files. The script sets filetype and +" dialect automatically when a valid dialect tag is found in the input file. +" The dialect tag for the ISO dialect is (*!m2iso*). It is recommended to put +" the tag immediately after the module header in the Modula-2 input file. +" +" Example: +" DEFINITION MODULE Foolib; (*!m2iso*) +" +" Variable g:modula2_default_dialect sets the default Modula-2 dialect when the +" dialect cannot be determined from the contents of the Modula-2 input file: +" if defined and set to 'm2iso', the default dialect is ISO. +" +" Variable g:modula2_iso_allow_lowline controls support for lowline in identifiers: +" if defined and set to a non-zero value, they are recognised, otherwise not +" +" Variable g:modula2_iso_disallow_octals controls the rendering of octal literals: +" if defined and set to a non-zero value, they are rendered as errors. +" +" Variable g:modula2_iso_disallow_synonyms controls the rendering of @, & and ~: +" if defined and set to a non-zero value, they are rendered as errors. +" +" Variables may be defined in Vim startup file .vimrc +" +" Examples: +" let g:modula2_default_dialect = 'm2iso' +" let g:modula2_iso_allow_lowline = 1 +" let g:modula2_iso_disallow_octals = 1 +" let g:modula2_iso_disallow_synonyms = 1 + + +if exists("b:current_syntax") + finish +endif + +" Modula-2 is case sensitive +syn case match + + +" ----------------------------------------------------------------------------- +" Reserved Words +" ----------------------------------------------------------------------------- +syn keyword modula2Resword AND ARRAY BEGIN BY CASE CONST DEFINITION DIV DO ELSE +syn keyword modula2Resword ELSIF EXCEPT EXIT EXPORT FINALLY FOR FORWARD FROM IF +syn keyword modula2Resword IMPLEMENTATION IMPORT IN LOOP MOD NOT OF OR PACKEDSET +syn keyword modula2Resword POINTER QUALIFIED RECORD REPEAT REM RETRY RETURN SET +syn keyword modula2Resword THEN TO TYPE UNTIL VAR WHILE WITH + + +" ----------------------------------------------------------------------------- +" Builtin Constant Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ConstIdent FALSE NIL TRUE INTERRUPTIBLE UNINTERRUPTIBLE + + +" ----------------------------------------------------------------------------- +" Builtin Type Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2TypeIdent BITSET BOOLEAN CHAR PROC +syn keyword modula2TypeIdent CARDINAL INTEGER LONGINT REAL LONGREAL +syn keyword modula2TypeIdent COMPLEX LONGCOMPLEX PROTECTION + + +" ----------------------------------------------------------------------------- +" Builtin Procedure and Function Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ProcIdent CAP DEC EXCL HALT INC INCL +syn keyword modula2FuncIdent ABS CHR CMPLX FLOAT HIGH IM INT LENGTH LFLOAT MAX MIN +syn keyword modula2FuncIdent ODD ORD RE SIZE TRUNC VAL + + +" ----------------------------------------------------------------------------- +" Wirthian Macro Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2MacroIdent NEW DISPOSE + + +" ----------------------------------------------------------------------------- +" Unsafe Facilities via Pseudo-Module SYSTEM +" ----------------------------------------------------------------------------- +syn keyword modula2UnsafeIdent ADDRESS BYTE LOC WORD +syn keyword modula2UnsafeIdent ADR CAST TSIZE SYSTEM +syn keyword modula2UnsafeIdent MAKEADR ADDADR SUBADR DIFADR ROTATE SHIFT + + +" ----------------------------------------------------------------------------- +" Non-Portable Language Extensions +" ----------------------------------------------------------------------------- +syn keyword modula2NonPortableIdent LONGCARD LONGBITSET + + +" ----------------------------------------------------------------------------- +" User Defined Identifiers +" ----------------------------------------------------------------------------- +syn match modula2Ident "[a-zA-Z][a-zA-Z0-9]*\(_\)\@!" +syn match modula2LowLineIdent "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" + + +" ----------------------------------------------------------------------------- +" String Literals +" ----------------------------------------------------------------------------- +syn region modula2String start=/"/ end=/"/ oneline +syn region modula2String start=/'/ end=/'/ oneline + + +" ----------------------------------------------------------------------------- +" Numeric Literals +" ----------------------------------------------------------------------------- +syn match modula2Num + \ "\(\([0-7]\+\)[BC]\@!\|[89]\)[0-9]*\(\.[0-9]\+\([eE][+-]\?[0-9]\+\)\?\)\?" +syn match modula2Num "[0-9A-F]\+H" +syn match modula2Octal "[0-7]\+[BC]" + + +" ----------------------------------------------------------------------------- +" Punctuation +" ----------------------------------------------------------------------------- +syn match modula2Punctuation + \ "\.\|[,:;]\|\*\|[/+-]\|\#\|[=<>]\|\^\|\[\|\]\|(\(\*\)\@!\|[){}]" +syn match modula2Synonym "[@&~]" + + +" ----------------------------------------------------------------------------- +" Pragmas +" ----------------------------------------------------------------------------- +syn region modula2Pragma start="<\*" end="\*>" +syn match modula2DialectTag "(\*!m2iso\(+[a-z0-9]\+\)\?\*)" + +" ----------------------------------------------------------------------------- +" Block Comments +" ----------------------------------------------------------------------------- +syn region modula2Comment start="(\*\(!m2iso\(+[a-z0-9]\+\)\?\*)\)\@!" end="\*)" + \ contains = modula2Comment, modula2CommentKey, modula2TechDebtMarker +syn match modula2CommentKey "[Aa]uthor[s]\?\|[Cc]opyright\|[Ll]icense\|[Ss]ynopsis" +syn match modula2CommentKey "\([Pp]re\|[Pp]ost\|[Ee]rror\)\-condition[s]\?:" + + +" ----------------------------------------------------------------------------- +" Technical Debt Markers +" ----------------------------------------------------------------------------- +syn keyword modula2TechDebtMarker contained DEPRECATED FIXME +syn match modula2TechDebtMarker "TODO[:]\?" contained + +" ----------------------------------------------------------------------------- +" Disabled Code Sections +" ----------------------------------------------------------------------------- +syn region modula2DisabledCode start="^?<" end="^>?" + + +" ----------------------------------------------------------------------------- +" Headers +" ----------------------------------------------------------------------------- +" !!! this section must be second last !!! + +" new module header +syn match modula2ModuleHeader + \ "MODULE\( [A-Z][a-zA-Z0-9]*\)\?" + \ contains = modula2ReswordModule, modula2ModuleIdent + +syn match modula2ModuleIdent + \ "[A-Z][a-zA-Z0-9]*" contained + +syn match modula2ModuleTail + \ "END [A-Z][a-zA-Z0-9]*\.$" + \ contains = modula2ReswordEnd, modula2ModuleIdent, modula2Punctuation + +" new procedure header +syn match modula2ProcedureHeader + \ "PROCEDURE\( [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\)\?" + \ contains = modula2ReswordProcedure, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +syn match modula2ProcedureIdent + \ "\([a-zA-Z]\)\([a-zA-Z0-9]*\)" contained + +syn match modula2ProcedureLowlineIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" contained + +syn match modula2ProcedureTail + \ "END\( \([a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\)[.;]$\)\?" + \ contains = modula2ReswordEnd, + \ modula2ProcedureIdent, modula2ProcedureLowLineIdent, + \ modula2Punctuation, modula2IllegalChar, modula2IllegalIdent + +syn keyword modula2ReswordModule contained MODULE +syn keyword modula2ReswordProcedure contained PROCEDURE +syn keyword modula2ReswordEnd contained END + + +" ----------------------------------------------------------------------------- +" Illegal Symbols +" ----------------------------------------------------------------------------- +" !!! this section must be last !!! + +" any '`' '!' '$' '%' or '\' +syn match modula2IllegalChar "[`!$%\\]" + +" any solitary sequence of '_' +syn match modula2IllegalChar "\<_\+\>" + +" any '?' at start of line if not followed by '<' +syn match modula2IllegalChar "^?\(<\)\@!" + +" any '?' not following '>' at start of line +syn match modula2IllegalChar "\(\(^>\)\|\(^\)\)\@<!?" + +" any identifiers with leading occurrences of '_' +syn match modula2IllegalIdent "_\+[a-zA-Z][a-zA-Z0-9]*\(_\+[a-zA-Z0-9]*\)*" + +" any identifiers containing consecutive occurences of '_' +syn match modula2IllegalIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\(__\+[a-zA-Z0-9]\+\(_[a-zA-Z0-9]\+\)*\)\+" + +" any identifiers with trailing occurrences of '_' +syn match modula2IllegalIdent "[a-zA-Z][a-zA-Z0-9]*\(_\+[a-zA-Z0-9]\+\)*_\+\>" + + +" ----------------------------------------------------------------------------- +" Define Rendering Styles +" ----------------------------------------------------------------------------- + +" highlight default link modula2PredefIdentStyle Keyword +" highlight default link modula2ConstIdentStyle modula2PredefIdentStyle +" highlight default link modula2TypeIdentStyle modula2PredefIdentStyle +" highlight default link modula2ProcIdentStyle modula2PredefIdentStyle +" highlight default link modula2FuncIdentStyle modula2PredefIdentStyle +" highlight default link modula2MacroIdentStyle modula2PredefIdentStyle + +highlight default link modula2ConstIdentStyle Constant +highlight default link modula2TypeIdentStyle Type +highlight default link modula2ProcIdentStyle Function +highlight default link modula2FuncIdentStyle Function +highlight default link modula2MacroIdentStyle Function +highlight default link modula2UnsafeIdentStyle Question +highlight default link modula2NonPortableIdentStyle Question +highlight default link modula2StringLiteralStyle String +highlight default link modula2CommentStyle Comment +highlight default link modula2PragmaStyle PreProc +highlight default link modula2DialectTagStyle SpecialComment +highlight default link modula2TechDebtMarkerStyle SpecialComment +highlight default link modula2ReswordStyle Keyword +highlight default link modula2HeaderIdentStyle Function +highlight default link modula2UserDefIdentStyle Normal +highlight default link modula2NumericLiteralStyle Number +highlight default link modula2PunctuationStyle Delimiter +highlight default link modula2CommentKeyStyle SpecialComment +highlight default link modula2DisabledCodeStyle NonText + +" ----------------------------------------------------------------------------- +" Assign Rendering Styles +" ----------------------------------------------------------------------------- + +" headers +highlight default link modula2ModuleIdent modula2HeaderIdentStyle +highlight default link modula2ProcedureIdent modula2HeaderIdentStyle +highlight default link modula2ModuleHeader Normal +highlight default link modula2ModuleTail Normal +highlight default link modula2ProcedureHeader Normal +highlight default link modula2ProcedureTail Normal + +" lowline identifiers are rendered as errors if g:modula2_iso_allow_lowline is unset +if exists("g:modula2_iso_allow_lowline") + if g:modula2_iso_allow_lowline != 0 + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle + else + highlight default link modula2ProcedureLowlineIdent Error + endif +else + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle +endif + +" reserved words +highlight default link modula2Resword modula2ReswordStyle +highlight default link modula2ReswordModule modula2ReswordStyle +highlight default link modula2ReswordProcedure modula2ReswordStyle +highlight default link modula2ReswordEnd modula2ReswordStyle + +" predefined identifiers +highlight default link modula2ConstIdent modula2ConstIdentStyle +highlight default link modula2TypeIdent modula2TypeIdentStyle +highlight default link modula2ProcIdent modula2ProcIdentStyle +highlight default link modula2FuncIdent modula2FuncIdentStyle +highlight default link modula2MacroIdent modula2MacroIdentStyle + +" unsafe and non-portable identifiers +highlight default link modula2UnsafeIdent modula2UnsafeIdentStyle +highlight default link modula2NonPortableIdent modula2NonPortableIdentStyle + +" user defined identifiers +highlight default link modula2Ident modula2UserDefIdentStyle + +" lowline identifiers are rendered as errors if g:modula2_iso_allow_lowline is unset +if exists("g:modula2_iso_allow_lowline") + if g:modula2_iso_allow_lowline != 0 + highlight default link modula2LowLineIdent modula2UserDefIdentStyle + else + highlight default link modula2LowLineIdent Error + endif +else + highlight default link modula2LowLineIdent modula2UserDefIdentStyle +endif + +" literals +highlight default link modula2String modula2StringLiteralStyle +highlight default link modula2Num modula2NumericLiteralStyle + +" octal literals are rendered as errors if g:modula2_iso_disallow_octals is set +if exists("g:modula2_iso_disallow_octals") + if g:modula2_iso_disallow_octals != 0 + highlight default link modula2Octal Error + else + highlight default link modula2Octal modula2NumericLiteralStyle + endif +else + highlight default link modula2Octal modula2NumericLiteralStyle +endif + +" punctuation +highlight default link modula2Punctuation modula2PunctuationStyle + +" synonyms & and ~ are rendered as errors if g:modula2_iso_disallow_synonyms is set +if exists("g:modula2_iso_disallow_synonyms") + if g:modula2_iso_disallow_synonyms != 0 + highlight default link modula2Synonym Error + else + highlight default link modula2Synonym modula2PunctuationStyle + endif +else + highlight default link modula2Synonym modula2PunctuationStyle +endif + +" pragmas +highlight default link modula2Pragma modula2PragmaStyle +highlight default link modula2DialectTag modula2DialectTagStyle + +" comments +highlight default link modula2Comment modula2CommentStyle +highlight default link modula2CommentKey modula2CommentKeyStyle + +" technical debt markers +highlight default link modula2TechDebtMarker modula2TechDebtMarkerStyle + +" disabled code +highlight default link modula2DisabledCode modula2DisabledCodeStyle + +" illegal symbols +highlight default link modula2IllegalChar Error +highlight default link modula2IllegalIdent Error + + +let b:current_syntax = "modula2" + +" vim: ts=4 + +" END OF FILE diff --git a/runtime/syntax/modula2/opt/pim.vim b/runtime/syntax/modula2/opt/pim.vim new file mode 100644 index 0000000000..1626db91cf --- /dev/null +++ b/runtime/syntax/modula2/opt/pim.vim @@ -0,0 +1,377 @@ +" Vim syntax file +" Language: Modula-2 (PIM) +" Maintainer: B.Kowarsch <trijezdci@moc.liamg> +" Last Change: 2016 August 22 + +" ---------------------------------------------------- +" THIS FILE IS LICENSED UNDER THE VIM LICENSE +" see https://github.com/vim/vim/blob/master/LICENSE +" ---------------------------------------------------- + +" Remarks: +" Vim Syntax files are available for the following Modula-2 dialects: +" * for the PIM dialect : m2pim.vim (this file) +" * for the ISO dialect : m2iso.vim +" * for the R10 dialect : m2r10.vim + +" ----------------------------------------------------------------------------- +" This syntax description follows the 3rd and 4th editions of N.Wirth's Book +" Programming in Modula-2 (aka PIM) plus the following language extensions: +" * non-leading, non-trailing, non-consecutive lowlines _ in identifiers +" * widely supported non-standard types BYTE, LONGCARD and LONGBITSET +" * non-nesting code disabling tags ?< and >? at the start of a line +" ----------------------------------------------------------------------------- + +" Parameters: +" +" Vim's filetype script recognises Modula-2 dialect tags within the first 200 +" lines of Modula-2 .def and .mod input files. The script sets filetype and +" dialect automatically when a valid dialect tag is found in the input file. +" The dialect tag for the PIM dialect is (*!m2pim*). It is recommended to put +" the tag immediately after the module header in the Modula-2 input file. +" +" Example: +" DEFINITION MODULE Foolib; (*!m2pim*) +" +" Variable g:modula2_default_dialect sets the default Modula-2 dialect when the +" dialect cannot be determined from the contents of the Modula-2 input file: +" if defined and set to 'm2pim', the default dialect is PIM. +" +" Variable g:modula2_pim_allow_lowline controls support for lowline in identifiers: +" if defined and set to a non-zero value, they are recognised, otherwise not +" +" Variable g:modula2_pim_disallow_octals controls the rendering of octal literals: +" if defined and set to a non-zero value, they are rendered as errors. +" +" Variable g:modula2_pim_disallow_synonyms controls the rendering of & and ~: +" if defined and set to a non-zero value, they are rendered as errors. +" +" Variables may be defined in Vim startup file .vimrc +" +" Examples: +" let g:modula2_default_dialect = 'm2pim' +" let g:modula2_pim_allow_lowline = 1 +" let g:modula2_pim_disallow_octals = 1 +" let g:modula2_pim_disallow_synonyms = 1 + + +if exists("b:current_syntax") + finish +endif + +" Modula-2 is case sensitive +syn case match + + +" ----------------------------------------------------------------------------- +" Reserved Words +" ----------------------------------------------------------------------------- +syn keyword modula2Resword AND ARRAY BEGIN BY CASE CONST DEFINITION DIV DO ELSE +syn keyword modula2Resword ELSIF EXIT EXPORT FOR FROM IF IMPLEMENTATION IMPORT +syn keyword modula2Resword IN LOOP MOD NOT OF OR POINTER QUALIFIED RECORD REPEAT +syn keyword modula2Resword RETURN SET THEN TO TYPE UNTIL VAR WHILE WITH + + +" ----------------------------------------------------------------------------- +" Builtin Constant Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ConstIdent FALSE NIL TRUE + + +" ----------------------------------------------------------------------------- +" Builtin Type Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2TypeIdent BITSET BOOLEAN CHAR PROC +syn keyword modula2TypeIdent CARDINAL INTEGER LONGINT REAL LONGREAL + + +" ----------------------------------------------------------------------------- +" Builtin Procedure and Function Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ProcIdent CAP DEC EXCL HALT INC INCL +syn keyword modula2FuncIdent ABS CHR FLOAT HIGH MAX MIN ODD ORD SIZE TRUNC VAL + + +" ----------------------------------------------------------------------------- +" Wirthian Macro Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2MacroIdent NEW DISPOSE + + +" ----------------------------------------------------------------------------- +" Unsafe Facilities via Pseudo-Module SYSTEM +" ----------------------------------------------------------------------------- +syn keyword modula2UnsafeIdent ADDRESS PROCESS WORD +syn keyword modula2UnsafeIdent ADR TSIZE NEWPROCESS TRANSFER SYSTEM + + +" ----------------------------------------------------------------------------- +" Non-Portable Language Extensions +" ----------------------------------------------------------------------------- +syn keyword modula2NonPortableIdent BYTE LONGCARD LONGBITSET + + +" ----------------------------------------------------------------------------- +" User Defined Identifiers +" ----------------------------------------------------------------------------- +syn match modula2Ident "[a-zA-Z][a-zA-Z0-9]*\(_\)\@!" +syn match modula2LowLineIdent "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" + + +" ----------------------------------------------------------------------------- +" String Literals +" ----------------------------------------------------------------------------- +syn region modula2String start=/"/ end=/"/ oneline +syn region modula2String start=/'/ end=/'/ oneline + + +" ----------------------------------------------------------------------------- +" Numeric Literals +" ----------------------------------------------------------------------------- +syn match modula2Num + \ "\(\([0-7]\+\)[BC]\@!\|[89]\)[0-9]*\(\.[0-9]\+\([eE][+-]\?[0-9]\+\)\?\)\?" +syn match modula2Num "[0-9A-F]\+H" +syn match modula2Octal "[0-7]\+[BC]" + + +" ----------------------------------------------------------------------------- +" Punctuation +" ----------------------------------------------------------------------------- +syn match modula2Punctuation + \ "\.\|[,:;]\|\*\|[/+-]\|\#\|[=<>]\|\^\|\[\|\]\|(\(\*\)\@!\|[){}]" +syn match modula2Synonym "[&~]" + + +" ----------------------------------------------------------------------------- +" Pragmas +" ----------------------------------------------------------------------------- +syn region modula2Pragma start="(\*\$" end="\*)" +syn match modula2DialectTag "(\*!m2pim\(+[a-z0-9]\+\)\?\*)" + +" ----------------------------------------------------------------------------- +" Block Comments +" ----------------------------------------------------------------------------- +syn region modula2Comment start="(\*\(\$\|!m2pim\(+[a-z0-9]\+\)\?\*)\)\@!" end="\*)" + \ contains = modula2Comment, modula2CommentKey, modula2TechDebtMarker +syn match modula2CommentKey "[Aa]uthor[s]\?\|[Cc]opyright\|[Ll]icense\|[Ss]ynopsis" +syn match modula2CommentKey "\([Pp]re\|[Pp]ost\|[Ee]rror\)\-condition[s]\?:" + + +" ----------------------------------------------------------------------------- +" Technical Debt Markers +" ----------------------------------------------------------------------------- +syn keyword modula2TechDebtMarker contained DEPRECATED FIXME +syn match modula2TechDebtMarker "TODO[:]\?" contained + +" ----------------------------------------------------------------------------- +" Disabled Code Sections +" ----------------------------------------------------------------------------- +syn region modula2DisabledCode start="^?<" end="^>?" + + +" ----------------------------------------------------------------------------- +" Headers +" ----------------------------------------------------------------------------- +" !!! this section must be second last !!! + +" new module header +syn match modula2ModuleHeader + \ "MODULE\( [A-Z][a-zA-Z0-9]*\)\?" + \ contains = modula2ReswordModule, modula2ModuleIdent + +syn match modula2ModuleIdent + \ "[A-Z][a-zA-Z0-9]*" contained + +syn match modula2ModuleTail + \ "END [A-Z][a-zA-Z0-9]*\.$" + \ contains = modula2ReswordEnd, modula2ModuleIdent, modula2Punctuation + +" new procedure header +syn match modula2ProcedureHeader + \ "PROCEDURE\( [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\)\?" + \ contains = modula2ReswordProcedure, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +syn match modula2ProcedureIdent + \ "\([a-zA-Z]\)\([a-zA-Z0-9]*\)" contained + +syn match modula2ProcedureLowlineIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" contained + +syn match modula2ProcedureTail + \ "END\( \([a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\)[.;]$\)\?" + \ contains = modula2ReswordEnd, + \ modula2ProcedureIdent, modula2ProcedureLowLineIdent, + \ modula2Punctuation, modula2IllegalChar, modula2IllegalIdent + +syn keyword modula2ReswordModule contained MODULE +syn keyword modula2ReswordProcedure contained PROCEDURE +syn keyword modula2ReswordEnd contained END + + +" ----------------------------------------------------------------------------- +" Illegal Symbols +" ----------------------------------------------------------------------------- +" !!! this section must be last !!! + +" any '`' '!' '@ ''$' '%' or '\' +syn match modula2IllegalChar "[`!@$%\\]" + +" any solitary sequence of '_' +syn match modula2IllegalChar "\<_\+\>" + +" any '?' at start of line if not followed by '<' +syn match modula2IllegalChar "^?\(<\)\@!" + +" any '?' not following '>' at start of line +syn match modula2IllegalChar "\(\(^>\)\|\(^\)\)\@<!?" + +" any identifiers with leading occurrences of '_' +syn match modula2IllegalIdent "_\+[a-zA-Z][a-zA-Z0-9]*\(_\+[a-zA-Z0-9]*\)*" + +" any identifiers containing consecutive occurences of '_' +syn match modula2IllegalIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\(__\+[a-zA-Z0-9]\+\(_[a-zA-Z0-9]\+\)*\)\+" + +" any identifiers with trailing occurrences of '_' +syn match modula2IllegalIdent "[a-zA-Z][a-zA-Z0-9]*\(_\+[a-zA-Z0-9]\+\)*_\+\>" + + +" ----------------------------------------------------------------------------- +" Define Rendering Styles +" ----------------------------------------------------------------------------- + +" highlight default link modula2PredefIdentStyle Keyword +" highlight default link modula2ConstIdentStyle modula2PredefIdentStyle +" highlight default link modula2TypeIdentStyle modula2PredefIdentStyle +" highlight default link modula2ProcIdentStyle modula2PredefIdentStyle +" highlight default link modula2FuncIdentStyle modula2PredefIdentStyle +" highlight default link modula2MacroIdentStyle modula2PredefIdentStyle + +highlight default link modula2ConstIdentStyle Constant +highlight default link modula2TypeIdentStyle Type +highlight default link modula2ProcIdentStyle Function +highlight default link modula2FuncIdentStyle Function +highlight default link modula2MacroIdentStyle Function +highlight default link modula2UnsafeIdentStyle Question +highlight default link modula2NonPortableIdentStyle Question +highlight default link modula2StringLiteralStyle String +highlight default link modula2CommentStyle Comment +highlight default link modula2PragmaStyle PreProc +highlight default link modula2DialectTagStyle SpecialComment +highlight default link modula2TechDebtMarkerStyle SpecialComment +highlight default link modula2ReswordStyle Keyword +highlight default link modula2HeaderIdentStyle Function +highlight default link modula2UserDefIdentStyle Normal +highlight default link modula2NumericLiteralStyle Number +highlight default link modula2PunctuationStyle Delimiter +highlight default link modula2CommentKeyStyle SpecialComment +highlight default link modula2DisabledCodeStyle NonText + +" ----------------------------------------------------------------------------- +" Assign Rendering Styles +" ----------------------------------------------------------------------------- + +" headers +highlight default link modula2ModuleIdent modula2HeaderIdentStyle +highlight default link modula2ProcedureIdent modula2HeaderIdentStyle +highlight default link modula2ModuleHeader Normal +highlight default link modula2ModuleTail Normal +highlight default link modula2ProcedureHeader Normal +highlight default link modula2ProcedureTail Normal + +" lowline identifiers are rendered as errors if g:modula2_pim_allow_lowline is unset +if exists("g:modula2_pim_allow_lowline") + if g:modula2_pim_allow_lowline != 0 + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle + else + highlight default link modula2ProcedureLowlineIdent Error + endif +else + highlight default link modula2ProcedureLowlineIdent Error +endif + +" reserved words +highlight default link modula2Resword modula2ReswordStyle +highlight default link modula2ReswordModule modula2ReswordStyle +highlight default link modula2ReswordProcedure modula2ReswordStyle +highlight default link modula2ReswordEnd modula2ReswordStyle + +" predefined identifiers +highlight default link modula2ConstIdent modula2ConstIdentStyle +highlight default link modula2TypeIdent modula2TypeIdentStyle +highlight default link modula2ProcIdent modula2ProcIdentStyle +highlight default link modula2FuncIdent modula2FuncIdentStyle +highlight default link modula2MacroIdent modula2MacroIdentStyle + +" unsafe and non-portable identifiers +highlight default link modula2UnsafeIdent modula2UnsafeIdentStyle +highlight default link modula2NonPortableIdent modula2NonPortableIdentStyle + +" user defined identifiers +highlight default link modula2Ident modula2UserDefIdentStyle + +" lowline identifiers are rendered as errors if g:modula2_pim_allow_lowline is unset +if exists("g:modula2_pim_allow_lowline") + if g:modula2_pim_allow_lowline != 0 + highlight default link modula2LowLineIdent modula2UserDefIdentStyle + else + highlight default link modula2LowLineIdent Error + endif +else + highlight default link modula2LowLineIdent Error +endif + +" literals +highlight default link modula2String modula2StringLiteralStyle +highlight default link modula2Num modula2NumericLiteralStyle + +" octal literals are rendered as errors if g:modula2_pim_disallow_octals is set +if exists("g:modula2_pim_disallow_octals") + if g:modula2_pim_disallow_octals != 0 + highlight default link modula2Octal Error + else + highlight default link modula2Octal modula2NumericLiteralStyle + endif +else + highlight default link modula2Octal modula2NumericLiteralStyle +endif + +" punctuation +highlight default link modula2Punctuation modula2PunctuationStyle + +" synonyms & and ~ are rendered as errors if g:modula2_pim_disallow_synonyms is set +if exists("g:modula2_pim_disallow_synonyms") + if g:modula2_pim_disallow_synonyms != 0 + highlight default link modula2Synonym Error + else + highlight default link modula2Synonym modula2PunctuationStyle + endif +else + highlight default link modula2Synonym modula2PunctuationStyle +endif + +" pragmas +highlight default link modula2Pragma modula2PragmaStyle +highlight default link modula2DialectTag modula2DialectTagStyle + +" comments +highlight default link modula2Comment modula2CommentStyle +highlight default link modula2CommentKey modula2CommentKeyStyle + +" technical debt markers +highlight default link modula2TechDebtMarker modula2TechDebtMarkerStyle + +" disabled code +highlight default link modula2DisabledCode modula2DisabledCodeStyle + +" illegal symbols +highlight default link modula2IllegalChar Error +highlight default link modula2IllegalIdent Error + + +let b:current_syntax = "modula2" + +" vim: ts=4 + +" END OF FILE diff --git a/runtime/syntax/modula2/opt/r10.vim b/runtime/syntax/modula2/opt/r10.vim new file mode 100644 index 0000000000..775f498dfb --- /dev/null +++ b/runtime/syntax/modula2/opt/r10.vim @@ -0,0 +1,452 @@ +" Vim syntax file +" Language: Modula-2 (R10) +" Maintainer: B.Kowarsch <trijezdci@moc.liamg> +" Last Change: 2020 June 18 (moved repository from bb to github) + +" ---------------------------------------------------- +" THIS FILE IS LICENSED UNDER THE VIM LICENSE +" see https://github.com/vim/vim/blob/master/LICENSE +" ---------------------------------------------------- + +" Remarks: +" Vim Syntax files are available for the following Modula-2 dialects: +" * for the PIM dialect : m2pim.vim +" * for the ISO dialect : m2iso.vim +" * for the R10 dialect : m2r10.vim (this file) + +" ----------------------------------------------------------------------------- +" This syntax description follows the Modula-2 Revision 2010 language report +" (Kowarsch and Sutcliffe, 2015) available at http://modula-2.info/m2r10. +" ----------------------------------------------------------------------------- + +" Parameters: +" +" Vim's filetype script recognises Modula-2 dialect tags within the first 200 +" lines of Modula-2 .def and .mod input files. The script sets filetype and +" dialect automatically when a valid dialect tag is found in the input file. +" The dialect tag for the R10 dialect is (*!m2r10*). It is recommended to put +" the tag immediately after the module header in the Modula-2 input file. +" +" Example: +" DEFINITION MODULE Foolib; (*!m2r10*) +" +" Variable g:modula2_default_dialect sets the default Modula-2 dialect when the +" dialect cannot be determined from the contents of the Modula-2 input file: +" if defined and set to 'm2r10', the default dialect is R10. +" +" Variable g:modula2_r10_allow_lowline controls support for lowline in identifiers: +" if defined and set to a non-zero value, they are recognised, otherwise not +" +" Variables may be defined in Vim startup file .vimrc +" +" Examples: +" let g:modula2_default_dialect = 'm2r10' +" let g:modula2_r10_allow_lowline = 1 + + +if exists("b:current_syntax") + finish +endif + +" Modula-2 is case sensitive +syn case match + + +" ----------------------------------------------------------------------------- +" Reserved Words +" ----------------------------------------------------------------------------- +" Note: MODULE, PROCEDURE and END are defined separately further below +syn keyword modula2Resword ALIAS AND ARGLIST ARRAY BEGIN CASE CONST COPY DEFINITION +syn keyword modula2Resword DIV DO ELSE ELSIF EXIT FOR FROM GENLIB IF IMPLEMENTATION +syn keyword modula2Resword IMPORT IN LOOP MOD NEW NOT OF OPAQUE OR POINTER READ +syn keyword modula2Resword RECORD RELEASE REPEAT RETAIN RETURN SET THEN TO TYPE +syn keyword modula2Resword UNTIL VAR WHILE WRITE YIELD + + +" ----------------------------------------------------------------------------- +" Schroedinger's Tokens +" ----------------------------------------------------------------------------- +syn keyword modula2SchroedToken CAPACITY COROUTINE LITERAL + + +" ----------------------------------------------------------------------------- +" Builtin Constant Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ConstIdent NIL FALSE TRUE + + +" ----------------------------------------------------------------------------- +" Builtin Type Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2TypeIdent BOOLEAN CHAR UNICHAR OCTET +syn keyword modula2TypeIdent CARDINAL LONGCARD INTEGER LONGINT REAL LONGREAL + + +" ----------------------------------------------------------------------------- +" Builtin Procedure and Function Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ProcIdent APPEND INSERT REMOVE SORT SORTNEW +syn keyword modula2FuncIdent CHR ORD ODD ABS SGN MIN MAX LOG2 POW2 ENTIER +syn keyword modula2FuncIdent PRED SUCC PTR COUNT LENGTH + + +" ----------------------------------------------------------------------------- +" Builtin Macro Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2MacroIdent NOP TMIN TMAX TSIZE TLIMIT + + +" ----------------------------------------------------------------------------- +" Builtin Primitives +" ----------------------------------------------------------------------------- +syn keyword modula2PrimitiveIdent SXF VAL STORE VALUE SEEK SUBSET + + +" ----------------------------------------------------------------------------- +" Unsafe Facilities via Pseudo-Module UNSAFE +" ----------------------------------------------------------------------------- +syn keyword modula2UnsafeIdent UNSAFE BYTE WORD LONGWORD OCTETSEQ +syn keyword modula2UnsafeIdent ADD SUB INC DEC SETBIT HALT +syn keyword modula2UnsafeIdent ADR CAST BIT SHL SHR BWNOT BWAND BWOR + + +" ----------------------------------------------------------------------------- +" Non-Portable Language Extensions +" ----------------------------------------------------------------------------- +syn keyword modula2NonPortableIdent ASSEMBLER ASM REG + + +" ----------------------------------------------------------------------------- +" User Defined Identifiers +" ----------------------------------------------------------------------------- +syn match modula2Ident "[a-zA-Z][a-zA-Z0-9]*\(_\)\@!" +syn match modula2LowLineIdent "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" + +syn match modula2ReswordDo "\(TO\)\@<!DO" +syn match modula2ReswordTo "TO\(\sDO\)\@!" + +" TODO: support for OpenVMS reswords and identifiers which may include $ and % + + +" ----------------------------------------------------------------------------- +" String Literals +" ----------------------------------------------------------------------------- +syn region modula2String start=/"/ end=/"/ oneline +syn region modula2String start="\(^\|\s\|[({=<>&#,]\|\[\)\@<='" end=/'/ oneline + + +" ----------------------------------------------------------------------------- +" Numeric Literals +" ----------------------------------------------------------------------------- +syn match modula2Base2Num "0b[01]\+\('[01]\+\)*" +syn match modula2Base16Num "0[ux][0-9A-F]\+\('[0-9A-F]\+\)*" + +"| *** VMSCRIPT BUG ALERT *** +"| The regular expression below causes errors when split into separate strings +"| +"| syn match modula2Base10Num +"| \ "\(\(0[bux]\@!\|[1-9]\)[0-9]*\('[0-9]\+\)*\)" . +"| \ "\(\.[0-9]\+\('[0-9]\+\)*\(e[+-]\?[0-9]\+\('[0-9]\+\)*\)\?\)\?" +"| +"| E475: Invalid argument: modula2Base10Num "\(\(0[bux]\@!\|[1-9]\)[0-9]*\('[0-9]\+\)*\)" +"| . "\(\.[0-9]\+\('[0-9]\+\)*\(e[+-]\?[0-9]\+\('[0-9]\+\)*\)\?\)\?" +"| +"| However, the same regular expression works just fine as a sole string. +"| +"| As a consequence, we have no choice but to put it all into a single line +"| which greatly diminishes readability and thereby increases the opportunity +"| for error during maintenance. Ideally, regular expressions should be split +"| into small human readable pieces with interleaved comments that explain +"| precisely what each piece is doing. Vimscript imposes poor design. :-( + +syn match modula2Base10Num + \ "\(\(0[bux]\@!\|[1-9]\)[0-9]*\('[0-9]\+\)*\)\(\.[0-9]\+\('[0-9]\+\)*\(e[+-]\?[0-9]\+\('[0-9]\+\)*\)\?\)\?" + + +" ----------------------------------------------------------------------------- +" Punctuation +" ----------------------------------------------------------------------------- +syn match modula2Punctuation + \ "\.\|[,:;]\|\*\|[/+-]\|\#\|[=<>&]\|\^\|\[\|\]\|(\(\*\)\@!\|[){}]" + + +" ----------------------------------------------------------------------------- +" Pragmas +" ----------------------------------------------------------------------------- +syn region modula2Pragma start="<\*" end="\*>" + \ contains = modula2PragmaKey, modula2TechDebtPragma +syn keyword modula2PragmaKey contained MSG IF ELSIF ELSE END INLINE NOINLINE OUT +syn keyword modula2PragmaKey contained GENERATED ENCODING ALIGN PADBITS NORETURN +syn keyword modula2PragmaKey contained PURITY SINGLEASSIGN LOWLATENCY VOLATILE +syn keyword modula2PragmaKey contained FORWARD ADDR FFI FFIDENT + +syn match modula2DialectTag "(\*!m2r10\(+[a-z0-9]\+\)\?\*)" + + +" ----------------------------------------------------------------------------- +" Line Comments +" ----------------------------------------------------------------------------- +syn region modula2Comment start=/^!/ end=/$/ oneline + + +" ----------------------------------------------------------------------------- +" Block Comments +" ----------------------------------------------------------------------------- +syn region modula2Comment + \ start="\(END\s\)\@<!(\*\(!m2r10\(+[a-z0-9]\+\)\?\*)\)\@!" end="\*)" + \ contains = modula2Comment, modula2CommentKey, modula2TechDebtMarker + +syn match modula2CommentKey + \ "[Aa]uthor[s]\?\|[Cc]opyright\|[Ll]icense\|[Ss]ynopsis" contained +syn match modula2CommentKey + \ "\([Pp]re\|[Pp]ost\|[Ee]rror\)\-condition[s]\?:" contained + + +" ----------------------------------------------------------------------------- +" Block Statement Tails +" ----------------------------------------------------------------------------- +syn match modula2ReswordEnd + \ "END" nextgroup = modula2StmtTailComment skipwhite +syn match modula2StmtTailComment + \ "(\*\s\(IF\|CASE\|FOR\|LOOP\|WHILE\)\s\*)" contained + + +" ----------------------------------------------------------------------------- +" Technical Debt Markers +" ----------------------------------------------------------------------------- +syn match modula2ToDoHeader "TO DO" + +syn match modula2ToDoTail + \ "END\(\s(\*\sTO DO\s\*)\)\@=" nextgroup = modula2ToDoTailComment skipwhite +syntax match modula2ToDoTailComment "(\*\sTO DO\s\*)" contained + +" contained within pragma +syn keyword modula2TechDebtPragma contained DEPRECATED + +" contained within comment +syn keyword modula2TechDebtMarker contained FIXME + + +" ----------------------------------------------------------------------------- +" Disabled Code Sections +" ----------------------------------------------------------------------------- +syn region modula2DisabledCode start="^?<" end="^>?" + + +" ----------------------------------------------------------------------------- +" Headers +" ----------------------------------------------------------------------------- +" !!! this section must be second last !!! + +" module header +syn match modula2ModuleHeader + \ "\(MODULE\|BLUEPRINT\)\( [A-Z][a-zA-Z0-9]*\)\?" + \ contains = modula2ReswordModule, modula2ReswordBlueprint, modula2ModuleIdent + +syn match modula2ModuleIdent + \ "[A-Z][a-zA-Z0-9]*" contained + +syn match modula2ModuleTail + \ "END [A-Z][a-zA-Z0-9]*\.$" + \ contains = modula2ReswordEnd, modula2ModuleIdent, modula2Punctuation + +" procedure, sole occurrence +syn match modula2ProcedureHeader + \ "PROCEDURE\(\s\[\|\s[a-zA-Z]\)\@!" contains = modula2ReswordProcedure + +" procedure header +syn match modula2ProcedureHeader + \ "PROCEDURE [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*" + \ contains = modula2ReswordProcedure, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +" procedure binding to operator +syn match modula2ProcedureHeader + \ "PROCEDURE \[[+-\*/\\=<>]\] [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*" + \ contains = modula2ReswordProcedure, modula2Punctuation, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +" procedure binding to builtin +syn match modula2ProcedureHeader + \ "PROCEDURE \[[A-Z]\+\(:\([#\*,]\|++\|--\)\?\)\?\] [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*" + \ contains = modula2ReswordProcedure, + \ modula2Punctuation, modula2Resword, modula2SchroedToken, + \ modula2ProcIdent, modula2FuncIdent, modula2PrimitiveIdent, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +syn match modula2ProcedureIdent + \ "\([a-zA-Z]\)\([a-zA-Z0-9]*\)" contained + +syn match modula2ProcedureLowlineIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" contained + +syn match modula2ProcedureTail + \ "END [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*;$" + \ contains = modula2ReswordEnd, + \ modula2ProcedureIdent, modula2ProcedureLowLineIdent, + \ modula2Punctuation, modula2IllegalChar, modula2IllegalIdent + +syn keyword modula2ReswordModule contained MODULE +syn keyword modula2ReswordBlueprint contained BLUEPRINT +syn keyword modula2ReswordProcedure contained PROCEDURE +syn keyword modula2ReswordEnd contained END + + +" ----------------------------------------------------------------------------- +" Illegal Symbols +" ----------------------------------------------------------------------------- +" !!! this section must be last !!! + +" any '`' '~' '@' '$' '%' +syn match modula2IllegalChar "[`~@$%]" + +" any solitary sequence of '_' +syn match modula2IllegalChar "\<_\+\>" + +" any '?' at start of line if not followed by '<' +syn match modula2IllegalChar "^?\(<\)\@!" + +" any '?' not following '>' at start of line +syn match modula2IllegalChar "\(\(^>\)\|\(^\)\)\@<!?" + +" any identifiers with leading occurrences of '_' +syn match modula2IllegalIdent "_\+[a-zA-Z][a-zA-Z0-9]*\(_\+[a-zA-Z0-9]*\)*" + +" any identifiers containing consecutive occurences of '_' +syn match modula2IllegalIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\(__\+[a-zA-Z0-9]\+\(_[a-zA-Z0-9]\+\)*\)\+" + +" any identifiers with trailing occurrences of '_' +syn match modula2IllegalIdent "[a-zA-Z][a-zA-Z0-9]*\(_\+[a-zA-Z0-9]\+\)*_\+\>" + + +" ----------------------------------------------------------------------------- +" Define Rendering Styles +" ----------------------------------------------------------------------------- + +" highlight default link modula2PredefIdentStyle Keyword +" highlight default link modula2ConstIdentStyle modula2PredefIdentStyle +" highlight default link modula2TypeIdentStyle modula2PredefIdentStyle +" highlight default link modula2ProcIdentStyle modula2PredefIdentStyle +" highlight default link modula2FuncIdentStyle modula2PredefIdentStyle +" highlight default link modula2MacroIdentStyle modula2PredefIdentStyle + +highlight default link modula2ConstIdentStyle Constant +highlight default link modula2TypeIdentStyle Type +highlight default link modula2ProcIdentStyle Function +highlight default link modula2FuncIdentStyle Function +highlight default link modula2MacroIdentStyle Function +highlight default link modula2PrimitiveIdentStyle Function +highlight default link modula2UnsafeIdentStyle Question +highlight default link modula2NonPortableIdentStyle Question +highlight default link modula2StringLiteralStyle String +highlight default link modula2CommentStyle Comment +highlight default link modula2PragmaStyle PreProc +highlight default link modula2PragmaKeyStyle PreProc +highlight default link modula2DialectTagStyle SpecialComment +highlight default link modula2TechDebtMarkerStyle SpecialComment +highlight default link modula2ReswordStyle Keyword +highlight default link modula2HeaderIdentStyle Function +highlight default link modula2UserDefIdentStyle Normal +highlight default link modula2NumericLiteralStyle Number +highlight default link modula2PunctuationStyle Delimiter +highlight default link modula2CommentKeyStyle SpecialComment +highlight default link modula2DisabledCodeStyle NonText + + +" ----------------------------------------------------------------------------- +" Assign Rendering Styles +" ----------------------------------------------------------------------------- + +" headers +highlight default link modula2ModuleIdent modula2HeaderIdentStyle +highlight default link modula2ProcedureIdent modula2HeaderIdentStyle +highlight default link modula2ModuleHeader modula2HeaderIdentStyle +highlight default link modula2ModuleTail Normal +highlight default link modula2ProcedureHeader Normal +highlight default link modula2ProcedureTail Normal + +" lowline identifiers are rendered as errors if g:modula2_r10_allow_lowline is unset +if exists("g:modula2_r10_allow_lowline") + if g:modula2_r10_allow_lowline != 0 + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle + else + highlight default link modula2ProcedureLowlineIdent Error + endif +else + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle +endif + +" reserved words +highlight default link modula2Resword modula2ReswordStyle +highlight default link modula2ReswordModule modula2ReswordStyle +highlight default link modula2ReswordProcedure modula2ReswordStyle +highlight default link modula2ReswordEnd modula2ReswordStyle +highlight default link modula2ReswordDo modula2ReswordStyle +highlight default link modula2ReswordTo modula2ReswordStyle +highlight default link modula2SchroedToken modula2ReswordStyle + +" predefined identifiers +highlight default link modula2ConstIdent modula2ConstIdentStyle +highlight default link modula2TypeIdent modula2TypeIdentStyle +highlight default link modula2ProcIdent modula2ProcIdentStyle +highlight default link modula2FuncIdent modula2FuncIdentStyle +highlight default link modula2MacroIdent modula2MacroIdentStyle +highlight default link modula2PrimitiveIdent modula2PrimitiveIdentStyle + +" unsafe and non-portable identifiers +highlight default link modula2UnsafeIdent modula2UnsafeIdentStyle +highlight default link modula2NonPortableIdent modula2NonPortableIdentStyle + +" user defined identifiers +highlight default link modula2Ident modula2UserDefIdentStyle + +" lowline identifiers are rendered as errors if g:modula2_r10_allow_lowline is unset +if exists("g:modula2_r10_allow_lowline") + if g:modula2_r10_allow_lowline != 0 + highlight default link modula2LowLineIdent modula2UserDefIdentStyle + else + highlight default link modula2LowLineIdent Error + endif +else + highlight default link modula2LowLineIdent modula2UserDefIdentStyle +endif + +" literals +highlight default link modula2String modula2StringLiteralStyle +highlight default link modula2Base2Num modula2NumericLiteralStyle +highlight default link modula2Base10Num modula2NumericLiteralStyle +highlight default link modula2Base16Num modula2NumericLiteralStyle + +" punctuation +highlight default link modula2Punctuation modula2PunctuationStyle + +" pragmas +highlight default link modula2Pragma modula2PragmaStyle +highlight default link modula2PragmaKey modula2PragmaKeyStyle +highlight default link modula2DialectTag modula2DialectTagStyle + +" comments +highlight default link modula2Comment modula2CommentStyle +highlight default link modula2CommentKey modula2CommentKeyStyle +highlight default link modula2ToDoTailComment modula2CommentStyle +highlight default link modula2StmtTailComment modula2CommentStyle + +" technical debt markers +highlight default link modula2ToDoHeader modula2TechDebtMarkerStyle +highlight default link modula2ToDoTail modula2TechDebtMarkerStyle +highlight default link modula2TechDebtPragma modula2TechDebtMarkerStyle + +" disabled code +highlight default link modula2DisabledCode modula2DisabledCodeStyle + +" illegal symbols +highlight default link modula2IllegalChar Error +highlight default link modula2IllegalIdent Error + + +let b:current_syntax = "modula2" + +" vim: ts=4 + +" END OF FILE diff --git a/runtime/syntax/netrw.vim b/runtime/syntax/netrw.vim index 1f02bbef78..f5b7fdc2c6 100644 --- a/runtime/syntax/netrw.vim +++ b/runtime/syntax/netrw.vim @@ -1,6 +1,8 @@ " Language : Netrw Listing Syntax -" Maintainer : Charles E. Campbell -" Last change: Nov 07, 2019 +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell +" Last Change: Nov 07, 2019 +" 2024 Feb 19 by Vim Project (announce adoption) " Version : 20 " --------------------------------------------------------------------- if exists("b:current_syntax") diff --git a/runtime/syntax/odin.vim b/runtime/syntax/odin.vim new file mode 100644 index 0000000000..4169ebb7d9 --- /dev/null +++ b/runtime/syntax/odin.vim @@ -0,0 +1,109 @@ +" Vim indent plugin file +" Language: Odin +" Maintainer: Maxim Kim <habamax@gmail.com> +" Website: https://github.com/habamax/vim-odin +" Last Change: 2024-01-15 +" +" This file has been manually translated from Vim9 script. + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syntax keyword odinKeyword using transmute cast distinct opaque where dynamic +syntax keyword odinKeyword struct enum union const bit_field bit_set +syntax keyword odinKeyword package proc map import export foreign +syntax keyword odinKeyword size_of offset_of type_info_of typeid_of type_of align_of +syntax keyword odinKeyword return defer +syntax keyword odinKeyword or_return or_else +syntax keyword odinKeyword inline no_inline + +syntax keyword odinConditional if when else do for switch case continue break +syntax keyword odinType string cstring bool b8 b16 b32 b64 rune any rawptr +syntax keyword odinType f16 f32 f64 f16le f16be f32le f32be f64le f64be +syntax keyword odinType u8 u16 u32 u64 u128 u16le u32le u64le u128le u16be +syntax keyword odinType u32be u64be u128be uint uintptr i8 i16 i32 i64 i128 +syntax keyword odinType i16le i32le i64le i128le i16be i32be i64be i128be +syntax keyword odinType int complex complex32 complex64 complex128 matrix typeid +syntax keyword odinType quaternion quaternion64 quaternion128 quaternion256 +syntax keyword odinBool true false +syntax keyword odinNull nil +syntax match odinUninitialized '\s\+---\(\s\|$\)' + +syntax keyword odinOperator in notin not_in +syntax match odinOperator "?" display +syntax match odinOperator "->" display + +syntax match odinTodo "TODO" contained +syntax match odinTodo "XXX" contained +syntax match odinTodo "FIXME" contained +syntax match odinTodo "HACK" contained + +syntax region odinRawString start=+`+ end=+`+ +syntax region odinChar start=+'+ skip=+\\\\\|\\'+ end=+'+ +syntax region odinString start=+"+ skip=+\\\\\|\\'+ end=+"+ contains=odinEscape +syntax match odinEscape display contained /\\\([nrt\\'"]\|x\x\{2}\)/ + +syntax match odinProcedure "\v<\w*>(\s*::\s*proc)@=" + +syntax match odinAttribute "@\ze\<\w\+\>" display +syntax region odinAttribute + \ matchgroup=odinAttribute + \ start="@\ze(" end="\ze)" + \ transparent oneline + +syntax match odinInteger "\-\?\<\d\+\>" display +syntax match odinFloat "\-\?\<[0-9][0-9_]*\%(\.[0-9][0-9_]*\)\%([eE][+-]\=[0-9_]\+\)\=" display +syntax match odinHex "\<0[xX][0-9A-Fa-f]\+\>" display +syntax match odinDoz "\<0[zZ][0-9a-bA-B]\+\>" display +syntax match odinOct "\<0[oO][0-7]\+\>" display +syntax match odinBin "\<0[bB][01]\+\>" display + +syntax match odinAddressOf "&" display +syntax match odinDeref "\^" display + +syntax match odinMacro "#\<\w\+\>" display + +syntax match odinTemplate "$\<\w\+\>" + +syntax region odinLineComment start=/\/\// end=/$/ contains=@Spell,odinTodo +syntax region odinBlockComment start=/\/\*/ end=/\*\// contains=@Spell,odinTodo,odinBlockComment +syn sync ccomment odinBlockComment + +highlight def link odinKeyword Statement +highlight def link odinConditional Conditional +highlight def link odinOperator Operator + +highlight def link odinString String +highlight def link odinRawString String +highlight def link odinChar Character +highlight def link odinEscape Special + +highlight def link odinProcedure Function + +highlight def link odinMacro PreProc + +highlight def link odinLineComment Comment +highlight def link odinBlockComment Comment + +highlight def link odinTodo Todo + +highlight def link odinAttribute Statement +highlight def link odinType Type +highlight def link odinBool Boolean +highlight def link odinNull Constant +highlight def link odinUninitialized Constant +highlight def link odinInteger Number +highlight def link odinFloat Float +highlight def link odinHex Number +highlight def link odinOct Number +highlight def link odinBin Number +highlight def link odinDoz Number + +let b:current_syntax = "odin" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/pacmanlog.vim b/runtime/syntax/pacmanlog.vim new file mode 100644 index 0000000000..98abd58685 --- /dev/null +++ b/runtime/syntax/pacmanlog.vim @@ -0,0 +1,41 @@ +" Vim syntax file +" Language: pacman.log +" Maintainer: Ronan Pigott <ronan@rjp.ie> +" Last Change: 2023 Dec 04 + +if exists("b:current_syntax") + finish +endif + +syn sync maxlines=1 +syn region pacmanlogMsg start='\S' end='$' keepend contains=pacmanlogTransaction,pacmanlogALPMMsg +syn region pacmanlogTag start='\['hs=s+1 end='\]'he=e-1 keepend nextgroup=pacmanlogMsg +syn region pacmanlogTime start='^\['hs=s+1 end='\]'he=e-1 keepend nextgroup=pacmanlogTag + +syn match pacmanlogPackageName '\v[a-z0-9@_+.-]+' contained skipwhite nextgroup=pacmanlogPackageVersion +syn match pacmanlogPackageVersion '(.*)' contained + +syn match pacmanlogTransaction 'transaction \v(started|completed)$' contained +syn match pacmanlogInstalled '\v(re)?installed' contained nextgroup=pacmanlogPackageName +syn match pacmanlogUpgraded 'upgraded' contained nextgroup=pacmanlogPackageName +syn match pacmanlogDowngraded 'downgraded' contained nextgroup=pacmanlogPackageName +syn match pacmanlogRemoved 'removed' contained nextgroup=pacmanlogPackageName +syn match pacmanlogWarning 'warning:.*$' contained + +syn region pacmanlogALPMMsg start='\v(\[ALPM\] )@<=(transaction|(re)?installed|upgraded|downgraded|removed|warning)>' end='$' contained + \ contains=pacmanlogTransaction,pacmanlogInstalled,pacmanlogUpgraded,pacmanlogDowngraded,pacmanlogRemoved,pacmanlogWarning,pacmanlogPackageName,pacmanlogPackgeVersion + +hi def link pacmanlogTime String +hi def link pacmanlogTag Type + +hi def link pacmanlogTransaction Special +hi def link pacmanlogInstalled Identifier +hi def link pacmanlogRemoved Repeat +hi def link pacmanlogUpgraded pacmanlogInstalled +hi def link pacmanlogDowngraded pacmanlogRemoved +hi def link pacmanlogWarning WarningMsg + +hi def link pacmanlogPackageName Normal +hi def link pacmanlogPackageVersion Comment + +let b:current_syntax = "pacmanlog" diff --git a/runtime/syntax/qf.vim b/runtime/syntax/qf.vim index 6f2ea6a92e..3131caccd8 100644 --- a/runtime/syntax/qf.vim +++ b/runtime/syntax/qf.vim @@ -15,6 +15,12 @@ syn match qfSeparator "|" nextgroup=qfLineNr contained syn match qfLineNr "[^|]*" contained contains=qfError syn match qfError "error" contained +" Hide file name and line number for help outline (TOC). +if has_key(w:, 'qf_toc') || get(w:, 'quickfix_title') =~# '\<TOC$' + setlocal conceallevel=3 concealcursor=nc + syn match Ignore "^[^|]*|[^|]*| " conceal +endif + " The default highlighting. hi def link qfFileName Directory hi def link qfLineNr LineNr diff --git a/runtime/syntax/quarto.vim b/runtime/syntax/quarto.vim index d5d4ee257d..f83071dd7f 100644 --- a/runtime/syntax/quarto.vim +++ b/runtime/syntax/quarto.vim @@ -1,7 +1,9 @@ " Language: Quarto (Markdown with chunks of R, Python and other languages) -" Provisory Maintainer: Jakson Aquino <jalvesaq@gmail.com> -" Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Fri Feb 24, 2023 08:26AM +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> +" Former Repository: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: 2023 Feb 24 08:26AM +" 2024 Feb 19 by Vim Project (announce adoption) " " The developers of tools for Quarto maintain Vim runtime files in their " Github repository and, if required, I will hand over the maintenance of diff --git a/runtime/syntax/query.lua b/runtime/syntax/query.lua index 8f40b1cb8a..1e129dbeff 100644 --- a/runtime/syntax/query.lua +++ b/runtime/syntax/query.lua @@ -1,5 +1,5 @@ -- Neovim syntax file --- Language: Tree-sitter query +-- Language: Treesitter query -- Last Change: 2022 Apr 13 -- it's a lisp! diff --git a/runtime/syntax/r.vim b/runtime/syntax/r.vim index 9b3754ae23..fa73194332 100644 --- a/runtime/syntax/r.vim +++ b/runtime/syntax/r.vim @@ -1,12 +1,14 @@ " Vim syntax file " Language: R (GNU S) -" Maintainer: Jakson Aquino <jalvesaq@gmail.com> -" Former Maintainers: Vaidotas Zemlys <zemlys@gmail.com> -" Tom Payne <tom@tompayne.org> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainers: Jakson Aquino <jalvesaq@gmail.com> +" Vaidotas Zemlys <zemlys@gmail.com> +" Tom Payne <tom@tompayne.org> " Contributor: Johannes Ranke <jranke@uni-bremen.de> -" Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Thu Nov 17, 2022 10:13PM -" Filenames: *.R *.r *.Rhistory *.Rt +" Former Repository: https://github.com/jalvesaq/R-Vim-runtime +" Filenames: *.R *.r *.Rhistory *.Rt +" Last Change: 2023 Dec 24 08:05AM +" 2024 Feb 19 by Vim Project (announce adoption) " " NOTE: The highlighting of R functions might be defined in " runtime files created by a filetype plugin, if installed. @@ -26,11 +28,7 @@ if exists("b:current_syntax") finish endif -if has("patch-7.4.1142") - syn iskeyword @,48-57,_,. -else - setlocal iskeyword=@,48-57,_,. -endif +syn iskeyword @,48-57,_,. " The variables g:r_hl_roxygen and g:r_syn_minlines were renamed on April 8, 2017. if exists("g:r_hl_roxygen") diff --git a/runtime/syntax/racket.vim b/runtime/syntax/racket.vim index b1ed2b454c..fcd64a7c9b 100644 --- a/runtime/syntax/racket.vim +++ b/runtime/syntax/racket.vim @@ -4,7 +4,7 @@ " Previous Maintainer: Will Langstroth <will@langstroth.com> " URL: https://github.com/benknoble/vim-racket " Description: Contains all of the keywords in #lang racket -" Last Change: 2022 Aug 12 +" Last Change: 2023 Sep 22 " Initializing: if exists("b:current_syntax") @@ -514,13 +514,13 @@ syntax region racketString start=/\%(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/ contains= syntax region racketString start=/#"/ skip=/\\[\\"]/ end=/"/ contains=racketStringEscapeError,racketStringEscape if exists("racket_no_string_fold") - syn region racketString start=/#<<\z(.*\)$/ end=/^\z1$/ + syn region racketHereString start=/#<<\z(.*\)$/ end=/^\z1$/ else - syn region racketString start=/#<<\z(.*\)$/ end=/^\z1$/ fold + syn region racketHereString start=/#<<\z(.*\)$/ end=/^\z1$/ fold endif -syntax cluster racketTop add=racketError,racketConstant,racketStruc,racketString +syntax cluster racketTop add=racketError,racketConstant,racketStruc,racketString,racketHereString " Numbers @@ -623,6 +623,7 @@ highlight default link racketFunc Function highlight default link racketString String highlight default link racketStringEscape Special +highlight default link racketHereString String highlight default link racketUStringEscape Special highlight default link racketStringEscapeError Error highlight default link racketChar Character diff --git a/runtime/syntax/rhelp.vim b/runtime/syntax/rhelp.vim index 8cac585bb0..7407538e4c 100644 --- a/runtime/syntax/rhelp.vim +++ b/runtime/syntax/rhelp.vim @@ -1,9 +1,11 @@ " Vim syntax file " Language: R Help File -" Maintainer: Jakson Aquino <jalvesaq@gmail.com> -" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de> -" Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Tue Jun 28, 2016 08:53AM +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainers: Jakson Aquino <jalvesaq@gmail.com> +" Johannes Ranke <jranke@uni-bremen.de> +" Former Repository: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: 2016 Jun 28 08:53AM +" 2024 Feb 19 by Vim Project (announce adoption) " Remarks: - Includes R syntax highlighting in the appropriate " sections if an r.vim file is in the same directory or in the " default debian location. diff --git a/runtime/syntax/rmd.vim b/runtime/syntax/rmd.vim index 93343dd729..4b4db1e783 100644 --- a/runtime/syntax/rmd.vim +++ b/runtime/syntax/rmd.vim @@ -1,7 +1,9 @@ " Language: Markdown with chunks of R, Python and other languages -" Maintainer: Jakson Aquino <jalvesaq@gmail.com> -" Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Wed May 17, 2023 06:34AM +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> +" Former Repository: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: 2023 Dec 24 07:21AM +" 2024 Feb 19 by Vim Project (announce adoption) " " For highlighting pandoc extensions to markdown like citations and TeX and " many other advanced features like folding of markdown sections, it is @@ -16,6 +18,13 @@ endif let s:cpo_save = &cpo set cpo&vim +let g:rmd_include_latex = get(g:, 'rmd_include_latex', 1) +if g:rmd_include_latex == 0 || g:rmd_include_latex == 1 + let b:rmd_has_LaTeX = v:false +elseif g:rmd_include_latex == 2 + let b:rmd_has_LaTeX = v:true +endif + " Highlight the header of the chunks as R code let g:rmd_syn_hl_chunk = get(g:, 'rmd_syn_hl_chunk', 0) @@ -136,7 +145,7 @@ syn match knitrBodyVar '| \zs\S\{-}\ze:' contained containedin=knitrBodyOptions let g:rmd_fenced_languages = get(g:, 'rmd_fenced_languages', ['r']) let s:no_syntax_vim = [] -function IncludeLanguage(lng) +function s:IncludeLanguage(lng) if a:lng =~ '=' let ftpy = substitute(a:lng, '.*=', '', '') let lnm = substitute(a:lng, '=.*', '', '') @@ -171,11 +180,23 @@ function IncludeLanguage(lng) endfunction for s:type in g:rmd_fenced_languages - call IncludeLanguage(s:type) + call s:IncludeLanguage(s:type) endfor unlet! s:type -function CheckRmdFencedLanguages() +let s:LaTeX_included = v:false +function s:IncludeLaTeX() + let s:LaTeX_included = v:true + unlet! b:current_syntax + syn include @RmdLaTeX syntax/tex.vim + " From vim-pandoc-syntax + syn region rmdLaTeXInlineMath start=/\v\\@<!\$\S@=/ end=/\v\\@<!\$\d@!/ keepend contains=@RmdLaTeX + syn match rmdLaTeXCmd /\\[[:alpha:]]\+\(\({.\{-}}\)\=\(\[.\{-}\]\)\=\)*/ contains=@RmdLaTeX + syn region rmdLaTeX start='\$\$' end='\$\$' keepend contains=@RmdLaTeX + syn region rmdLaTeX start=/\\begin{\z(.\{-}\)}/ end=/\\end{\z1}/ keepend contains=@RmdLaTeX +endfunction + +function s:CheckRmdFencedLanguages() let alines = getline(1, '$') call filter(alines, "v:val =~ '^```{'") call map(alines, "substitute(v:val, '^```{', '', '')") @@ -193,16 +214,31 @@ function CheckRmdFencedLanguages() endfor if has_lng == 0 let g:rmd_fenced_languages += [tpy] - call IncludeLanguage(tpy) + call s:IncludeLanguage(tpy) endif endfor + + if hlexists('pandocLaTeXCommand') + return + endif + if g:rmd_include_latex + if !b:rmd_has_LaTeX && (search('\$\$', 'wn') > 0 || + \ search('\\begin{', 'wn') > 0) || + \ search('\\[[:alpha:]]\+', 'wn') || + \ search('\$[^\$]\+\$', 'wn') + let b:rmd_has_LaTeX = v:true + endif + if b:rmd_has_LaTeX && !s:LaTeX_included + call s:IncludeLaTeX() + endif + endif endfunction if g:rmd_dynamic_fenced_languages - call CheckRmdFencedLanguages() + call s:CheckRmdFencedLanguages() augroup RmdSyntax autocmd! - autocmd BufWritePost <buffer> call CheckRmdFencedLanguages() + autocmd BufWritePost <buffer> call s:CheckRmdFencedLanguages() augroup END endif @@ -225,6 +261,8 @@ unlet s:save_pandoc_lngs let &cpo = s:cpo_save unlet s:cpo_save +syntax iskeyword clear + let b:current_syntax = "rmd" " vim: ts=8 sw=2 diff --git a/runtime/syntax/rpcgen.vim b/runtime/syntax/rpcgen.vim index 60c9b8cdda..e5a0b0b56f 100644 --- a/runtime/syntax/rpcgen.vim +++ b/runtime/syntax/rpcgen.vim @@ -1,9 +1,11 @@ " Vim syntax file " Language: rpcgen -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Aug 31, 2016 +" 2024 Feb 19 by Vim Project (announce adoption) " Version: 13 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_RPCGEN +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_RPCGEN if exists("b:current_syntax") finish diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim index e2b1947197..97e74d205f 100644 --- a/runtime/syntax/sh.vim +++ b/runtime/syntax/sh.vim @@ -1,10 +1,11 @@ " Vim syntax file " Language: shell (sh) Korn shell (ksh) bash (sh) -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> -" Previous Maintainer: Lennart Schultz <Lennart.Schultz@ecmwf.int> -" Last Change: Feb 28, 2023 +" Maintainer: This runtime file is looking for a new maintainer. +" Previous Maintainers: Charles E. Campbell +" Lennart Schultz <Lennart.Schultz@ecmwf.int> +" Last Change: 2024 Mar 04 by Vim Project " Version: 208 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH " For options and settings, please use: :help ft-sh-syntax " This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) and heredoc fixes from Felipe Contreras @@ -138,17 +139,17 @@ endif syn cluster shArithParenList contains=shArithmetic,shArithParen,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo syn cluster shArithList contains=@shArithParenList,shParenError syn cluster shCaseEsacList contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange -syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDblBrace,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq +syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shComment,shDblBrace,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq if exists("b:is_kornshell") || exists("b:is_bash") syn cluster shCaseList add=shForPP,shDblParen endif syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial " COMBAK: removing shEscape from shDblQuoteList fails ksh04:43 -- Jun 09, 2022: I don't see the problem with ksh04, so am reinstating shEscape -syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ +syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS syn cluster shDerefVarList contains=shDerefOffset,shDerefOp,shDerefVarArray,shDerefOpError -syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote +syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq @@ -159,24 +160,29 @@ endif syn cluster shHereBeginList contains=@shCommandSubList syn cluster shHereList contains=shBeginHere,shHerePayload syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload -syn cluster shIdList contains=shArithmetic,shCommandSub,shCommandSubBQ,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr +syn cluster shIdList contains=shArithmetic,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shIf,shOption,shSet,shTest,shTestOpr,shTouch if exists("b:is_kornshell") || exists("b:is_bash") syn cluster shLoopList add=shForPP,shDblParen endif -syn cluster shPPSLeftList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable +syn cluster shPPSLeftList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shSubshare,shValsub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable syn cluster shPPSRightList contains=shDeref,shDerefSimple,shEscape,shPosnParm -syn cluster shSubShList contains=@shCommandSubList,shCommandSubBQ,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator -syn cluster shTestList contains=shArithmetic,shCharClass,shCommandSub,shCommandSubBQ,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr +syn cluster shSubShList contains=@shCommandSubList,shCommandSubBQ,shSubshare,shValsub,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator +syn cluster shTestList contains=shArithmetic,shCharClass,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr syn cluster shNoZSList contains=shSpecialNoZS -syn cluster shForList contains=shTestOpr,shNumber,shDerefSimple,shDeref,shCommandSub,shCommandSubBQ,shArithmetic +syn cluster shForList contains=shTestOpr,shNumber,shDerefSimple,shDeref,shCommandSub,shCommandSubBQ,shSubshare,shValsub,shArithmetic " Echo: {{{1 " ==== " This one is needed INSIDE a CommandSub, so that `echo bla` be correct -syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment -syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment +if exists("b:is_kornshell") + syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`}]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 end="\ze[ \t\n;]}" contains=@shEchoList skipwhite nextgroup=shQuickComment + syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`}]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 end="\ze[ \t\n;]}" contains=@shEchoList skipwhite nextgroup=shQuickComment +else + syn region shEcho matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment + syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment +endif if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix") syn region shEchoDeref contained matchgroup=shStatement start="\<echo\>" skip="\\$" matchgroup=shEchoDelim end="$" end="[<>;&|()`}]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment syn region shEchoDeref contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shEchoDelim end="$" end="[<>;&|()`}]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment @@ -336,6 +342,10 @@ syn match shEscape contained '\%(^\)\@!\%(\\\\\)*\\.' nextgroup=shComment " an Error under /bin/sh. By consensus of vimdev'ers! if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix") syn region shCommandSub matchgroup=shCmdSubRegion start="\$(\ze[^(]" skip='\\\\\|\\.' end=")" contains=@shCommandSubList + if exists("b:is_kornshell") + syn region shSubshare matchgroup=shCmdSubRegion start="\${\ze[ \t\n<]" skip='\\\\\|\\.' end="\zs[ \t\n;]}" contains=@shCommandSubList + syn region shValsub matchgroup=shCmdSubRegion start="\${|" skip='\\\\\|\\.' end="}" contains=@shCommandSubList + endif syn region shArithmetic matchgroup=shArithRegion start="\$((" skip='\\\\\|\\.' end="))" contains=@shArithList syn region shArithmetic matchgroup=shArithRegion start="\$\[" skip='\\\\\|\\.' end="\]" contains=@shArithList syn match shSkipInitWS contained "^\s\+" @@ -343,7 +353,7 @@ if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix") elseif !exists("g:sh_no_error") syn region shCommandSub matchgroup=Error start="\$(" end=")" contains=@shCommandSubList endif -syn region shCmdParenRegion matchgroup=shCmdSubRegion start="(\ze[^(]" skip='\\\\\|\\.' end=")" contains=@shCommandSubList +syn region shCmdParenRegion matchgroup=shCmdSubRegion start="((\@!" skip='\\\\\|\\.' end=")" contains=@shCommandSubList if exists("b:is_bash") syn cluster shCommandSubList add=bashSpecialVariables,bashStatement @@ -491,7 +501,11 @@ if !exists("g:sh_no_error") syn match shDerefWordError "[^}$[~]" contained endif syn match shDerefSimple "\$\%(\h\w*\|\d\)" nextgroup=@shNoZSList -syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray nextgroup=shSpecialStart +if exists("b:is_kornshell") + syn region shDeref matchgroup=PreProc start="\${\ze[^ \t\n<|]" end="}" contains=@shDerefList,shDerefVarArray nextgroup=shSpecialStart +else + syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray nextgroup=shSpecialStart +endif syn match shDerefSimple "\$[-#*@!?]" nextgroup=@shNoZSList syn match shDerefSimple "\$\$" nextgroup=@shNoZSList syn match shDerefSimple "\${\d}" nextgroup=@shNoZSList nextgroup=shSpecialStart @@ -620,7 +634,7 @@ elseif exists("b:is_bash") syn keyword shStatement bg builtin disown export false fg getopts jobs let printf sleep true unalias syn keyword shStatement typeset nextgroup=shSetOption syn keyword shStatement fc hash history source suspend times type - syn keyword shStatement bind builtin caller compopt declare dirs disown enable export help logout mapfile popd pushd readarray shopt source typeset + syn keyword shStatement bind builtin caller compopt declare dirs disown enable export help logout local mapfile popd pushd readarray shopt source typeset else syn keyword shStatement login newgrp endif @@ -754,6 +768,8 @@ if !exists("skip_sh_syntax_inits") hi def link shSnglCase Statement hi def link shCommandSub Special hi def link shCommandSubBQ shCommandSub + hi def link shSubshare shCommandSub + hi def link shValsub shCommandSub hi def link shComment Comment hi def link shConditional Conditional hi def link shCtrlSeq Special diff --git a/runtime/syntax/shared/debversions.vim b/runtime/syntax/shared/debversions.vim index 6c944cd4e1..4aec246e27 100644 --- a/runtime/syntax/shared/debversions.vim +++ b/runtime/syntax/shared/debversions.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Debian version information " Maintainer: Debian Vim Maintainers -" Last Change: 2023 Nov 01 +" Last Change: 2024 Jan 25 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/shared/debversions.vim let s:cpo = &cpo @@ -11,7 +11,7 @@ let g:debSharedSupportedVersions = [ \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental', 'sid', 'rc-buggy', \ 'bullseye', 'bookworm', 'trixie', 'forky', \ - \ 'trusty', 'xenial', 'bionic', 'focal', 'jammy', 'lunar', 'mantic', 'noble', + \ 'trusty', 'xenial', 'bionic', 'focal', 'jammy', 'mantic', 'noble', \ 'devel' \ ] let g:debSharedUnsupportedVersions = [ @@ -23,7 +23,7 @@ let g:debSharedUnsupportedVersions = [ \ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid', \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy', \ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic', - \ 'disco', 'eoan', 'hirsute', 'impish', 'kinetic', 'groovy' + \ 'disco', 'eoan', 'hirsute', 'impish', 'kinetic', 'lunar', 'groovy' \ ] let &cpo=s:cpo diff --git a/runtime/syntax/sm.vim b/runtime/syntax/sm.vim index a16575c519..13a5bf117e 100644 --- a/runtime/syntax/sm.vim +++ b/runtime/syntax/sm.vim @@ -1,9 +1,11 @@ " Vim syntax file " Language: sendmail -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Oct 25, 2016 +" 2024 Feb 19 by Vim Project (announce adoption) " Version: 9 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM if exists("b:current_syntax") finish endif diff --git a/runtime/syntax/spec.vim b/runtime/syntax/spec.vim index aed04bc900..12ce8d5ac1 100644 --- a/runtime/syntax/spec.vim +++ b/runtime/syntax/spec.vim @@ -102,7 +102,7 @@ syn case ignore "%% PreAmble Section %% "Copyright and Serial were deprecated by License and Epoch syn region specPreAmbleDeprecated oneline matchgroup=specError start='^\(Copyright\|Serial\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier -syn region specPreAmble oneline matchgroup=specCommand start='^\(Prereq\|Summary\|Name\|Version\|Packager\|Requires\|Recommends\|Suggests\|Supplements\|Enhances\|Icon\|URL\|Source\d*\|Patch\d*\|Prefix\|Packager\|Group\|License\|Release\|BuildRoot\|Distribution\|Vendor\|Provides\|ExclusiveArch\|ExcludeArch\|ExclusiveOS\|Obsoletes\|BuildArch\|BuildArchitectures\|BuildRequires\|BuildConflicts\|BuildPreReq\|Conflicts\|AutoRequires\|AutoReq\|AutoReqProv\|AutoProv\|Epoch\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier +syn region specPreAmble oneline matchgroup=specCommand start='^\(Prereq\|Summary\|Name\|Version\|Packager\|Requires\|Recommends\|Suggests\|Supplements\|Enhances\|Icon\|URL\|SourceLicense\|Source\d*\|Patch\d*\|Prefix\|Packager\|Group\|License\|Release\|BuildRoot\|Distribution\|Vendor\|Provides\|ExclusiveArch\|ExcludeArch\|ExclusiveOS\|Obsoletes\|BuildArch\|BuildArchitectures\|BuildRequires\|BuildConflicts\|BuildPreReq\|Conflicts\|AutoRequires\|AutoReq\|AutoReqProv\|AutoProv\|Epoch\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier "%% Description Section %% syn region specDescriptionArea matchgroup=specSection start='^%description' end='^%'me=e-1 contains=specDescriptionOpts,specEmail,specURL,specNumber,specMacroIdentifier,specComment diff --git a/runtime/syntax/squirrel.vim b/runtime/syntax/squirrel.vim index 81d59cc986..85bdd87d9e 100644 --- a/runtime/syntax/squirrel.vim +++ b/runtime/syntax/squirrel.vim @@ -2,7 +2,7 @@ " Language: squirrel " Current Maintainer: Matt Dunford (zenmatic@gmail.com) " URL: https://github.com/zenmatic/vim-syntax-squirrel -" Last Change: 2021 Nov 28 +" Last Change: 2023 Dec 08 " http://squirrel-lang.org/ @@ -17,6 +17,7 @@ let b:filetype_in_cpp_family = 1 " Read the C syntax to start with runtime! syntax/c.vim unlet b:current_syntax +unlet b:filetype_in_cpp_family " squirrel extensions syn keyword squirrelStatement delete this in yield resume base clone diff --git a/runtime/syntax/swayconfig.vim b/runtime/syntax/swayconfig.vim index 7b1c889d6d..69fe26d370 100644 --- a/runtime/syntax/swayconfig.vim +++ b/runtime/syntax/swayconfig.vim @@ -2,8 +2,8 @@ " Language: sway config file " Original Author: Josef Litos (JosefLitos/i3config.vim) " Maintainer: James Eapen <james.eapen@vai.org> -" Version: 1.0.0 -" Last Change: 2023-09-14 +" Version: 1.0.2 +" Last Change: 2023-12-28 " References: " http://i3wm.org/docs/userguide.html#configuring @@ -43,6 +43,12 @@ syn region swayConfigExecBlock start=/exec\(_always\)\? {/ end=/^}$/ contains=i3 syn keyword swayConfigFloatingModifierOpts normal inverse contained syn match i3ConfigKeyword /^floating_modifier [$a-zA-Z0-9+]\+ \(normal\|inverse\)$/ contains=i3ConfigVariable,i3ConfigBindModkey,swayConfigFloatingModifierOpts +syn keyword swayConfigSmartGapsOpts toggle contained +syn match i3ConfigKeyword /^smart_gaps toggle$/ contains=i3ConfigSmartGapOpts,i3ConfigBoolean,swayConfigSmartGapsOpts + +syn keyword swayConfigFocusFollowsMouseOpts always contained +syn match i3ConfigKeyword /^focus_follows_mouse always$/ contains=i3ConfigBoolean,swayConfigFocusFollowsMouseOpts + syn match i3ConfigKeyword /^hide_edge_borders --i3 \w*$/ contains=i3ConfigEdgeKeyword,i3ConfigShParam syn keyword i3ConfigBarOpts swaybar_command gaps height pango_markup status_edge_padding status_padding wrap_scroll tray_bindcode tray_bindsym icon_theme contained @@ -118,7 +124,9 @@ syn region swayConfigOutput start=/^output/ skip=/\\$/ end=/$/ contains=swayCon syn region swayConfigOutput start=/^output .* {$/ end=/}$/ contains=swayConfigOutputKeyword,swayConfigOutputMode,swayConfigOutputOpts,swayConfigOutputOptVals,i3ConfigVariable,i3ConfigNumber,i3ConfigString,i3ConfigColor,i3ConfigBoolean,swayConfigDeviceOps,i3ConfigParen keepend extend " Define the highlighting. +hi def link swayConfigSmartGapsOpts i3ConfigOption hi def link swayConfigFloatingModifierOpts i3ConfigOption +hi def link swayConfigFocusFollowsMouseOpts i3ConfigOption hi def link swayConfigBindKeyword i3ConfigBindKeyword hi def link swayConfigXOpt i3ConfigOption hi def link swayConfigInhibitKeyword i3ConfigCommand diff --git a/runtime/syntax/tags.vim b/runtime/syntax/tags.vim index 4c06dc1df8..e87e3fcf61 100644 --- a/runtime/syntax/tags.vim +++ b/runtime/syntax/tags.vim @@ -1,8 +1,10 @@ " Language: tags -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Oct 26, 2016 +" 2024 Feb 19 by Vim Project (announce adoption) " Version: 8 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TAGS +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TAGS " quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/tex.vim b/runtime/syntax/tex.vim index 5544fb63fc..d782bd4845 100644 --- a/runtime/syntax/tex.vim +++ b/runtime/syntax/tex.vim @@ -1,9 +1,11 @@ " Vim syntax file " Language: TeX -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Apr 22, 2022 +" 2024 Feb 19 by Vim Project (announce adoption) " Version: 121 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX " " Notes: {{{1 " diff --git a/runtime/syntax/tmux.vim b/runtime/syntax/tmux.vim index 042b96e872..9766ed55d7 100644 --- a/runtime/syntax/tmux.vim +++ b/runtime/syntax/tmux.vim @@ -1,5 +1,5 @@ " Language: tmux(1) configuration file -" Version: 3.3-rc (git-964deae4) +" Version: 3.4 (git-608d1134) " URL: https://github.com/ericpruitt/tmux.vim/ " Maintainer: Eric Pruitt <eric.pruitt@gmail.com> " License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause) @@ -17,8 +17,9 @@ let b:current_syntax = "tmux" syntax iskeyword @,48-57,_,192-255,- syntax case match -syn keyword tmuxAction none any current other -syn keyword tmuxBoolean off on yes no +" The values "yes" and "no" are synonyms for "on" and "off", so they do not +" appear in the option table file. +syn keyword tmuxEnums yes no syn keyword tmuxTodo FIXME NOTE TODO XXX contained @@ -27,12 +28,20 @@ syn match tmuxKey /\(C-\|M-\|\^\)\+\S\+/ display syn match tmuxNumber /\<\d\+\>/ display syn match tmuxFlags /\s-\a\+/ display syn match tmuxVariableExpansion /\$\({[A-Za-z_]\w*}\|[A-Za-z_]\w*\)/ display -syn match tmuxControl /^\s*%\(if\|elif\|else\|endif\)\>/ +syn match tmuxControl /\(^\|\s\)%\(if\|elif\|else\|endif\)\($\|\s\)/ display syn match tmuxEscape /\\\(u\x\{4\}\|U\x\{8\}\|\o\{3\}\|[\\ernt$]\)/ display +" Missing closing bracket. +syn match tmuxInvalidVariableExpansion /\${[^}]*$/ display +" Starts with invalid character. +syn match tmuxInvalidVariableExpansion /\${[^A-Za-z_][^}]*}/ display +syn match tmuxInvalidVariableExpansion /\$[^A-Za-z_{ \t]/ display +" Contains invalid character. +syn match tmuxInvalidVariableExpansion /\${[^}]*[^A-Za-z0-9_][^}]*}/ display + syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo,@Spell -syn region tmuxString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=tmuxFormatString,tmuxEscape,tmuxVariableExpansion,@Spell +syn region tmuxString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=tmuxFormatString,tmuxEscape,tmuxVariableExpansion,tmuxInvalidVariableExpansion,@Spell syn region tmuxUninterpolatedString start=+'+ skip=+\\$+ excludenl end=+'+ end='$' contains=tmuxFormatString,@Spell " TODO: Figure out how escaping works inside of #(...) and #{...} blocks. @@ -43,7 +52,7 @@ syn region tmuxFormatString start=/#(/ skip=/#(.\{-})/ end=/)/ contained keepend " At the time of this writing, the latest tmux release will parse a line " reading "abc=xyz set-option ..." as an assignment followed by a command " hence the presence of "\s" in the "end" argument. -syn region tmuxAssignment matchgroup=tmuxVariable start=/^\s*[A-Za-z_]\w*=\@=/ skip=/\\$\|\\\s/ end=/\s\|$/ contains=tmuxString,tmuxUninterpolatedString,tmuxVariableExpansion,tmuxControl,tmuxEscape +syn region tmuxAssignment matchgroup=tmuxVariable start=/^\s*[A-Za-z_]\w*=\@=/ skip=/\\$\|\\\s/ end=/\s\|$/ contains=tmuxString,tmuxUninterpolatedString,tmuxVariableExpansion,tmuxControl,tmuxEscape,tmuxInvalidVariableExpansion hi def link tmuxFormatString Identifier hi def link tmuxAction Boolean @@ -51,8 +60,11 @@ hi def link tmuxBoolean Boolean hi def link tmuxCommands Keyword hi def link tmuxControl PreCondit hi def link tmuxComment Comment +hi def link tmuxEnums Boolean hi def link tmuxEscape Special hi def link tmuxEscapeUnquoted Special +hi def link tmuxInvalidVariableExpansion +\ Error hi def link tmuxKey Special hi def link tmuxNumber Number hi def link tmuxFlags Identifier @@ -77,78 +89,84 @@ endif syn keyword tmuxOptions \ activity-action after-bind-key after-capture-pane after-copy-mode -\ after-display-message after-display-panes after-kill-pane -\ after-list-buffers after-list-clients after-list-keys after-list-panes -\ after-list-sessions after-list-windows after-load-buffer after-lock-server -\ after-new-session after-new-window after-paste-buffer after-pipe-pane -\ after-queue after-refresh-client after-rename-session after-rename-window -\ after-resize-pane after-resize-window after-save-buffer -\ after-select-layout after-select-pane after-select-window after-send-keys -\ after-set-buffer after-set-environment after-set-hook after-set-option -\ after-show-environment after-show-messages after-show-options -\ after-split-window after-unbind-key aggressive-resize alert-activity -\ alert-bell alert-silence allow-passthrough allow-rename alternate-screen -\ assume-paste-time automatic-rename automatic-rename-format backspace -\ base-index bell-action buffer-limit client-active client-attached -\ client-detached client-focus-in client-focus-out client-resized -\ client-session-changed clock-mode-colour clock-mode-style command-alias -\ copy-command copy-mode-current-match-style copy-mode-mark-style -\ copy-mode-match-style cursor-colour cursor-style default-command -\ default-shell default-size default-terminal destroy-unattached -\ detach-on-destroy display-panes-active-colour display-panes-colour -\ display-panes-time display-time editor escape-time exit-empty -\ exit-unattached extended-keys fill-character focus-events history-file -\ history-limit key-table lock-after-time lock-command main-pane-height -\ main-pane-width message-command-style message-limit message-style -\ mode-keys mode-style monitor-activity monitor-bell monitor-silence mouse -\ other-pane-height other-pane-width pane-active-border-style -\ pane-base-index pane-border-format pane-border-indicators -\ pane-border-lines pane-border-status pane-border-style pane-colours -\ pane-died pane-exited pane-focus-in pane-focus-out pane-mode-changed -\ pane-set-clipboard pane-title-changed popup-border-lines +\ after-display-message after-display-panes after-kill-pane after-list-buffers +\ after-list-clients after-list-keys after-list-panes after-list-sessions +\ after-list-windows after-load-buffer after-lock-server after-new-session +\ after-new-window after-paste-buffer after-pipe-pane after-queue +\ after-refresh-client after-rename-session after-rename-window +\ after-resize-pane after-resize-window after-save-buffer after-select-layout +\ after-select-pane after-select-window after-send-keys after-set-buffer +\ after-set-environment after-set-hook after-set-option after-show-environment +\ after-show-messages after-show-options after-split-window after-unbind-key +\ aggressive-resize alert-activity alert-bell alert-silence allow-passthrough +\ allow-rename alternate-screen assume-paste-time automatic-rename +\ automatic-rename-format backspace base-index bell-action buffer-limit +\ client-active client-attached client-detached client-focus-in +\ client-focus-out client-resized client-session-changed clock-mode-color +\ clock-mode-colour clock-mode-style command-alias copy-command +\ copy-mode-current-match-style copy-mode-mark-style copy-mode-match-style +\ cursor-color cursor-colour cursor-style default-command default-shell +\ default-size default-terminal destroy-unattached detach-on-destroy +\ display-panes-active-color display-panes-active-colour display-panes-color +\ display-panes-colour display-panes-time display-time editor escape-time +\ exit-empty exit-unattached extended-keys fill-character focus-events +\ history-file history-limit key-table lock-after-time lock-command +\ main-pane-height main-pane-width menu-border-lines menu-border-style +\ menu-selected-style menu-style message-command-style message-limit +\ message-line message-style mode-keys mode-style monitor-activity monitor-bell +\ monitor-silence mouse other-pane-height other-pane-width +\ pane-active-border-style pane-base-index pane-border-format +\ pane-border-indicators pane-border-lines pane-border-status pane-border-style +\ pane-colors pane-colours pane-died pane-exited pane-focus-in pane-focus-out +\ pane-mode-changed pane-set-clipboard pane-title-changed popup-border-lines \ popup-border-style popup-style prefix prefix2 prompt-history-limit \ remain-on-exit remain-on-exit-format renumber-windows repeat-time \ scroll-on-clear session-closed session-created session-renamed \ session-window-changed set-clipboard set-titles set-titles-string \ silence-action status status-bg status-fg status-format status-interval -\ status-justify status-keys status-left status-left-length -\ status-left-style status-position status-right status-right-length -\ status-right-style status-style synchronize-panes terminal-features -\ terminal-overrides update-environment user-keys visual-activity -\ visual-bell visual-silence window-active-style window-layout-changed -\ window-linked window-pane-changed window-renamed window-resized -\ window-size window-status-activity-style window-status-bell-style -\ window-status-current-format window-status-current-style -\ window-status-format window-status-last-style window-status-separator -\ window-status-style window-style window-unlinked word-separators -\ wrap-search xterm-keys +\ status-justify status-keys status-left status-left-length status-left-style +\ status-position status-right status-right-length status-right-style +\ status-style synchronize-panes terminal-features terminal-overrides +\ update-environment user-keys visual-activity visual-bell visual-silence +\ window-active-style window-layout-changed window-linked window-pane-changed +\ window-renamed window-resized window-size window-status-activity-style +\ window-status-bell-style window-status-current-format +\ window-status-current-style window-status-format window-status-last-style +\ window-status-separator window-status-style window-style window-unlinked +\ word-separators wrap-search xterm-keys syn keyword tmuxCommands -\ attach attach-session bind bind-key break-pane breakp capture-pane -\ capturep choose-buffer choose-client choose-session choose-tree -\ choose-window clear-history clear-prompt-history clearhist clearphist -\ clock-mode command-prompt confirm confirm-before copy-mode customize-mode -\ delete-buffer deleteb detach detach-client display display-menu -\ display-message display-panes display-popup displayp find-window findw has -\ has-session if if-shell info join-pane joinp kill-pane kill-server -\ kill-session kill-window killp killw last last-pane last-window lastp -\ link-window linkw list-buffers list-clients list-commands list-keys -\ list-panes list-sessions list-windows load-buffer loadb lock lock-client -\ lock-server lock-session lockc locks ls lsb lsc lscm lsk lsp lsw menu -\ move-pane move-window movep movew new new-session new-window neww next -\ next-layout next-window nextl paste-buffer pasteb pipe-pane pipep popup -\ prev previous-layout previous-window prevl refresh refresh-client rename -\ rename-session rename-window renamew resize-pane resize-window resizep -\ resizew respawn-pane respawn-window respawnp respawnw rotate-window -\ rotatew run run-shell save-buffer saveb select-layout select-pane -\ select-window selectl selectp selectw send send-keys send-prefix -\ server-info set set-buffer set-environment set-hook set-option -\ set-window-option setb setenv setw show show-buffer show-environment -\ show-hooks show-messages show-options show-prompt-history -\ show-window-options showb showenv showmsgs showphist showw source -\ source-file split-pane split-window splitp splitw start start-server -\ suspend-client suspendc swap-pane swap-window swapp swapw switch-client -\ switchc unbind unbind-key unlink-window unlinkw wait wait-for +\ attach attach-session bind bind-key break-pane breakp capture-pane capturep +\ choose-buffer choose-client choose-session choose-tree choose-window +\ clear-history clear-prompt-history clearhist clearphist clock-mode +\ command-prompt confirm confirm-before copy-mode customize-mode delete-buffer +\ deleteb detach detach-client display display-menu display-message +\ display-panes display-popup displayp find-window findw has has-session if +\ if-shell info join-pane joinp kill-pane kill-server kill-session kill-window +\ killp killw last last-pane last-window lastp link-window linkw list-buffers +\ list-clients list-commands list-keys list-panes list-sessions list-windows +\ load-buffer loadb lock lock-client lock-server lock-session lockc locks ls +\ lsb lsc lscm lsk lsp lsw menu move-pane move-window movep movew new +\ new-session new-window neww next next-layout next-window nextl paste-buffer +\ pasteb pipe-pane pipep popup prev previous-layout previous-window prevl +\ refresh refresh-client rename rename-session rename-window renamew +\ resize-pane resize-window resizep resizew respawn-pane respawn-window +\ respawnp respawnw rotate-window rotatew run run-shell save-buffer saveb +\ select-layout select-pane select-window selectl selectp selectw send +\ send-keys send-prefix server-access server-info set set-buffer +\ set-environment set-hook set-option set-window-option setb setenv setw show +\ show-buffer show-environment show-hooks show-messages show-options +\ show-prompt-history show-window-options showb showenv showmsgs showphist +\ showw source source-file split-pane split-window splitp splitw start +\ start-server suspend-client suspendc swap-pane swap-window swapp swapw +\ switch-client switchc unbind unbind-key unlink-window unlinkw wait wait-for + +syn keyword tmuxEnums +\ absolute-centre all always any arrows bar blinking-bar blinking-block +\ blinking-underline block both bottom centre color colour current default +\ double emacs external failed heavy keep-group keep-last largest latest left +\ manual next no-detached none number off on other padded previous right +\ rounded simple single smallest top underline vi let &cpo = s:original_cpo unlet! s:original_cpo s:bg s:i diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index fcd50bccd2..2857146949 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -23,7 +23,7 @@ syn cluster vimCommentGroup contains=vimTodo,@Spell " Special and plugin vim commands {{{2 syn match vimCommand contained "\<z[-+^.=]\=\>" syn keyword vimOnlyCommand contained fix[del] op[en] sh[ell] P[rint] -syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man N[ext] Over P[rint] Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns +syn keyword vimStdPlugin contained Arguments Asm Break Cfilter Clear Continue DiffOrig Evaluate Finish Gdb Lfilter Man Over Program Run S Source Step Stop Termdebug TermdebugCommand TOhtml Until Winbar XMLent XMLns " Vim-specific options {{{2 syn keyword vimOnlyOption contained biosk bioskey cp compatible consk conskey cm cryptmethod edcompatible guipty key macatsui mzq mzquantum osfiletype oft renderoptions rop st shelltype sn shortname tenc termencoding ta textauto tx textmode tf ttyfast ttym ttymouse tbi ttybuiltin wiv weirdinvert @@ -34,8 +34,10 @@ syn keyword vimOnlyOption contained nobiosk nobioskey noconsk noconskey nocp noc " Invertible setting variants syn keyword vimOnlyOption contained invbiosk invbioskey invconsk invconskey invcp invcompatible invguipty invmacatsui invsn invshortname invta invtextauto invtx invtextmode invtf invttyfast invtbi invttybuiltin invwiv invweirdinvert " termcap codes (which can also be set) {{{2 -syn keyword vimTermOption contained t_8b t_AB t_al t_bc t_ce t_cl t_Co t_Cs t_CV t_db t_DL t_Ds t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_KH t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RB t_RI t_RV t_Sb t_se t_Sf t_SI t_so t_sr t_SR t_te t_ti t_ts t_u7 t_ue t_us t_Us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xn t_xs t_ZH t_ZR -syn keyword vimTermOption contained t_8f t_AF t_AL t_cd t_Ce t_cm t_cs t_CS t_da t_dl t_ds t_EI t_kh t_kI +" GEN_SYN_VIM: vimOption term output code, START_STR='syn keyword vimOption contained', END_STR='' +syn keyword vimOption contained t_AB t_AF t_AU t_AL t_al t_bc t_BE t_BD t_cd t_ce t_Ce t_CF t_cl t_cm t_Co t_CS t_Cs t_cs t_CV t_da t_db t_DL t_dl t_ds t_Ds t_EC t_EI t_fs t_fd t_fe t_GP t_IE t_IS t_ke t_ks t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RF t_RB t_RC t_RI t_Ri t_RK t_RS t_RT t_RV t_Sb t_SC t_se t_Sf t_SH t_SI t_Si t_so t_SR t_sr t_ST t_Te t_te t_TE t_ti t_TI t_Ts t_ts t_u7 t_ue t_us t_Us t_ut t_vb t_ve t_vi t_VS t_vs t_WP t_WS t_XM t_xn t_xs t_ZH t_ZR t_8f t_8b t_8u +" term key codes +syn keyword vimOption contained t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ku syn match vimTermOption contained "t_%1" syn match vimTermOption contained "t_#2" syn match vimTermOption contained "t_#4" @@ -46,19 +48,22 @@ syn match vimTermOption contained "t_%i" syn match vimTermOption contained "t_k;" " unsupported settings: these are supported by vi but don't do anything in vim {{{2 -syn keyword vimErrSetting contained hardtabs ht w1200 w300 w9600 +" GEN_SYN_VIM: Missing vimOption, START_STR='syn keyword vimErrSetting contained', END_STR='' +syn keyword vimErrSetting contained akm altkeymap anti antialias ap autoprint bf beautify biosk bioskey consk conskey fk fkmap fl flash gr graphic ht hardtabs macatsui mesg novice open opt optimize oft osfiletype redraw slow slowopen sourceany w1200 w300 w9600 +syn keyword vimErrSetting contained noakm noaltkeymap noanti noantialias noap noautoprint nobf nobeautify nobiosk nobioskey noconsk noconskey nofk nofkmap nofl noflash nogr nographic nomacatsui nomesg nonovice noopen noopt nooptimize noredraw noslow noslowopen nosourceany +syn keyword vimErrSetting contained invakm invaltkeymap invanti invantialias invap invautoprint invbf invbeautify invbiosk invbioskey invconsk invconskey invfk invfkmap invfl invflash invgr invgraphic invmacatsui invmesg invnovice invopen invopt invoptimize invredraw invslow invslowopen invsourceany "}}}2 syn case ignore " Highlight commonly used Groupnames {{{2 syn keyword vimGroup contained Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo " Default highlighting groups {{{2 -syn keyword vimHLGroup contained ColorColumn Cursor CursorColumn CursorIM CursorLine CursorLineFold CursorLineNr CursorLineSign DiffAdd DiffChange DiffDelete DiffText Directory EndOfBuffer ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu MessageWindow ModeMsg MoreMsg NonText Normal Pmenu PmenuExtra PmenuExtraSel PmenuKind PmenuKindSel PmenuSbar PmenuSel PmenuThumb Question QuickFixLine Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual WarningMsg WildMenu -syn match vimHLGroup contained "Conceal" -syn keyword vimOnlyHLGroup contained LineNrAbove LineNrBelow StatusLineTerm Terminal VisualNOS -syn keyword nvimHLGroup contained Substitute TermCursor TermCursorNC +syn keyword vimHLGroup contained ErrorMsg IncSearch ModeMsg NonText StatusLine StatusLineNC EndOfBuffer VertSplit DiffText PmenuSbar TabLineSel TabLineFill Cursor lCursor QuickFixLine CursorLineSign CursorLineFold CurSearch PmenuKind PmenuKindSel PmenuExtra PmenuExtraSel Normal Directory LineNr CursorLineNr MoreMsg Question Search SpellBad SpellCap SpellRare SpellLocal PmenuThumb Pmenu PmenuSel SpecialKey Title WarningMsg WildMenu Folded FoldColumn SignColumn Visual DiffAdd DiffChange DiffDelete TabLine CursorColumn CursorLine ColorColumn Conceal MatchParen CursorIM LineNrAbove LineNrBelow +syn keyword vimOnlyHLGroup contained Menu Scrollbar StatusLineTerm StatusLineTermNC ToolbarButton ToolbarLine Tooltip VisualNOS +syn keyword nvimHLGroup contained FloatBorder FloatFooter FloatTitle MsgSeparator NormalFloat NormalNC Substitute TermCursor TermCursorNC VisualNC Whitespace WinBar WinBarNC WinSeparator "}}}2 syn case match + " Special Vim Highlighting (not automatic) {{{1 " Set up folding commands for this syntax highlighting file {{{2 @@ -140,23 +145,28 @@ endif " Numbers {{{2 " ======= -syn match vimNumber '\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment,vim9Comment -syn match vimNumber '-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment,vim9Comment -syn match vimNumber '\<0[xX]\x\+' skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment,vim9Comment -syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment,vim9Comment -syn match vimNumber '\<0[zZ][a-zA-Z0-9.]\+' skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment,vim9Comment -syn match vimNumber '0[0-7]\+' skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment,vim9Comment -syn match vimNumber '0[bB][01]\+' skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment,vim9Comment +syn match vimNumber '\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment +syn match vimNumber '-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment +syn match vimNumber '\<0[xX]\x\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment +syn match vimNumber '\%(^\|\A\)\zs#\x\{6}' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment +syn match vimNumber '\<0[zZ][a-zA-Z0-9.]\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment +syn match vimNumber '0[0-7]\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment +syn match vimNumber '0[bB][01]\+' skipwhite nextgroup=vimGlobal,vimSubst1,vimCommand,vimComment,vim9Comment " All vimCommands are contained by vimIsCommand. {{{2 -syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimEcho,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd -syn match vimIsCommand "\<\h\w*\>" contains=vimCommand +syn cluster vimCmdList contains=vimAbb,vimAddress,vimAutoCmd,vimAugroup,vimBehave,vimEcho,vimEchoHL,vimExecute,vimIsCommand,vimExtCmd,vimFunction,vimGlobal,vimHighlight,vimLet,vimMap,vimMark,vimNotFunc,vimNorm,vimSet,vimSyntax,vimUnlet,vimUnmap,vimUserCmd +syn match vimCmdSep "[:|]\+" skipwhite nextgroup=@vimCmdList,vimSubst1 +syn match vimIsCommand "\<\%(\h\w*\|[23]mat\%[ch]\)\>" contains=vimCommand syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" -syn match vimVar "\s\zs&\a\+\>" +syn match vimVar "\s\zs&\%([lg]:\)\=\a\+\>" +syn match vimVar "\s\zs&t_\S[a-zA-Z0-9]\>" +syn match vimVar "\s\zs&t_k;" syn match vimFBVar contained "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" syn keyword vimCommand contained in +syn cluster vimExprList contains=vimEnvvar,vimFunc,vimFuncVar,vimNumber,vimOper,vimOperParen,vimLetRegister,vimString,vimVar + " Insertions And Appends: insert append {{{2 " (buftype != nofile test avoids having append, change, insert show up in the command window) " ======================= @@ -168,11 +178,12 @@ endif " Behave! {{{2 " ======= -syn match vimBehave "\<be\%[have]\>" skipwhite nextgroup=vimBehaveModel,vimBehaveError -syn keyword vimBehaveModel contained mswin xterm if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nobehaveerror") syn match vimBehaveError contained "[^ ]\+" endif +syn match vimBehave "\<be\%[have]\>" nextgroup=vimBehaveBang,vimBehaveModel,vimBehaveError skipwhite +syn match vimBehaveBang contained "\a\@1<=!" nextgroup=vimBehaveModel skipwhite +syn keyword vimBehaveModel contained mswin xterm " Filetypes {{{2 " ========= @@ -185,22 +196,26 @@ syn keyword vimFTOption contained detect indent off on plugin " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. -syn cluster vimAugroupList contains=vimAugroup,vimIsCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimNotFunc,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vim9Comment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue,vimSetEqual,vimOption +syn cluster vimAugroupList contains=@vimCmdList,vimFilter,vimFunc,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vim9Comment,vimString,vimSubst,vimRegister,vimCmplxRepeat,vimRegion,vimNotation,vimCtrlChar,vimFuncVar,vimContinue +syn match vimAugroup "\<aug\%[roup]\>" contains=vimAugroupKey,vimAugroupBang skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a' - syn region vimAugroup fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList + syn region vimAugroup fold start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd else - syn region vimAugroup matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList + syn region vimAugroup start="\<aug\%[roup]\>\ze\s\+\%([eE][nN][dD]\)\@!\S\+" matchgroup=vimAugroupKey end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>" contains=vimAutoCmd,@vimAugroupList,vimAugroupkey skipwhite nextgroup=vimAugroupEnd endif -syn match vimAugroup "aug\%[roup]!" contains=vimAugroupKey if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noaugrouperror") - syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>" + syn match vimAugroupError "\<aug\%[roup]\>\s\+[eE][nN][dD]\>" endif -syn keyword vimAugroupKey contained aug[roup] + +syn match vimAutoCmdGroup contained "\S\+" +syn match vimAugroupEnd contained "\c\<END\>" +syn match vimAugroupBang contained "\a\@1<=!" skipwhite nextgroup=vimAutoCmdGroup +syn keyword vimAugroupKey contained aug[roup] skipwhite nextgroup=vimAugroupBang,vimAutoCmdGroup,vimAugroupEnd " Operators: {{{2 " ========= -syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimType,vimRegister,vimContinue,vim9Comment,vimVar -syn match vimOper "||\|&&\|[-+.!]" skipwhite nextgroup=vimString,vimSpecFile +syn cluster vimOperGroup contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimType,vimRegister,@vimContinue,vim9Comment,vimVar +syn match vimOper "||\|&&\|[-+*/%.!]" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\|!\~#\)[?#]\{0,2}" skipwhite nextgroup=vimString,vimSpecFile syn match vimOper "\(\<is\|\<isnot\)[?#]\{0,2}\>" skipwhite nextgroup=vimString,vimSpecFile syn region vimOperParen matchgroup=vimParenSep start="(" end=")" contains=vimoperStar,@vimOperGroup @@ -212,9 +227,9 @@ endif " Functions : Tag is provided for those who wish to highlight tagged functions {{{2 " ========= syn cluster vimFuncList contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID -syn cluster vimFuncBodyList contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vim9Comment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimEnvvar,vimExecute,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLetHereDoc,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSearch,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand +syn cluster vimFuncBodyList contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimContinue,vimCtrlChar,vimEnvvar,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimLetHereDoc,vimLineComment,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSearch,vimSpecFile,vimString,vimSubst syn match vimFunction "\<\(fu\%[nction]\)!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody - syn match vimFunction "\<def!\=\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody +syn match vimFunction "\<def!\=\ze\s*(" contains=@vimFuncList nextgroup=vimFuncBody if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f' syn region vimFuncBody contained fold start="\ze\s*(" matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\|enddef\>\)" contains=@vimFuncBodyList @@ -229,21 +244,34 @@ syn match vimFuncBlank contained "\s\+" syn keyword vimPattern contained start skip end " vimTypes : new for vim9 - syn match vimType ":\s*\zs\<\(bool\|number\|float\|string\|blob\|list<\|dict<\|job\|channel\|func\)\>" +syn match vimType ":\s*\zs\<\(bool\|number\|float\|string\|blob\|list<\|dict<\|job\|channel\|func\)\>" + +" Keymaps: (Vim Project Addition) {{{2 +" ======= + +" TODO: autogenerated vimCommand keyword list does not handle all abbreviations +" : handle Vim9 script comments when something like #13104 is merged +syn match vimKeymapStart "^" contained skipwhite nextgroup=vimKeymapLhs,vimKeymapLineComment +syn match vimKeymapLhs "\S\+" contained skipwhite nextgroup=vimKeymapRhs contains=vimNotation +syn match vimKeymapRhs "\S\+" contained skipwhite nextgroup=vimKeymapTailComment contains=vimNotation +syn match vimKeymapTailComment "\S.*" contained +syn match vimKeymapLineComment +".*+ contained contains=@vimCommentGroup,vimCommentString,vimCommentTitle + +syn region vimKeymap matchgroup=vimCommand start="\<loadk\%[eymap]\>" end="\%$" contains=vimKeymapStart " Special Filenames, Modifiers, Extension Removal: {{{2 " =============================================== -syn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst -syn match vimSpecFile "<\([acs]file\|amatch\|abuf\)>" nextgroup=vimSpecFileMod,vimSubst -syn match vimSpecFile "\s%[ \t:]"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst -syn match vimSpecFile "\s%$"ms=s+1 nextgroup=vimSpecFileMod,vimSubst -syn match vimSpecFile "\s%<"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst -syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst +syn match vimSpecFile "<c\(word\|WORD\)>" nextgroup=vimSpecFileMod,vimSubst1 +syn match vimSpecFile "<\([acs]file\|amatch\|abuf\)>" nextgroup=vimSpecFileMod,vimSubst1 +syn match vimSpecFile "\s%[ \t:]"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst1 +syn match vimSpecFile "\s%$"ms=s+1 nextgroup=vimSpecFileMod,vimSubst1 +syn match vimSpecFile "\s%<"ms=s+1,me=e-1 nextgroup=vimSpecFileMod,vimSubst1 +syn match vimSpecFile "#\d\+\|[#%]<\>" nextgroup=vimSpecFileMod,vimSubst1 syn match vimSpecFileMod "\(:[phtre]\)\+" contained " User-Specified Commands: {{{2 " ======================= -syn cluster vimUserCmdList contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine +syn cluster vimUserCmdList contains=@vimCmdList,vimCmplxRepeat,vimComment,vim9Comment,vimCtrlChar,vimEscapeBrace,vimFunc,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange syn keyword vimUserCommand contained com[mand] syn match vimUserCmd "\<com\%[mand]!\=\>.*$" contains=vimUserAttrb,vimUserAttrbError,vimUserCommand,@vimUserCmdList,vimComFilter syn match vimUserAttrbError contained "-\a\+\ze\s" @@ -260,9 +288,10 @@ if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_nousercmderror") endif syn case ignore syn keyword vimUserAttrbKey contained bar ban[g] cou[nt] ra[nge] com[plete] n[args] re[gister] -syn keyword vimUserAttrbCmplt contained augroup buffer behave color command compiler cscope dir environment event expression file file_in_path filetype function help highlight history locale mapping menu option packadd shellcmd sign syntax syntime tag tag_listfiles user var +" GEN_SYN_VIM: vimUserAttrbCmplt, START_STR='syn keyword vimUserAttrbCmplt contained', END_STR='' +syn keyword vimUserAttrbCmplt contained arglist augroup behave buffer color command compiler cscope diff_buffer dir environment event expression file file_in_path filetype function help highlight history keymap locale mapclear mapping menu messages syntax syntime option packadd runtime shellcmd sign tag tag_listfiles user var breakpoint scriptnames syn keyword vimUserAttrbCmplt contained custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError -syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError +syn match vimUserAttrbCmpltFunc contained ",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%([.#]\h\w*\)\+\|\h\w*\)"hs=s+1 nextgroup=vimUserCmdError syn case match syn match vimUserAttrbCmplt contained "custom,\u\w*" @@ -299,45 +328,54 @@ syn match vimNotPatSep contained "\\\\" syn cluster vimStringGroup contains=vimEscape,vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+ contains=@vimStringGroup syn region vimString oneline keepend start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+ -syn region vimString oneline start=+=!+lc=1 skip=+\\\\\|\\!+ end=+!+ contains=@vimStringGroup -syn region vimString oneline start="=+"lc=1 skip="\\\\\|\\+" end="+" contains=@vimStringGroup "syn region vimString oneline start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/" contains=@vimStringGroup " see tst45.vim syn match vimString contained +"[^"]*\\$+ skipnl nextgroup=vimStringCont syn match vimStringCont contained +\(\\\\\|.\)\{-}[^\\]"+ syn match vimEscape contained "\\." +" syn match vimEscape contained +\\[befnrt\"]+ +syn match vimEscape contained "\\\o\{1,3}\|\\[xX]\x\{1,2}\|\\u\x\{1,4}\|\\U\x\{1,8}" +syn match vimEscape contained "\\<" contains=vimNotation +syn match vimEscape contained "\\<\*[^>]*>\=>" + +syn region vimString oneline start=+$'+ skip=+''+ end=+'+ contains=vimStringInterpolationBrace,vimStringInterpolationExpr +syn region vimString oneline start=+$"+ end=+"+ contains=@vimStringGroup,vimStringInterpolationBrace,vimStringInterpolationExpr +syn region vimStringInterpolationExpr oneline contained matchgroup=vimSep start=+{+ end=+}+ contains=@vimExprList +syn match vimStringInterpolationBrace contained "{{" +syn match vimStringInterpolationBrace contained "}}" " Substitutions: {{{2 " ============= syn cluster vimSubstList contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation syn cluster vimSubstRepList contains=vimSubstSubstr,vimSubstTwoBS,vimNotation syn cluster vimSubstList add=vimCollection -syn match vimSubst "\(:\+\s*\|^\s*\||\s*\)\<\%(\<s\%[ubstitute]\>\|\<sm\%[agic]\>\|\<sno\%[magic]\>\)[:#[:alpha:]]\@!" nextgroup=vimSubstPat -"syn match vimSubst "\%(^\|[^\\]\)\<s\%[ubstitute]\>[:#[:alpha:]]\@!" nextgroup=vimSubstPat contained -syn match vimSubst "\%(^\|[^\\\"']\)\<s\%[ubstitute]\>[:#[:alpha:]\"']\@!" nextgroup=vimSubstPat contained -syn match vimSubst "/\zs\<s\%[ubstitute]\>\ze/" nextgroup=vimSubstPat -syn match vimSubst "\(:\+\s*\|^\s*\)s\ze#.\{-}#.\{-}#" nextgroup=vimSubstPat -syn match vimSubst1 contained "\<s\%[ubstitute]\>" nextgroup=vimSubstPat -syn match vimSubst2 contained "s\%[ubstitute]\>" nextgroup=vimSubstPat -syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline -syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline -syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass -syn match vimCollClassErr contained "\[:.\{-\}:\]" -syn match vimCollClass contained transparent "\%#=1\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]" -syn match vimSubstSubstr contained "\\z\=\d" -syn match vimSubstTwoBS contained "\\\\" -syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags -syn match vimSubstFlags contained "[&cegiIlnpr#]\+" +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)\>[\"#|]\@!" nextgroup=vimSubstPat +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\|sno\%[magic]\)_\@=" nextgroup=vimSubstPat +syn match vimSubst "^\s*\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\ze#.\{-}#.\{-}#" nextgroup=vimSubstPat +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\>[\"#|]\@!" nextgroup=vimSubstPat +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)_\@=" nextgroup=vimSubstPat +syn match vimSubst1 contained "\%(s\%[ubstitute]\|sm\%[agic]\>\|sno\%[magic]\)\ze#.\{-}#.\{-}#" nextgroup=vimSubstPat +" TODO: Vim9 illegal separators for abbreviated :s form are [-.:], :su\%[...] required +" : # is allowed but "not recommended" (see :h pattern-delimiter) +syn region vimSubstPat contained matchgroup=vimSubstDelim start="\z([!#$%&'()*+,-./:;<=>?@[\]^_`{}~]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1 contains=@vimSubstList nextgroup=vimSubstRep4 oneline +syn region vimSubstRep4 contained matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList nextgroup=vimSubstFlagErr oneline +syn region vimCollection contained transparent start="\\\@<!\[" skip="\\\[" end="\]" contains=vimCollClass +syn match vimCollClassErr contained "\[:.\{-\}:\]" +syn match vimCollClass contained transparent "\%#=1\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|retu\%[rn]\|tab\|escape\|backspace\):\]" +syn match vimSubstSubstr contained "\\z\=\d" +syn match vimSubstTwoBS contained "\\\\" +syn match vimSubstFlagErr contained "[^< \t\r|]\+" contains=vimSubstFlags +syn match vimSubstFlags contained "[&cegiIlnpr#]\+" " 'String': {{{2 syn match vimString "[^(,]'[^']\{-}\zs'" " Marks, Registers, Addresses, Filters: {{{2 -syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst -syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst -syn match vimMark ",\zs'[<>]\ze" nextgroup=vimFilter,vimMarkNumber,vimSubst -syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimFilter,vimMarkNumber,vimSubst -syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimFilter,vimMarkNumber,vimSubst -syn match vimMarkNumber "[-+]\d\+" contained contains=vimOper nextgroup=vimSubst2 +syn match vimMark "'[a-zA-Z0-9]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1 +syn match vimMark "'[<>]\ze[-+,!]" nextgroup=vimFilter,vimMarkNumber,vimSubst1 +syn match vimMark ",\zs'[<>]\ze" nextgroup=vimFilter,vimMarkNumber,vimSubst1 +syn match vimMark "[!,:]\zs'[a-zA-Z0-9]" nextgroup=vimFilter,vimMarkNumber,vimSubst1 +syn match vimMark "\<norm\%[al]\s\zs'[a-zA-Z0-9]" nextgroup=vimFilter,vimMarkNumber,vimSubst1 +syn match vimMarkNumber "[-+]\d\+" contained contains=vimOper nextgroup=vimSubst1 syn match vimPlainMark contained "'[a-zA-Z0-9]" syn match vimRange "[`'][a-zA-Z0-9],[`'][a-zA-Z0-9]" contains=vimMark skipwhite nextgroup=vimFilter @@ -346,6 +384,7 @@ syn match vimRegister '\<norm\s\+\zs"[a-zA-Z0-9]' syn match vimRegister '\<normal\s\+\zs"[a-zA-Z0-9]' syn match vimRegister '@"' syn match vimPlainRegister contained '"[a-zA-Z0-9\-:.%#*+=]' +syn match vimLetRegister contained '@["0-9\-a-zA-Z#=*+_/]' syn match vimAddress ",\zs[.$]" skipwhite nextgroup=vimSubst1 syn match vimAddress "%\ze\a" skipwhite nextgroup=vimString,vimSubst1 @@ -355,24 +394,36 @@ syn match vimFilter contained "!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper, syn match vimComFilter contained "|!!\=[^"]\{-}\(|\|\ze\"\|$\)" contains=vimOper,vimSpecFile " Complex Repeats: (:h complex-repeat) {{{2 +" =============== syn match vimCmplxRepeat '[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1 syn match vimCmplxRepeat '@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)' " Set command and associated set-options (vimOptions) with comment {{{2 syn region vimSet matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\.\n\@!" end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vim9Comment,vimSetString,vimSetMod - syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$" contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar +syn region vimSetEqual contained start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]"me=e-1 end="$" contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar syn region vimSetString contained start=+="+hs=s+1 skip=+\\\\\|\\"+ end=+"+ contains=vimCtrlChar syn match vimSetSep contained "[,:]" syn match vimSetMod contained "&vim\=\|[!&?<]\|all&" " Let: {{{2 " === -syn keyword vimLet let unl[et] skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc +syn keyword vimLet let skipwhite nextgroup=vimVar,vimFuncVar,vimLetHereDoc,vimLetRegister,vimVarList +syn keyword vimConst cons[t] skipwhite nextgroup=vimVar,vimLetHereDoc,vimVarList +syn region vimVarList contained start="\[" end="]" contains=vimVar,vimContinue + +syn keyword vimUnlet unl[et] skipwhite nextgroup=vimUnletBang,vimUnletVars +syn match vimUnletBang contained "!" skipwhite nextgroup=vimUnletVars +syn region vimUnletVars contained start="$\I\|\h" skip="\n\s*\\" end="$" end="|" contains=vimVar,vimEnvvar,vimContinue,vimString,vimNumber + VimFoldh syn region vimLetHereDoc matchgroup=vimLetHereDocStart start='=<<\s*\%(trim\s\+\%(eval\s\+\)\=\|eval\s\+\%(trim\s\+\)\=\)\=\z(\L\S*\)' matchgroup=vimLetHereDocStop end='^\s*\z1\s*$' +" For: {{{2 +" === +syn keyword vimFor for skipwhite nextgroup=vimVar,vimVarList " Abbreviations: {{{2 " ============= -syn keyword vimAbb ab[breviate] ca[bbrev] inorea[bbrev] cnorea[bbrev] norea[bbrev] ia[bbrev] skipwhite nextgroup=vimMapMod,vimMapLhs +" GEN_SYN_VIM: vimCommand abbrev, START_STR='syn keyword vimAbb', END_STR='skipwhite nextgroup=vimMapMod,vimMapLhs' +syn keyword vimAbb ab[breviate] ca[bbrev] cnorea[bbrev] cuna[bbrev] ia[bbrev] inorea[bbrev] iuna[bbrev] norea[bbrev] una[bbreviate] skipwhite nextgroup=vimMapMod,vimMapLhs " Autocmd: {{{2 " ======= @@ -382,25 +433,32 @@ syn match vimAutoCmdSfxList contained "\S*" skipwhite nextgroup=vimAutoCmdMod syn keyword vimAutoCmd au[tocmd] do[autocmd] doautoa[ll] skipwhite nextgroup=vimAutoEventList syn match vimAutoCmdMod "\(++\)\=\(once\|nested\)" -" Echo and Execute: -- prefer strings! {{{2 +" Echo And Execute: -- prefer strings! {{{2 " ================ -syn region vimEcho oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar -syn region vimExecute oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar -syn match vimEchoHL "echohl\=" skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone,vimOnlyHLGroup,nvimHLGroup +" GEN_SYN_VIM: vimCommand echo, START_STR='syn keyword vimEcho', END_STR='skipwhite nextgroup=vimEchoExpr' +syn keyword vimEcho ec[ho] echoe[rr] echom[sg] echoc[onsole] echon echow[indow] skipwhite nextgroup=vimEchoExpr +syn region vimEchoExpr contained start="[^[:space:]|]" skip=+\\\\\|\\|\|\n\s*\\\|\n\s*"\\ + matchgroup=vimCmdSep end="|" end="$" contains=@vimContinue,@vimExprList + +syn match vimEchoHL "\<echohl\=\>" skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone,vimOnlyHLGroup,nvimHLGroup syn case ignore syn keyword vimEchoHLNone none syn case match +syn region vimExecute oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar + " Maps: {{{2 " ==== -syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs -syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] tno[remap] tm[ap] vm[ap] vmapc[lear] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs -syn keyword nvimMap tn[oremap] tm[ap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs -syn keyword vimMap mapc[lear] smapc[lear] -syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs -syn keyword nvimUnmap tunm[ap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs +syn match vimMap "\<map\>\ze\s*(\@!" skipwhite nextgroup=vimMapMod,vimMapLhs +syn match vimMap "\<map!" contains=vimMapBang skipwhite nextgroup=vimMapMod,vimMapLhs +" GEN_SYN_VIM: vimCommand map, START_STR='syn keyword vimMap', END_STR='skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs' +syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] tma[p] tno[remap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs +" GEN_SYN_VIM: vimCommand mapclear, START_STR='syn keyword vimMap', END_STR='skipwhite nextgroup=vimMapMod' +syn keyword vimMap cmapc[lear] imapc[lear] lmapc[lear] nmapc[lear] omapc[lear] smapc[lear] tmapc[lear] vmapc[lear] xmapc[lear] skipwhite nextgroup=vimMapMod +syn keyword vimMap mapc[lear] skipwhite nextgroup=vimMapBang,vimMapMod +" GEN_SYN_VIM: vimCommand unmap, START_STR='syn keyword vimUnmap', END_STR='skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs' +syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] tunma[p] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs -syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs +syn match vimMapBang contained "\a\@1<=!" skipwhite nextgroup=vimMapMod,vimMapLhs syn match vimMapMod contained "\%#=1\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs syn match vimMapRhs contained ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend syn match vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue @@ -411,7 +469,8 @@ syn case match " Menus: {{{2 " ===== syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod -syn keyword vimCommand am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] tlm[enu] tln[oremenu] tlu[nmenu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList +" GEN_SYN_VIM: vimCommand menu, START_STR='syn keyword vimCommand', END_STR='skipwhite nextgroup=@vimMenuList' +syn keyword vimCommand am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] sme[nu] snoreme[nu] sunme[nu] tlm[enu] tln[oremenu] tlu[nmenu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] xme[nu] xnoreme[nu] xunme[nu] skipwhite nextgroup=@vimMenuList syn match vimMenuName "[^ \t\\<]\+" contained nextgroup=vimMenuNameMore,vimMenuMap syn match vimMenuPriority "\d\+\(\.\d\+\)*" contained skipwhite nextgroup=vimMenuName syn match vimMenuNameMore "\c\\\s\|<tab>\|\\\." contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation @@ -423,12 +482,23 @@ syn match vimMenuBang "!" contained skipwhite nextgroup=@vimMenuList " Angle-Bracket Notation: (tnx to Michael Geddes) {{{2 " ====================== syn case ignore -syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cmd\|cr\|lf\|linefeed\|return\|enter\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|mouse\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket -syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>" contains=vimBracket -syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>" contains=vimBracket -syn match vimNotation '\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket -syn match vimNotation '\%#=1\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>' contains=vimBracket -syn match vimNotation "\%#=1\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd]-\)\{0,4}x\=\%(f\d\{1,2}\|[^ \t:]\|space\|bar\|bslash\|nl\|newline\|lf\|linefeed\|cr\|retu\%[rn]\|enter\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|csi\|right\|paste\%(start\|end\)\|left\|help\|undo\|k\=insert\|ins\|mouse\|[kz]\=home\|[kz]\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\%(page\)\=\%(\|down\|up\|k\d\>\)\)>" contains=vimBracket + +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(net\|dec\|jsb\|pterm\|urxvt\|sgr\)mouse>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}\%(left\|middle\|right\)\%(mouse\|drag\|release\)>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}left\%(mouse\|release\)nm>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}x[12]\%(mouse\|drag\|release\)>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}sgrmouserelease>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}mouse\%(up\|down\|move\)>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd2-4]-\)\{0,4}scrollwheel\%(up\|down\|right\|left\)>" contains=vimBracket + +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%(sid\|nop\|nul\|lt\|drop\)>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%(snr\|plug\|cursorhold\|ignore\|cmd\|scriptcmd\|focus\%(gained\|lost\)\)>" contains=vimBracket +syn match vimNotation '\%(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1 contains=vimBracket +syn match vimNotation '\%#=1\%(\\\|<lt>\)\=<\%(q-\)\=\%(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>' contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([cas]file\|abuf\|amatch\|cexpr\|cword\|cWORD\|client\|stack\|script\|sf\=lnum\)>" contains=vimBracket +syn match vimNotation "\%#=1\%(\\\|<lt>\)\=<\%([scamd]-\)\{0,4}char-\%(\d\+\|0\o\+\|0x\x\+\)>" contains=vimBracket + syn match vimBracket contained "[\\<>]" syn case match @@ -460,16 +530,22 @@ syn match vimNormCmds contained ".*$" " Syntax: {{{2 "======= -syn match vimGroupList contained "@\=[^ \t,]*" contains=vimGroupSpecial,vimPatSep -syn match vimGroupList contained "@\=[^ \t,]*," nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep +syn match vimGroupList contained "[^[:space:],]\+\%(\s*,\s*[^[:space:],]\+\)*" contains=vimGroupSpecial +syn region vimGroupList contained start=/^\s*["#]\\ \|^\s*\\\|[^[:space:],]\+\s*,/ skip=/\s*\n\s*\\\|\s*\n\s*["#]\\ \|^\s*\\\|^\s*["#]\\ / end=/[^[:space:],]\s*$\|[^[:space:],]\ze\s\+\w/ contains=@vimContinue,vimGroupSpecial syn keyword vimGroupSpecial contained ALL ALLBUT CONTAINED TOP + if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynerror") syn match vimSynError contained "\i\+" syn match vimSynError contained "\i\+=" nextgroup=vimGroupList endif -syn match vimSynContains contained "\<contain\(s\|edin\)=" nextgroup=vimGroupList -syn match vimSynKeyContainedin contained "\<containedin=" nextgroup=vimGroupList -syn match vimSynNextgroup contained "nextgroup=" nextgroup=vimGroupList +syn match vimSynContains contained "\<contain\%(s\|edin\)=" skipwhite skipnl nextgroup=vimGroupList +syn match vimSynKeyContainedin contained "\<containedin=" skipwhite skipnl nextgroup=vimGroupList +syn match vimSynNextgroup contained "\<nextgroup=" skipwhite skipnl nextgroup=vimGroupList +if has("conceal") + " no whitespace allowed after '=' + syn match vimSynCchar contained "\<cchar=" nextgroup=vimSynCcharValue + syn match vimSynCcharValue contained "\S" +endif syn match vimSyntax "\<sy\%[ntax]\>" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment,vim9Comment syn match vimAuSyntax contained "\s+sy\%[ntax]" contains=vimCommand skipwhite nextgroup=vimSynType,vimComment,vim9Comment @@ -487,10 +563,16 @@ syn keyword vimSynType contained clear skipwhite nextgroup=vimGroupList " Syntax: cluster {{{2 syn keyword vimSynType contained cluster skipwhite nextgroup=vimClusterName -syn region vimClusterName contained matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError -syn match vimGroupAdd contained "add=" nextgroup=vimGroupList -syn match vimGroupRem contained "remove=" nextgroup=vimGroupList -syn cluster vimFuncBodyList add=vimSynType,vimGroupAdd,vimGroupRem +syn region vimClusterName contained keepend matchgroup=vimGroupName start="\h\w*\>" skip=+\\\\\|\\\|\n\s*\\\|\n\s*"\\ + matchgroup=vimCmdSep end="$\||" contains=@vimContinue,vimGroupAdd,vimGroupRem,vimSynContains,vimSynError +syn match vimGroupAdd contained keepend "\<add=" skipwhite skipnl nextgroup=vimGroupList +syn match vimGroupRem contained keepend "\<remove=" skipwhite skipnl nextgroup=vimGroupList + +" Syntax: foldlevel {{{2 +syn keyword vimSynType contained foldlevel skipwhite nextgroup=vimSynFoldMethod,vimSynFoldMethodError +if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimsynfoldmethoderror") + syn match vimSynFoldMethodError contained "\i\+" +endif +syn keyword vimSynFoldMethod contained start minimum " Syntax: iskeyword {{{2 syn keyword vimSynType contained iskeyword skipwhite nextgroup=vimIskList @@ -499,38 +581,31 @@ syn match vimIskSep contained ',' " Syntax: include {{{2 syn keyword vimSynType contained include skipwhite nextgroup=vimGroupList -syn cluster vimFuncBodyList add=vimSynType " Syntax: keyword {{{2 -syn cluster vimSynKeyGroup contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin +syn cluster vimSynKeyGroup contains=@vimContinue,vimSynCchar,vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin syn keyword vimSynType contained keyword skipwhite nextgroup=vimSynKeyRegion -syn region vimSynKeyRegion contained oneline keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup +syn region vimSynKeyRegion contained keepend matchgroup=vimGroupName start="\h\w*\>" skip=+\\\\\|\\|\|\n\s*\\\|\n\s*"\\ + matchgroup=vimCmdSep end="|\|$" contains=@vimSynKeyGroup syn match vimSynKeyOpt contained "\%#=1\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>" -syn cluster vimFuncBodyList add=vimSynType " Syntax: match {{{2 -syn cluster vimSynMtchGroup contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation,vim9Comment +syn cluster vimSynMtchGroup contains=@vimContinue,vimSynCchar,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation,vimMtchComment syn keyword vimSynType contained match skipwhite nextgroup=vimSynMatchRegion -syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup +syn region vimSynMatchRegion contained keepend matchgroup=vimGroupName start="\h\w*\>" skip=+\\\\\|\\|\|\n\s*\\\|\n\s*"\\ + matchgroup=vimCmdSep end="|\|$" contains=@vimSynMtchGroup syn match vimSynMtchOpt contained "\%#=1\<\(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>" -if has("conceal") - syn match vimSynMtchOpt contained "\<cchar=" nextgroup=vimSynMtchCchar - syn match vimSynMtchCchar contained "\S" -endif -syn cluster vimFuncBodyList add=vimSynMtchGroup " Syntax: off and on {{{2 syn keyword vimSynType contained enable list manual off on reset " Syntax: region {{{2 -syn cluster vimSynRegPatGroup contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation -syn cluster vimSynRegGroup contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp +syn cluster vimSynRegPatGroup contains=@vimContinue,vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation +syn cluster vimSynRegGroup contains=@vimContinue,vimSynCchar,vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp syn keyword vimSynType contained region skipwhite nextgroup=vimSynRegion -syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup +syn region vimSynRegion contained keepend matchgroup=vimGroupName start="\h\w*" skip=+\\\\\|\\\|\n\s*\\\|\n\s*"\\ + end="|\|$" contains=@vimSynRegGroup syn match vimSynRegOpt contained "\%#=1\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>" -syn match vimSynReg contained "\(start\|skip\|end\)="he=e-1 nextgroup=vimSynRegPat +syn match vimSynReg contained "\<\%(start\|skip\|end\)=" nextgroup=vimSynRegPat syn match vimSynMtchGrp contained "matchgroup=" nextgroup=vimGroup,vimHLGroup,vimOnlyHLGroup,nvimHLGroup -syn region vimSynRegPat contained extend start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip="\\\\\|\\\z1" end="\z1" contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg +syn region vimSynRegPat contained extend start="\z([-`~!@#$%^&*_=+;:'",./?]\)" skip=/\\\\\|\\\z1\|\n\s*\\\|\n\s*"\\ / end="\z1" contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg syn match vimSynPatMod contained "\%#=1\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=" syn match vimSynPatMod contained "\%#=1\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod syn match vimSynPatMod contained "lc=\d\+" @@ -538,7 +613,6 @@ syn match vimSynPatMod contained "lc=\d\+," nextgroup=vimSynPatMod syn region vimSynPatRange contained start="\[" skip="\\\\\|\\]" end="]" syn match vimSynNotPatRange contained "\\\\\|\\\[" syn match vimMtchComment contained '"[^"]\+$' -syn cluster vimFuncBodyList add=vimSynType " Syntax: sync {{{2 " ============ @@ -572,7 +646,7 @@ syn match vimHiBang contained "!" skipwhite nextgroup=@vimHighlightCluster syn match vimHiGroup contained "\i\+" syn case ignore -syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl underdouble underdotted underdashed +syn keyword vimHiAttrib contained none bold inverse italic nocombine reverse standout strikethrough underline undercurl underdashed underdotted underdouble syn keyword vimFgBgAttrib contained none bg background fg foreground syn case match syn match vimHiAttribList contained "\i\+" contains=vimHiAttrib @@ -587,7 +661,7 @@ syn match vimHiGuiFontname contained "'[a-zA-Z\-* ]\+'" syn match vimHiGuiRgb contained "#\x\{6}" " Highlighting: hi group key=arg ... {{{2 -syn cluster vimHiCluster contains=vimGroup,vimHiBlend,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiCtermul,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation +syn cluster vimHiCluster contains=vimGroup,vimHiBlend,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiCtermul,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation,vimComment,vim9comment syn region vimHiKeyList contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||" contains=@vimHiCluster if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_vimhikeyerror") syn match vimHiKeyError contained "\i\+="he=e-1 @@ -611,7 +685,6 @@ syn keyword vimHiClear contained clear nextgroup=vimHiGroup " see tst24 (hi def vs hi) (Jul 06, 2018) "syn region vimHiLink contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$" contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation syn region vimHiLink contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$" contains=@vimHiCluster -syn cluster vimFuncBodyList add=vimHiLink " Control Characters: {{{2 " ================== @@ -619,10 +692,14 @@ syn match vimCtrlChar "[--]" " Beginners - Patterns that involve ^ {{{2 " ========= -syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle +syn match vimLineComment +^[ \t:]*".*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle,vimComment +syn match vimLineComment +^[ \t:]*"\("[^"]*"\|[^"]\)*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle syn match vim9LineComment +^[ \t:]\+#.*$+ contains=@vimCommentGroup,vimCommentString,vimCommentTitle syn match vimCommentTitle '"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1 contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup -syn match vimContinue "^\s*\\" +" Note: Look-behind to work around nextgroup skipnl consuming leading whitespace and preventing a match +syn match vimContinue "^\s*\zs\\" +syn match vimContinueComment '^\s*\zs["#]\\ .*' contained +syn cluster vimContinue contains=vimContinue,vimContinueComment syn region vimString start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained @@ -630,8 +707,8 @@ syn match vimCommentTitleLeader '"\s\+'ms=s+1 contained " ==================== syn match vimSearch '^\s*[/?].*' contains=vimSearchDelim syn match vimSearchDelim '^\s*\zs[/?]\|[/?]$' contained -syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst -syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst +syn region vimGlobal matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst1 +syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/' skipwhite nextgroup=vimSubst1 " Embedded Scripts: {{{2 " ================ @@ -840,11 +917,13 @@ if !exists("skip_vim_syntax_inits") hi def link vimMapModErr vimError hi def link vimSubstFlagErr vimError hi def link vimSynCaseError vimError + hi def link vimSynFoldMethodError vimError hi def link vimBufnrWarn vimWarn endif hi def link vimAbb vimCommand hi def link vimAddress vimMark + hi def link vimAugroupBang vimBang hi def link vimAugroupError vimError hi def link vimAugroupKey vimCommand hi def link vimAuHighlight vimHighlight @@ -853,6 +932,8 @@ if !exists("skip_vim_syntax_inits") hi def link vimAutoEvent Type hi def link vimAutoCmdMod Special hi def link vimAutoSet vimCommand + hi def link vimBang vimOper + hi def link vimBehaveBang vimBang hi def link vimBehaveModel vimBehave hi def link vimBehave vimCommand hi def link vimBracket Delimiter @@ -863,8 +944,11 @@ if !exists("skip_vim_syntax_inits") hi def link vimCommentString vimString hi def link vimCommentTitle PreProc hi def link vimCondHL vimCommand + hi def link vimConst vimCommand hi def link vimContinue Special + hi def link vimContinueComment vimComment hi def link vimCtrlChar SpecialChar + hi def link vimEcho vimCommand hi def link vimEchoHLNone vimGroup hi def link vimEchoHL vimCommand hi def link vimElseIfErr Error @@ -877,6 +961,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimFuncEcho vimCommand hi def link vimHiCtermul vimHiTerm hi def link vimFold Folded + hi def link vimFor vimCommand hi def link vimFTCmd vimCommand hi def link vimFTOption vimSynType hi def link vimFuncKey vimCommand @@ -889,6 +974,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimGroupSpecial Special hi def link vimGroup Type hi def link vimHiAttrib PreProc + hi def link vimHiBang vimBang hi def link vimHiBlend vimHiTerm hi def link vimHiClear vimHighlight hi def link vimHiCtermFgBg vimHiTerm @@ -907,19 +993,23 @@ if !exists("skip_vim_syntax_inits") hi def link vimInsert vimString hi def link vimIskSep Delimiter hi def link vimKeyCode vimSpecFile + hi def link vimKeymapLineComment vimComment + hi def link vimKeymapTailComment vimComment hi def link vimKeyword Statement hi def link vimLet vimCommand hi def link vimLetHereDoc vimString hi def link vimLetHereDocStart Special hi def link vimLetHereDocStop Special + hi def link vimLetRegister Special hi def link vimLineComment vimComment hi def link vim9LineComment vimComment - hi def link vimMapBang vimCommand + hi def link vimMapBang vimBang hi def link vimMapModKey vimFuncSID hi def link vimMapMod vimBracket hi def link vimMap vimCommand hi def link vimMark Number hi def link vimMarkNumber vimNumber + hi def link vimMenuBang vimBang hi def link vimMenuMod vimMapMod hi def link vimMenuNameMore vimMenuName hi def link vimMenuName PreProc @@ -957,6 +1047,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimStringCont vimString hi def link vimString String hi def link vimStringEnd vimString + hi def link vimStringInterpolationBrace vimEscape hi def link vimSubst1 vimSubst hi def link vimSubstDelim Delimiter hi def link vimSubstFlags Special @@ -973,8 +1064,12 @@ if !exists("skip_vim_syntax_inits") hi def link vimSyncNone Type hi def link vimSynContains vimSynOption hi def link vimSynError Error + hi def link vimSynFoldMethodError Error + hi def link vimSynFoldMethod Type hi def link vimSynKeyContainedin vimSynContains hi def link vimSynKeyOpt vimSynOption + hi def link vimSynCchar vimSynOption + hi def link vimSynCcharValue Character hi def link vimSynMtchGrp vimSynOption hi def link vimSynMtchOpt vimSynOption hi def link vimSynNextgroup vimSynOption @@ -988,6 +1083,8 @@ if !exists("skip_vim_syntax_inits") hi def link vimSynType vimSpecial hi def link vimTodo Todo hi def link vimType Type + hi def link vimUnlet vimCommand + hi def link vimUnletBang vimBang hi def link vimUnmap vimMap hi def link vimUserAttrbCmpltFunc Special hi def link vimUserAttrbCmplt vimSpecial @@ -1002,8 +1099,6 @@ if !exists("skip_vim_syntax_inits") hi def link nvimAutoEvent vimAutoEvent hi def link nvimHLGroup vimHLGroup - hi def link nvimMap vimMap - hi def link nvimUnmap vimUnmap endif " Current Syntax Variable: {{{2 diff --git a/runtime/syntax/xmath.vim b/runtime/syntax/xmath.vim index 37ae951112..466c1159c7 100644 --- a/runtime/syntax/xmath.vim +++ b/runtime/syntax/xmath.vim @@ -1,9 +1,11 @@ " Vim syntax file " Language: xmath (a simulation tool) -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Aug 31, 2016 +" 2024 Feb 19 by Vim Project (announce adoption) " Version: 10 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XMATH +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XMATH " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded diff --git a/runtime/syntax/xxd.vim b/runtime/syntax/xxd.vim index 2f90b6b0bd..1c06b4296f 100644 --- a/runtime/syntax/xxd.vim +++ b/runtime/syntax/xxd.vim @@ -1,10 +1,12 @@ " Vim syntax file " Language: bin using xxd -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E. Campbell " Last Change: Aug 31, 2016 " Version: 11 +" 2024 Feb 19 by Vim Project (announce adoption) " Notes: use :help xxd to see how to invoke it -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XXD +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XXD " quit when a syntax file was already loaded if exists("b:current_syntax") diff --git a/runtime/syntax/yacc.vim b/runtime/syntax/yacc.vim index 459873e3dc..79dcf0eccc 100644 --- a/runtime/syntax/yacc.vim +++ b/runtime/syntax/yacc.vim @@ -1,9 +1,10 @@ " Vim syntax file " Language: Yacc -" Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> +" Former Maintainer: Charles E. Campbell " Last Change: Mar 25, 2019 " Version: 17 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_YACC +" 2024 Feb 19 by Vim Project (announce adoption) +" Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_YACC " " Options: {{{1 " g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C |