diff --git a/README.md b/README.md index 113ce5a60..880d88e63 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ A collection of language packs for Vim. > One to rule them all, one to find them, one to bring them all and in the darkness bind them. - It **won't affect your startup time**, as scripts are loaded only on demand\*. -- It **installs and updates 120+ times faster** than the 598 packages it consists of. +- It **installs and updates 120+ times faster** than the 599 packages it consists of. - It is also more secure (scripts loaded for every filetype are generated by vim-polyglot) - Best syntax and indentation support (no other features). Hand-selected language packs. - Automatically detects indentation (includes performance-optimized version of [vim-sleuth](https://github.com/tpope/vim-sleuth), can be disabled) @@ -58,7 +58,7 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr - [bicep](https://github.com/carlsmedstad/vim-bicep) (Syntax highlighting for bicep files) - [blade](https://github.com/jwalton512/vim-blade) (Blade syntax highlighting for blade and blade.php files) - [brewfile](https://github.com/bfontaine/Brewfile.vim) -- [c/c++](https://github.com/vim-jp/vim-cpp) (C++ and C syntax highlighting for cpp, c++, cc, cp, cxx and 18 more files) +- [c/c++](https://github.com/vim-jp/vim-cpp) (C++ and C syntax highlighting for cpp, c++, cc, cp, cppm and 20 more files) - [caddyfile](https://github.com/isobit/vim-caddyfile) - [carp](https://github.com/hellerve/carp-vim) (Syntax highlighting for carp files) - [cjsx](https://github.com/mtscout6/vim-cjsx) @@ -80,7 +80,7 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr - [elm](https://github.com/andys8/vim-elm-syntax) (Elm syntax highlighting for elm files) - [emberscript](https://github.com/yalesov/vim-ember-script) (EmberScript syntax highlighting for em and emberscript files) - [emblem](https://github.com/yalesov/vim-emblem) (Syntax highlighting for emblem and em files) -- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (Erlang syntax highlighting for erl, app.src, es, escript, hrl, xrl, yrl, app and yaws files) +- [erlang](https://github.com/vim-erlang/vim-erlang-runtime) (Erlang syntax highlighting for erl, app, app.src, es, escript, hrl, xrl, yrl and yaws files) - [fennel](https://github.com/bakpakin/fennel.vim) (Syntax highlighting for fnl files) - [ferm](https://github.com/vim-scripts/ferm.vim) (Syntax highlighting for ferm files) - [fish](https://github.com/blankname/vim-fish) (fish syntax highlighting for fish files) @@ -88,8 +88,8 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr - [fsharp](https://github.com/ionide/Ionide-vim) (F# syntax highlighting for fs, fsi and fsx files) - [git](https://github.com/tpope/vim-git) (Git Config syntax highlighting for gitconfig files) - [gitignore](https://github.com/SirJson/fzf-gitignore) -- [gleam](https://github.com/gleam-lang/gleam.vim) (Syntax highlighting for gleam files) -- [glsl](https://github.com/tikhomirov/vim-glsl) (GLSL syntax highlighting for glsl, fp, frag, frg, fs and 18 more files) +- [gleam](https://github.com/gleam-lang/gleam.vim/tree/main) (Syntax highlighting for gleam files) +- [glsl](https://github.com/tikhomirov/vim-glsl) (GLSL syntax highlighting for glsl, fp, frag, frg, fs and 19 more files) - [gmpl](https://github.com/maelvalais/gmpl.vim) (Syntax highlighting for mod files) - [gnuplot](https://github.com/vim-scripts/gnuplot-syntax-highlighting) (Gnuplot syntax highlighting for gp, gnu, gnuplot, p, plot, plt and gpi files) - [go](https://github.com/fatih/vim-go) (Go syntax highlighting for go and tmpl files) @@ -114,13 +114,13 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr - [jenkins](https://github.com/martinda/Jenkinsfile-vim-syntax) (Syntax highlighting for jenkinsfile and Jenkinsfile files) - [jq](https://github.com/vito-c/jq.vim) (JSONiq syntax highlighting for jq files) - [json5](https://github.com/GutenYe/json5.vim) (JSON5 syntax highlighting for json5 files) -- [json](https://github.com/elzr/vim-json) (JSON syntax highlighting for json, 4DForm, 4DProject, avsc, geojson and 15 more files) +- [json](https://github.com/elzr/vim-json) (JSON syntax highlighting for json, 4DForm, 4DProject, avsc, geojson and 16 more files) - [jsonc](https://github.com/neoclide/jsonc.vim) (Syntax highlighting for cjson and jsonc files) - [jsonnet](https://github.com/google/vim-jsonnet) (Jsonnet syntax highlighting for jsonnet and libsonnet files) - [jst](https://github.com/briancollins/vim-jst) (EJS syntax highlighting for ejs, ect, ejs.t and jst files) - [jsx](https://github.com/MaxMEllon/vim-jsx-pretty) (Syntax highlighting for jsx files) - [julia](https://github.com/JuliaEditorSupport/julia-vim) (Julia syntax highlighting for jl files) -- [just](https://github.com/NoahTheDuke/vim-just) (Syntax highlighting for just files) +- [just](https://github.com/NoahTheDuke/vim-just/tree/main) (Syntax highlighting for just files) - [kotlin](https://github.com/udalov/kotlin-vim) (Kotlin syntax highlighting for kt, ktm and kts files) - [ledger](https://github.com/ledger/vim-ledger) (Syntax highlighting for ldg, ledger and journal files) - [lilypond](https://github.com/anowlcalledjosh/vim-lilypond/tree/main) (LilyPond syntax highlighting for ly and ily files) @@ -152,15 +152,16 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr - [pgsql](https://github.com/lifepillar/pgsql.vim) (PLpgSQL syntax highlighting for pgsql files) - [php](https://github.com/StanAngeloff/php.vim) (PHP syntax highlighting for php, aw, ctp, fcgi, inc and 7 more files) - [plantuml](https://github.com/aklt/plantuml-syntax) (PlantUML syntax highlighting for puml, iuml, plantuml, uml and pu files) -- [pony](https://github.com/jakwings/vim-pony) (Pony syntax highlighting for pony files) +- [pony](https://github.com/dleonard0/pony-vim-syntax) (Pony syntax highlighting for pony files) - [powershell](https://github.com/PProvost/vim-ps1) (PowerShell syntax highlighting for ps1, psd1, psm1, pssc and ps1xml files) +- [prisma](https://github.com/prisma/vim-prisma) (Prisma syntax highlighting for prisma files) - [protobuf](https://github.com/uarun/vim-protobuf) (Protocol Buffer syntax highlighting for proto files) - [pug](https://github.com/digitaltoad/vim-pug) (Pug syntax highlighting for jade and pug files) - [puppet](https://github.com/rodjek/vim-puppet) (Puppet syntax highlighting for pp and epp files) - [purescript](https://github.com/purescript-contrib/purescript-vim) (PureScript syntax highlighting for purs files) - [python-compiler](https://github.com/aliev/vim-compiler-python) - [python-indent](https://github.com/Vimjas/vim-python-pep8-indent) -- [python](https://github.com/vim-python/python-syntax) (Python syntax highlighting for py, cgi, fcgi, gyp, gypi and 14 more files) +- [python](https://github.com/vim-python/python-syntax) (Python syntax highlighting for py, cgi, fcgi, gyp, gypi and 13 more files) - [qmake](https://github.com/artoj/qmake-syntax-vim) (QMake syntax highlighting for pro and pri files) - [qml](https://github.com/peterhoeg/vim-qml) (QML syntax highlighting for qml and qbs files) - [r-lang](https://github.com/vim-scripts/R.vim) (R syntax highlighting for r, rsx, s, S and rd files) @@ -206,11 +207,11 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr - [velocity](https://github.com/lepture/vim-velocity) (Syntax highlighting for vm files) - [vue](https://github.com/posva/vim-vue) (Vue syntax highlighting for vue and wpy files) - [xdc](https://github.com/amal-khailtash/vim-xdc-syntax) (Syntax highlighting for xdc files) -- [xml](https://github.com/amadeus/vim-xml) (XML syntax highlighting for xml, adml, admx, ant, axaml and 97 more files) +- [xml](https://github.com/amadeus/vim-xml) (XML syntax highlighting for xml, adml, admx, ant, axaml and 100 more files) - [xsl](https://github.com/vim-scripts/XSLT-syntax) (XSLT syntax highlighting for xslt and xsl files) - [yard](https://github.com/noprompt/vim-yardoc) - [zephir](https://github.com/xwsoul/vim-zephir) (Zephir syntax highlighting for zep files) -- [zig](https://github.com/ziglang/zig.vim) (Zig syntax highlighting for zir, zig and zir files) +- [zig](https://github.com/ziglang/zig.vim) (Zig syntax highlighting for zir, zig, zig.zon and zir files) - [zinit](https://github.com/zdharma-continuum/zinit-vim-syntax/tree/main) diff --git a/after/ftplugin/just.vim b/after/ftplugin/just.vim deleted file mode 100644 index 7b7fdcd3e..000000000 --- a/after/ftplugin/just.vim +++ /dev/null @@ -1,11 +0,0 @@ -if polyglot#init#is_disabled(expand(':p'), 'just', 'after/ftplugin/just.vim') - finish -endif - -" Vim ftplugin file -" Language: Justfile -" Maintainer: Noah Bogart -" URL: https://github.com/NoahTheDuke/vim-just.git -" Last Change: 2021 May 19 - -setlocal iskeyword+=- diff --git a/after/indent/javascript-2.vim b/after/indent/javascript-2.vim index 6037664a2..35cfa9a10 100644 --- a/after/indent/javascript-2.vim +++ b/after/indent/javascript-2.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'after/indent/javas finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/after/indent/php.vim b/after/indent/php.vim index 7ed602f8d..3124ded6b 100644 --- a/after/indent/php.vim +++ b/after/indent/php.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'after/indent/php.v finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/after/indent/typescript.vim b/after/indent/typescript.vim index 08c1e9915..63364f749 100644 --- a/after/indent/typescript.vim +++ b/after/indent/typescript.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'after/indent/types finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/after/syntax/c.vim b/after/syntax/c.vim index 0196b3d49..adf1c858d 100644 --- a/after/syntax/c.vim +++ b/after/syntax/c.vim @@ -8,7 +8,7 @@ endif " Original Author: Mikhail Wolfson " Maintainer: bfrg " Website: https://github.com/bfrg/vim-cpp-modern -" Last Change: Jul 24, 2021 +" Last Change: Jul 9, 2024 " " This syntax file is based on: " https://github.com/octol/vim-cpp-enhanced-highlight @@ -21,8 +21,10 @@ syn keyword cTodo contained BUG NOTE " Highlight function names if get(g:, 'cpp_function_highlight', 1) - syn match cUserFunction "\<\h\w*\>\(\s\|\n\)*("me=e-1 contains=cParen,cCppParen + syn match cUserFunction "\<\h\w*\ze\_s\{-}(\%(\*\h\w*)\_s\{-}(\)\@!" + syn match cUserFunctionPointer "\%((\s*\*\s*\)\@6<=\h\w*\ze\s*)\_s\{-}(.*)" hi def link cUserFunction Function + hi def link cUserFunctionPointer Function endif diff --git a/after/syntax/cpp.vim b/after/syntax/cpp.vim index 2e8f5ac6e..69a014718 100644 --- a/after/syntax/cpp.vim +++ b/after/syntax/cpp.vim @@ -8,7 +8,7 @@ endif " Original Author: Jon Haggblad " Maintainer: bfrg " Website: https://github.com/bfrg/vim-cpp-modern -" Last Change: Sep 15, 2022 +" Last Change: Oct 13, 2023 " " This syntax file is based on: " https://github.com/octol/vim-cpp-enhanced-highlight @@ -177,9 +177,9 @@ endif " C++23 extensions {{{1 if !exists('cpp_no_cpp23') - syntax keyword cppSTLtype basic_stacktrace stacktrace_entry is_scoped_enum - syntax keyword cppSTLtypedef stacktrace - syntax keyword cppSTLbool is_scoped_enum_v + syntax keyword cppSTLtype basic_stacktrace stacktrace_entry is_scoped_enum mdspan extents default_accessor layout_left layout_right layout_stride flat_set flat_map flat_multiset flat_multimap is_implicit_lifetime reference_constructs_from_temporary reference_converts_from_temporary + syntax keyword cppSTLtypedef stacktrace dextents + syntax keyword cppSTLbool is_implicit_lifetime_v is_scoped_enum_v reference_constructs_from_temporary_v reference_converts_from_temporary_v syntax keyword cppSTLfunction invoke_r syntax keyword cppSTLtype expected unexpected unexpect_t bad_expected_access syntax keyword cppSTLvariable unexpect diff --git a/after/syntax/javascript/graphql.vim b/after/syntax/javascript/graphql.vim index 459f79f7c..e897e5d88 100644 --- a/after/syntax/javascript/graphql.vim +++ b/after/syntax/javascript/graphql.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'after/syntax/javas finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/after/syntax/php/graphql.vim b/after/syntax/php/graphql.vim index 958a3753d..d82c00b38 100644 --- a/after/syntax/php/graphql.vim +++ b/after/syntax/php/graphql.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'after/syntax/php/g finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/after/syntax/reason/graphql.vim b/after/syntax/reason/graphql.vim index 47a63e624..d76f3cf26 100644 --- a/after/syntax/reason/graphql.vim +++ b/after/syntax/reason/graphql.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'after/syntax/reaso finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/after/syntax/rescript/graphql.vim b/after/syntax/rescript/graphql.vim index 1e5ed04ca..5c5f5a54d 100644 --- a/after/syntax/rescript/graphql.vim +++ b/after/syntax/rescript/graphql.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'after/syntax/rescr finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/after/syntax/typescript/graphql.vim b/after/syntax/typescript/graphql.vim index 1363f7a5e..5bc47af10 100644 --- a/after/syntax/typescript/graphql.vim +++ b/after/syntax/typescript/graphql.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'after/syntax/types finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/autoload/coc/source/requirements.vim b/autoload/coc/source/requirements.vim deleted file mode 100644 index c2c64dbd0..000000000 --- a/autoload/coc/source/requirements.vim +++ /dev/null @@ -1,24 +0,0 @@ -if polyglot#init#is_disabled(expand(':p'), 'requirements', 'autoload/coc/source/requirements.vim') - finish -endif - -"" -" https://github.com/neoclide/coc.nvim/wiki/Create-custom-source -function! coc#source#requirements#init() abort - return { - \ 'shortcut': 'pip', - \ 'priority': 9, - \ 'filetypes': ['requirements'], - \ } -endfunction - -"" -" https://github.com/neoclide/coc.nvim/wiki/Create-custom-source -" -" Completion pip option and PYPI package names. -" Note: completion PYPI package names need install pip-cache from PYPI, -" and run `pip-cache update` first to generate cache. -function! coc#source#requirements#complete(opt, cb) abort - call a:cb(g:requirements#items) -endfunction -" vim: et sw=4 ts=4 sts=4: diff --git a/autoload/csv.vim b/autoload/csv.vim index 4111f6ed8..bf95f773b 100644 --- a/autoload/csv.vim +++ b/autoload/csv.vim @@ -224,11 +224,11 @@ endfu fu! csv#RemoveAutoHighlight() "{{{3 exe "aug CSV_HI".bufnr('') - exe "au! CursorMoved " + exe "au! " aug end exe "aug! CSV_HI".bufnr('') " Remove any existing highlighting - HiColumn! + call csv#HiCol('', 1) endfu fu! csv#DoAutoCommands() "{{{3 @@ -246,9 +246,8 @@ fu! csv#DoAutoCommands() "{{{3 endif " undo autocommand: let b:undo_ftplugin .= '| exe "sil! au! CSV_HI'.bufnr('').' CursorMoved "' - let b:undo_ftplugin .= '| exe "sil! aug! CSV_HI'.bufnr('').'"' + let b:undo_ftplugin .= '| call csv#RemoveAutoHighlight()' let b:undo_ftplugin = 'exe "sil! HiColumn!" |' . b:undo_ftplugin - if has("gui_running") && !exists("#CSV_Menu#FileType") augroup CSV_Menu au! @@ -443,10 +442,14 @@ fu! csv#HiCol(colnr, bang) "{{{3 if exists("s:matchid") " ignore errors, that come from already deleted matches sil! call matchdelete(s:matchid) + if a:bang + unlet! s:matchid + return + endif endif " Additionally, filter all matches, that could have been used earlier let matchlist=getmatches() - call filter(matchlist, 'v:val["group"] !~ s:hiGroup') + call filter(matchlist, 'v:val["group"] !~? s:hiGroup') call setmatches(matchlist) if a:bang return @@ -455,6 +458,10 @@ fu! csv#HiCol(colnr, bang) "{{{3 elseif !a:bang exe ":2match " . s:hiGroup . ' /' . pat . '/' endif + " Remove Highlighting once switching away from the buffer + exe "aug CSV_HI".bufnr('') + exe "au BufWinLeave call csv#RemoveAutoHighlight()" + aug end endfu fu! csv#GetDelimiter(first, last, ...) "{{{3 " This depends on the locale. Hopefully it works @@ -482,12 +489,16 @@ fu! csv#GetDelimiter(first, last, ...) "{{{3 " :silent :s does not work with lazyredraw let _lz = &lz set nolz + " substitute without output when cmdheight=0 + let _cmdheight = &cmdheight + set cmdheight=1 for i in values(Delim) redir => temp[i] " use very non-magic exe ":silent! :". first. ",". last. 's/\V' . i . "/&/nge" redir END endfor + let &cmdheight = _cmdheight let &lz = _lz let Delim = map(temp, 'matchstr(substitute(v:val, "\n", "", ""), "^\\s*\\d\\+")') let Delim = filter(temp, 'v:val=~''\d''') @@ -779,7 +790,11 @@ fu! csv#CalculateColumnWidth(row, silent) "{{{3 " does not work with fixed width columns " row for the row for which to calculate the width let b:col_width=[] + let vts_save="" if has( 'vartabs' ) && b:delimiter == "\t" + if &l:vts + let vts_save=&vts + endif setlocal vts= endif try @@ -800,6 +815,9 @@ fu! csv#CalculateColumnWidth(row, silent) "{{{3 " delete buffer content in variable b:csv_list, " this was only necessary for calculating the max width unlet! b:csv_list s:columnize_count s:decimal_column + if vts_save + let &l:vts=vts_save + endif endfu fu! csv#Columnize(field) "{{{3 " Internal function, not called from external, @@ -867,7 +885,7 @@ fu! csv#Columnize(field) "{{{3 if get(s:decimal_column, colnr, 0) == 0 call csv#CheckHeaderLine() call csv#NumberFormat() - let data = csv#CopyCol('', colnr+1, '')[s:csv_fold_headerline : -1] + let data = csv#CopyCol('', colnr+1, '', 0)[s:csv_fold_headerline : -1] let pat1 = escape(s:nr_format[1], '.').'\zs[^'.s:nr_format[1].']*\ze'. \ (has_delimiter ? b:delimiter : '').'$' let pat2 = '\d\+\ze\%(\%('.escape(s:nr_format[1], '.'). '\d\+\)\|'. @@ -1001,9 +1019,9 @@ fu! csv#SplitHeaderLine(lines, bang, hor) "{{{3 setl scrollopt=ver scrollbind cursorbind noa 0 if a:lines[-1:] is? '!' - let a=csv#CopyCol('',a:lines,'') + let a=csv#CopyCol('',a:lines,'', 0) else - let a=csv#CopyCol('',1, a:lines-1) + let a=csv#CopyCol('',1, a:lines-1, 0) endif " Does it make sense to use the preview window? "vert sil! pedit |wincmd w | enew! @@ -1240,7 +1258,7 @@ fu! csv#Sort(bang, line1, line2, colnr) range "{{{3 \' r'. flag. ' /' . pat . '/' call winrestview(wsv) endfun -fu! csv#CopyCol(reg, col, cnt) "{{{3 +fu! csv#CopyCol(reg, col, cnt, bang) "{{{3 " Return Specified Column into register reg let col = a:col == "0" ? csv#WColumn() : a:col+0 let mcol = csv#MaxColumns() @@ -1254,11 +1272,18 @@ fu! csv#CopyCol(reg, col, cnt) "{{{3 let cnt_cols = col + a:cnt - 1 endif let a = [] + let first = 1 + call csv#CheckHeaderLine() + if a:bang && first <= s:csv_fold_headerline + " don't take the header line into consideration + let first = s:csv_fold_headerline + 1 + endif + " Don't get lines, that are currently filtered away if !exists("b:csv_filter") || empty(b:csv_filter) - let a=getline(1, '$') + let a=getline(first, '$') else - for line in range(1, line('$')) + for line in range(first, line('$')) if foldlevel(line) continue else @@ -1686,7 +1711,7 @@ fu! csv#DoForEachColumn(start, stop, bang) range "{{{3 endif for item in range(a:start, a:stop, 1) - if foldlevel(line) + if foldlevel(item) " Filter out folded lines (from dynamic filter) continue endif @@ -1719,7 +1744,7 @@ fu! csv#DoForEachColumn(start, stop, bang) range "{{{3 endfor endif for j in range(1, columns, 1) - let t=substitute(t, '%s', fields[j-1], '') + let t=substitute(t, '%s', get(fields, j-1, ''), '') endfor call add(result, t) endfor @@ -1738,7 +1763,7 @@ fu! csv#PrepareDoForEachColumn(start, stop, bang) range"{{{3 let post = exists("g:csv_post_convert") ? g:csv_post_convert : '' let g:csv_post_convert=input('Post convert text: ', post) let convert = exists("g:csv_convert") ? g:csv_convert : '' - let g:csv_convert=input("Converted text, use %s for column input:\n", convert) + let g:csv_convert=input("How to convert data (use %s for column input):\n", convert) call csv#DoForEachColumn(a:start, a:stop, a:bang) endfun fu! csv#EscapeValue(val) "{{{3 @@ -1986,7 +2011,7 @@ fu! csv#AnalyzeColumn(...) "{{{3 " Initialize csv#fold_headerline call csv#CheckHeaderLine() - let data = csv#CopyCol('', colnr, '')[s:csv_fold_headerline : -1] + let data = csv#CopyCol('', colnr, '', 0)[s:csv_fold_headerline : -1] let qty = len(data) let res = {} for item in data @@ -2259,100 +2284,45 @@ fu! csv#CSVMappings() "{{{3 endif endfu fu! csv#CommandDefinitions() "{{{3 - call csv#LocalCmd("WhatColumn", ':echo csv#WColumn(0)', - \ '-bang') - call csv#LocalCmd("NrColumns", ':call csv#NrColumns()', '-bang') - call csv#LocalCmd("HiColumn", ':call csv#HiCol(,0)', - \ '-bang -nargs=?') - call csv#LocalCmd("SearchInColumn", - \ ':call csv#SearchColumn()', '-nargs=*') - call csv#LocalCmd("DeleteColumn", ':call csv#DeleteColumn()', - \ '-nargs=? -complete=custom,csv#SortComplete') - call csv#LocalCmd("ArrangeColumn", - \ ':call csv#ArrangeCol(, , 0, -1, )', - \ '-range -bang -bar -nargs=?') - call csv#LocalCmd("SmplVarCol", - \ ':echo csv#EvalColumn(, "csv#SmplVarianceColumn", ,)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("PopVarCol", - \ ':echo csv#EvalColumn(, "csv#PopVarianceColumn", ,)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("SmplStdCol", - \ ':echo csv#EvalColumn(, "csv#SmplStdDevColumn", ,)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("PopStdCol", - \ ':echo csv#EvalColumn(, "csv#PopStdDevColumn", ,)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("UnArrangeColumn", - \':call csv#PrepUnArrangeCol(, )', - \ '-bar -range') - call csv#LocalCmd("CSVInit", ':call csv#Init(,,0)', - \ '-bang -range=%') - call csv#LocalCmd('Header', - \ ':call csv#SplitHeaderLine(,0,1)', - \ '-nargs=? -bang') - call csv#LocalCmd('VHeader', - \ ':call csv#SplitHeaderLine(,0,0)', - \ '-nargs=? -bang') - call csv#LocalCmd("HeaderToggle", - \ ':call csv#SplitHeaderToggle(1)', '') - call csv#LocalCmd("VHeaderToggle", - \ ':call csv#SplitHeaderToggle(0)', '') - call csv#LocalCmd("Sort", - \ ':call csv#Sort(0, ,,)', - \ '-nargs=* -bang -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("Column", - \ ':call csv#CopyCol(empty()?''"'':,,)', - \ '-count -register -nargs=?') - call csv#LocalCmd("MoveColumn", - \ ':call csv#MoveColumn(,,)', - \ '-range=% -nargs=* -complete=custom,csv#SortComplete') - call csv#LocalCmd("SumCol", - \ ':echo csv#EvalColumn(, "csv#SumColumn", ,)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("MaxCol", - \ ':echo csv#EvalColumn(, "csv#MaxColumn", ,, 1)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("MinCol", - \ ':echo csv#EvalColumn(, "csv#MaxColumn", ,, 0)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("CountCol", - \ ':echo csv#EvalColumn(, "csv#CountColumn", ,)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd("AvgCol", - \ ':echo csv#EvalColumn(, "csv#AvgColumn", ,)', - \ '-nargs=? -range=% -complete=custom,csv#SortComplete') - call csv#LocalCmd('SumRow', ':call csv#SumCSVRow(, )', - \ '-nargs=? -range') - call csv#LocalCmd("ConvertData", - \ ':call csv#PrepareDoForEachColumn(,,0)', - \ '-bang -nargs=? -range=%') - call csv#LocalCmd("Filters", ':call csv#OutputFilters(0)', - \ '-nargs=0 -bang') - call csv#LocalCmd("Analyze", ':call csv#AnalyzeColumn()', - \ '-nargs=*' ) - call csv#LocalCmd("VertFold", ':call csv#Vertfold(0,)', - \ '-bang -nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("AddColumn", ':call csv#AddColumn(,,)', '-range=% -nargs=* -complete=custom,csv#SortComplete') + call csv#LocalCmd("Analyze", ':call csv#AnalyzeColumn()', '-nargs=*' ) + call csv#LocalCmd("ArrangeColumn", ':call csv#ArrangeCol(, , 0, -1, )', '-range -bang -bar -nargs=?') + call csv#LocalCmd("AvgCol", ':echo csv#EvalColumn(, "csv#AvgColumn", ,)', '-nargs=? -range=% -complete=custom,csv#SortComplete') call csv#LocalCmd("CSVFixed", ':call csv#InitCSVFixedWidth()', '') - call csv#LocalCmd("NewRecord", ':call csv#NewRecord(, - \ , )', '-nargs=? -range') - call csv#LocalCmd("NewDelimiter", ':call csv#NewDelimiter(, 1, line(''$''))', - \ '-nargs=1') - call csv#LocalCmd("Duplicates", ':call csv#CheckDuplicates()', - \ '-nargs=? -complete=custom,csv#CompleteColumnNr') - call csv#LocalCmd('Transpose', ':call csv#Transpose(, )', - \ '-range=%') - call csv#LocalCmd('CSVTabularize', ':call csv#Tabularize(0,,)', - \ '-bang -range=%') - call csv#LocalCmd("AddColumn", - \ ':call csv#AddColumn(,,)', - \ '-range=% -nargs=* -complete=custom,csv#SortComplete') - call csv#LocalCmd("DupColumn", - \ ':call csv#DupColumn(,,)', - \ '-range=% -nargs=* -complete=custom,csv#SortComplete') - call csv#LocalCmd('Substitute', ':call csv#SubstituteInColumn(,,)', - \ '-nargs=1 -range=%') + call csv#LocalCmd("CSVInit", ':call csv#Init(,,0)', '-bang -range=%') + call csv#LocalCmd("Column", ':call csv#CopyCol(empty()?''"'':,,, 0)', '-bang -count -register -nargs=?') + call csv#LocalCmd("ConvertData", ':call csv#PrepareDoForEachColumn(,,0)', '-bang -nargs=0 -range=%') + call csv#LocalCmd("CountCol", ':echo csv#EvalColumn(, "csv#CountColumn", ,)', '-nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("DeleteColumn", ':call csv#DeleteColumn()', '-nargs=? -complete=custom,csv#SortComplete') + call csv#LocalCmd("DupColumn", ':call csv#DupColumn(,,)', '-range=% -nargs=* -complete=custom,csv#SortComplete') + call csv#LocalCmd("Duplicates", ':call csv#CheckDuplicates()', '-nargs=? -complete=custom,csv#CompleteColumnNr') + call csv#LocalCmd("Filters", ':call csv#OutputFilters(0)', '-nargs=0 -bang') + call csv#LocalCmd("HeaderToggle", ':call csv#SplitHeaderToggle(1)', '') + call csv#LocalCmd("HiColumn", ':call csv#HiCol(,0)', '-bang -nargs=?') + call csv#LocalCmd("MaxCol", ':echo csv#EvalColumn(, "csv#MaxColumn", ,, 1)', '-nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("MinCol", ':echo csv#EvalColumn(, "csv#MaxColumn", ,, 0)', '-nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("MoveColumn", ':call csv#MoveColumn(,,)', '-range=% -nargs=* -complete=custom,csv#SortComplete') + call csv#LocalCmd("NewDelimiter", ':call csv#NewDelimiter(, 1, line(''$''))', '-nargs=1') + call csv#LocalCmd("NewRecord", ':call csv#NewRecord(, , )', '-nargs=? -range') + call csv#LocalCmd("NrColumns", ':call csv#NrColumns()', '-bang') + call csv#LocalCmd("PopStdCol", ':echo csv#EvalColumn(, "csv#PopStdDevColumn", ,)', '-nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("PopVarCol", ':echo csv#EvalColumn(, "csv#PopVarianceColumn", ,)', '-nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("SearchInColumn", ':call csv#SearchColumn()', '-nargs=*') + call csv#LocalCmd("SmplStdCol", ':echo csv#EvalColumn(, "csv#SmplStdDevColumn", ,)', '-nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("SmplVarCol", ':echo csv#EvalColumn(, "csv#SmplVarianceColumn", ,)', '-nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("Sort", ':call csv#Sort(0, ,,)', '-nargs=* -bang -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("SumCol", ':echo csv#EvalColumn(, "csv#SumColumn", ,)', '-nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("UnArrangeColumn", ':call csv#PrepUnArrangeCol(, )', '-bar -range') + call csv#LocalCmd("VHeaderToggle", ':call csv#SplitHeaderToggle(0)', '') + call csv#LocalCmd("VertFold", ':call csv#Vertfold(0,)', '-bang -nargs=? -range=% -complete=custom,csv#SortComplete') + call csv#LocalCmd("WhatColumn", ':echo csv#WColumn(0)', '-bang') + call csv#LocalCmd('CSVTabularize', ':call csv#Tabularize(0,,)', '-bang -range=%') call csv#LocalCmd('ColumnWidth', ':call csv#ColumnWidth()', '') + call csv#LocalCmd('Header', ':call csv#SplitHeaderLine(,0,1)', '-nargs=? -bang') + call csv#LocalCmd('Substitute', ':call csv#SubstituteInColumn(,,)', '-nargs=1 -range=%') + call csv#LocalCmd('SumRow', ':call csv#SumCSVRow(, )', '-nargs=? -range') + call csv#LocalCmd('Transpose', ':call csv#Transpose(, )', '-range=%') + call csv#LocalCmd('VHeader', ':call csv#SplitHeaderLine(,0,0)', '-nargs=? -bang') endfu fu! csv#ColumnWidth() let w=CSVWidth() @@ -2636,21 +2606,21 @@ fu! csv#Tabularize(bang, first, last) "{{{3 endif let _c = winsaveview() " Table delimiter definition "{{{4 - if !exists("s:td") - let s:td = { - \ 'hbar': (&enc =~# 'utf-8' ? '─' : '-'), - \ 'vbar': (&enc =~# 'utf-8' ? '│' : '|'), - \ 'scol': (&enc =~# 'utf-8' ? '├' : '|'), - \ 'ecol': (&enc =~# 'utf-8' ? '┤' : '|'), - \ 'ltop': (&enc =~# 'utf-8' ? '┌' : '+'), - \ 'rtop': (&enc =~# 'utf-8' ? '┐' : '+'), - \ 'lbot': (&enc =~# 'utf-8' ? '└' : '+'), - \ 'rbot': (&enc =~# 'utf-8' ? '┘' : '+'), - \ 'cros': (&enc =~# 'utf-8' ? '┼' : '+'), - \ 'dhor': (&enc =~# 'utf-8' ? '┬' : '-'), - \ 'uhor': (&enc =~# 'utf-8' ? '┴' : '-') + let use_unicode = &enc =~# 'utf-8' && get(g:, 'csv_table_use_ascii', 0) == 0 + let s:td = { + \ 'hbar': (use_unicode ? '─' : '-'), + \ 'vbar': (use_unicode ? '│' : '|'), + \ 'scol': (use_unicode ? '├' : '|'), + \ 'ecol': (use_unicode ? '┤' : '|'), + \ 'ltop': (use_unicode ? '┌' : '+'), + \ 'rtop': (use_unicode ? '┐' : '+'), + \ 'lbot': (use_unicode ? '└' : '+'), + \ 'rbot': (use_unicode ? '┘' : '+'), + \ 'cros': (use_unicode ? '┼' : '+'), + \ 'dhor': (use_unicode ? '┬' : '-'), + \ 'uhor': (use_unicode ? '┴' : '-') \ } - endif "}}}4 + "}}}4 if match(getline(a:first), '^'.s:td.ltop) > -1 " Already tabularized, done call csv#Warn("Looks already Tabularized, aborting!") @@ -2994,7 +2964,7 @@ fu! csv#EvalColumn(nr, func, first, last, ...) range "{{{3 let stop += s:csv_fold_headerline endif - let column = csv#CopyCol('', col, '')[start : stop] + let column = csv#CopyCol('', col, '', 0)[start : stop] let column = csv#GetCells(column) " Delete empty values " Leave this up to the function that does something @@ -3113,7 +3083,7 @@ fu! CSVField(x, y, ...) "{{{3 let orig = !empty(a:0) let y = (y < 0 ? 0 : y) let x = (x > (csv#MaxColumns()) ? (csv#MaxColumns()) : x) - let col = csv#CopyCol('',x,'') + let col = csv#CopyCol('',x,'',0) if !orig " remove leading and trainling whitespace and the delimiter return matchstr(col[y], '^\s*\zs.\{-}\ze\s*'.b:delimiter.'\?$') diff --git a/autoload/elixir/indent.vim b/autoload/elixir/indent.vim index ccf388b73..b66b3e17a 100644 --- a/autoload/elixir/indent.vim +++ b/autoload/elixir/indent.vim @@ -72,7 +72,7 @@ endfunction function! s:in_embedded_view() let groups = map(synstack(line('.'), col('.')), "synIDattr(v:val, 'name')") - for group in ['elixirPhoenixESigil', 'elixirLiveViewSigil', 'elixirSurfaceSigil'] + for group in ['elixirPhoenixESigil', 'elixirLiveViewSigil', 'elixirSurfaceSigil', 'elixirHeexSigil'] if index(groups, group) >= 0 return 1 endif @@ -383,7 +383,7 @@ endfunction " function, etc... so we need to first figure out what the innermost structure " is then forward execution to the proper handler function! elixir#indent#handle_inside_block(context) - let start_pattern = '\C\%(\\|\\|\\|\\|\\|\\|\\|{\|\[\|(\)' + let start_pattern = '\C\%(\\|\\|\\|\\|\\|\\|\\|\\|{\|\[\|(\)' let end_pattern = '\C\%(\\|\]\|}\|)\)' " hack - handle do: better let block_info = searchpairpos(start_pattern, '', end_pattern, 'bnW', "line('.') == " . line('.') . " || elixir#indent#searchpair_back_skip() || getline(line('.')) =~ 'do:'", max([0, a:context.lnum - g:elixir_indent_max_lookbehind])) @@ -398,6 +398,7 @@ function! elixir#indent#handle_inside_block(context) let never_match = '' let config = { \'f': {'aligned_clauses': s:keyword('end'), 'pattern_match_clauses': never_match}, + \'q': {'aligned_clauses': s:keyword('end'), 'pattern_match_clauses': never_match}, \'c': {'aligned_clauses': s:keyword('end'), 'pattern_match_clauses': never_match}, \'t': {'aligned_clauses': s:keyword('end\|catch\|rescue\|after\|else'), 'pattern_match_clauses': s:keyword('catch\|rescue\|else')}, \'r': {'aligned_clauses': s:keyword('end\|after'), 'pattern_match_clauses': s:keyword('after')}, diff --git a/autoload/fish.vim b/autoload/fish.vim index 924f38b7f..9dcc994cc 100644 --- a/autoload/fish.vim +++ b/autoload/fish.vim @@ -153,5 +153,5 @@ function! fish#Complete(findstart, base) endfunction function! fish#errorformat() - return '%Afish: %m,%-G%*\\ ^,%-Z%f (line %l):%s' + return '%E%f (line %l):%m,%C%p^%.%#,%-C%.%#' endfunction diff --git a/autoload/fsharp.vim b/autoload/fsharp.vim index bb93b9cd7..d163228ed 100644 --- a/autoload/fsharp.vim +++ b/autoload/fsharp.vim @@ -167,7 +167,10 @@ let s:config_keys_camel = \ {'key': 'ExcludeProjectDirectories', 'default': []}, \ {'key': 'keywordsAutocomplete', 'default': 1}, \ {'key': 'ExternalAutocomplete', 'default': 0}, + \ {'key': 'FullNameExternalAutocomplete', 'default': 0}, \ {'key': 'Linter', 'default': 1}, + \ {'key': 'LinterConfig'}, + \ {'key': 'IndentationSize', 'default': 4}, \ {'key': 'UnionCaseStubGeneration', 'default': 1}, \ {'key': 'UnionCaseStubGenerationBody'}, \ {'key': 'RecordStubGeneration', 'default': 1}, @@ -175,18 +178,39 @@ let s:config_keys_camel = \ {'key': 'InterfaceStubGeneration', 'default': 1}, \ {'key': 'InterfaceStubGenerationObjectIdentifier', 'default': 'this'}, \ {'key': 'InterfaceStubGenerationMethodBody'}, + \ {'key': 'AddPrivateAccessModifier', 'default': 0}, \ {'key': 'UnusedOpensAnalyzer', 'default': 1}, + \ {'key': 'UnusedOpensAnalyzerExclusions', 'default': []}, \ {'key': 'UnusedDeclarationsAnalyzer', 'default': 1}, + \ {'key': 'UnusedDeclarationsAnalyzerExclusions', 'default': []}, \ {'key': 'SimplifyNameAnalyzer', 'default': 0}, + \ {'key': 'SimplifyNameAnalyzerExclusions', 'default': []}, + \ {'key': 'UnnecessaryParenthesesAnalyzer', 'default': 0}, \ {'key': 'ResolveNamespaces', 'default': 1}, \ {'key': 'EnableReferenceCodeLens', 'default': 1}, \ {'key': 'EnableAnalyzers', 'default': 0}, \ {'key': 'AnalyzersPath'}, + \ {'key': 'ExcludeAnalyzers'}, + \ {'key': 'IncludeAnalyzers'}, \ {'key': 'DisableInMemoryProjectReferences', 'default': 0}, \ {'key': 'LineLens', 'default': {'enabled': 'never', 'prefix': ''}}, \ {'key': 'UseSdkScripts', 'default': 1}, \ {'key': 'dotNetRoot'}, - \ {'key': 'fsiExtraParameters', 'default': []}, + \ {'key': 'fsiExtraParameters'}, + \ {'key': 'fsiExtraInteractiveParameters', 'default': ['--readline-']}, + \ {'key': 'fsiExtraSharedParameters', 'default': []}, + \ {'key': 'fsiCompilerToolLocations', 'default': []}, + \ {'key': 'TooltipMode', 'default': 'full'}, + \ {'key': 'GenerateBinlog', 'default': 0}, + \ {'key': 'AbstractClassStubGeneration', 'default': 1}, + \ {'key': 'AbstractClassStubGenerationObjectIdentifier', 'default': 'this'}, + \ {'key': 'AbstractClassStubGenerationMethodBody', 'default': 'failwith "Not Implemented"'}, + "\ {'key': 'CodeLenses', TODO}, + "\ {'key': 'PipelineHints', TODO} + "\ {'key': 'InlayHints', TODO} + "\ {'key': 'Fsac', TODO} + "\ {'key': 'Notifications', TODO} + "\ {'key': 'Debug', TODO} \ ] let s:config_keys = [] @@ -238,7 +262,7 @@ function! fsharp#loadConfig() endif if !exists('g:fsharp#fsautocomplete_command') - let g:fsharp#fsautocomplete_command = ['fsautocomplete', '--background-service-enabled'] + let g:fsharp#fsautocomplete_command = ['fsautocomplete'] endif if !exists('g:fsharp#use_recommended_server_config') let g:fsharp#use_recommended_server_config = 1 @@ -411,6 +435,10 @@ endfunction let s:workspace = [] +function! fsharp#getLoadedProjects() + return copy(s:workspace) +endfunction + function! fsharp#handle_notifyWorkspace(payload) abort let content = json_decode(a:payload.content) if content.Kind == 'projectLoading' @@ -532,7 +560,16 @@ endfunction function! s:get_fsi_command() let cmd = g:fsharp#fsi_command - for prm in g:fsharp#fsi_extra_parameters + if exists("g:fsharp#fsi_extra_parameters") + echom "[Ionide-vim]: `g:fsharp#fsi_extra_parameters` is being deprecated. Migrate to `g:fsharp#fsi_extra_interactive_parameters` and `g:fsharp_extra_shared_parameters`." + for prm in g:fsharp#fsi_extra_parameters + let cmd = cmd . " " . prm + endfor + endif + for prm in g:fsharp#fsi_extra_interactive_parameters + let cmd = cmd . " " . prm + endfor + for prm in g:fsharp#fsi_extra_shared_parameters let cmd = cmd . " " . prm endfor return cmd @@ -584,7 +621,7 @@ function! fsharp#openFsi(returnFocus) if a:returnFocus | call s:win_gotoid_safe(current_win) | endif return s:fsi_buffer else - echom "[FSAC] Your (neo)vim does not support terminal". + echom "[FSAC] Your (neo)vim does not support terminal." return 0 endif endif diff --git a/autoload/go/config.vim b/autoload/go/config.vim index 0ee1466fe..d1aa37d92 100644 --- a/autoload/go/config.vim +++ b/autoload/go/config.vim @@ -141,32 +141,6 @@ function! go#config#ListAutoclose() abort return get(g:, 'go_list_autoclose', 1) endfunction -function! go#config#InfoMode() abort - return get(g:, 'go_info_mode', 'gopls') -endfunction - -function! go#config#GuruScope() abort - let scope = get(g:, 'go_guru_scope', []) - - if !empty(scope) - " strip trailing slashes for each path in scope. bug: - " https://github.com/golang/go/issues/14584 - let scopes = go#util#StripTrailingSlash(scope) - endif - - return scope -endfunction - -function! go#config#SetGuruScope(scope) abort - if empty(a:scope) - if exists('g:go_guru_scope') - unlet g:go_guru_scope - endif - else - let g:go_guru_scope = a:scope - endif -endfunction - function! go#config#EchoCommandInfo() abort return get(g:, 'go_echo_command_info', 1) endfunction @@ -204,6 +178,10 @@ function! go#config#Debug() abort return get(g:, 'go_debug', []) endfunction +function! go#config#DebugLogDelay() abort + return get(g:, 'go_debug_log_delay', 10) +endfunction + function! go#config#DebugWindows() abort return get(g:, 'go_debug_windows', { \ 'vars': 'leftabove 30vnew', diff --git a/autoload/graphql.vim b/autoload/graphql.vim index 135d184a7..9b1962464 100644 --- a/autoload/graphql.vim +++ b/autoload/graphql.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'autoload/graphql.v finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to @@ -25,6 +25,12 @@ endif " Language: GraphQL " Maintainer: Jon Parise +" Look up the named variable in buffer scope and then in global scope. +" Returns default if the named variable can't be found in either. +function! graphql#var(name, default) abort + return get(b:, a:name, get(g:, a:name, a:default)) +endfunction + function! graphql#has_syntax_group(group) abort try silent execute 'silent highlight ' . a:group @@ -35,5 +41,5 @@ function! graphql#has_syntax_group(group) abort endfunction function! graphql#javascript_tags() abort - return get(g:, 'graphql_javascript_tags', ['gql', 'graphql', 'Relay.QL']) + return graphql#var('graphql_javascript_tags', ['gql', 'graphql', 'Relay.QL']) endfunction diff --git a/autoload/jsonnet.vim b/autoload/jsonnet.vim index 6a71cbb64..adc23774b 100644 --- a/autoload/jsonnet.vim +++ b/autoload/jsonnet.vim @@ -109,9 +109,11 @@ function! jsonnet#Format() call setfperm(expand('%'), l:originalFPerm) endif " the file has been changed outside of vim, enable reedit + mkview silent edit! let &fileformat = l:originalFileFormat let &syntax = &syntax + silent loadview elseif g:jsonnet_fmt_fail_silently == 0 " FixMe: We could leverage the errors coming from the `jsonnetfmt` and " give immediate feedback to the user at every save time. @@ -126,4 +128,63 @@ function! jsonnet#Format() call winrestview(l:curw) endfunction +function! jsonnet#GetVisualSelection() + " Source: https://stackoverflow.com/a/6271254 + " Why is this not a built-in Vim script function?! + let [line_start, column_start] = getpos("'<")[1:2] + let [line_end, column_end] = getpos("'>")[1:2] + let lines = getline(line_start, line_end) + if len(lines) == 0 + return '' + endif + let lines[-1] = lines[-1][: column_end - (&selection == 'inclusive' ? 1 : 2)] + let lines[0] = lines[0][column_start - 1:] + return join(lines, "\n") +endfun + +" Format calls `jsonnetfmt ... ` on a Visual selection +function! jsonnet#FormatVisual() + " Get current visual selection + let l:selection = jsonnet#GetVisualSelection() + + " Get the command first so we can test it + let l:binName = g:jsonnet_fmt_command + + " Check if the user has installed command binary. + let l:binPath = jsonnet#CheckBinPath(l:binName) + if empty(l:binPath) + return + endif + " Populate the final command. + let l:command = l:binPath + let l:command = l:command . ' -e ' + let l:command = l:command . g:jsonnet_fmt_options + + " Execute the compiled jsonnetfmt command and save the return value + let l:out = jsonnet#System(l:command . " \"" . l:selection . "\"") + let l:errorCode = v:shell_error + + " Save register contents + let reg = '"' + let save_cb = &cb + let regInfo = getreginfo(reg) + try + " Set register to formatted output + call setreg(reg,l:out) + " Paste formatted output + silent exe 'norm! gv'.(reg == '"' ? '' : '"' . reg).'p`[' + finally + " Restore register contents + let &cb = save_cb + call setreg(reg, regInfo) + endtry +endfunction + +" Evaluate jsonnet into vsplit +function! jsonnet#Eval() + let output = system(g:jsonnet_command . ' ' . shellescape(expand('%'))) + vnew + setlocal nobuflisted buftype=nofile bufhidden=wipe noswapfile ft=jsonnet + put! = output +endfunction diff --git a/autoload/julia_latex_symbols.vim b/autoload/julia_latex_symbols.vim index 05d1fb6a4..386528963 100644 --- a/autoload/julia_latex_symbols.vim +++ b/autoload/julia_latex_symbols.vim @@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand(':p'), 'julia', 'autoload/julia_latex endif " This file is autogenerated from the script 'generate_latex_symbols_table.jl' -" The symbols are based on Julia version 1.9.0-DEV.16 +" The symbols are based on Julia version 1.12.0-DEV.387 scriptencoding utf-8 @@ -17,6 +17,7 @@ function! julia_latex_symbols#get_dict() \ '\copyright': '©', \ '\:copyright:': '©', \ '\ordfeminine': 'ª', + \ '\guillemotleft': '«', \ '\neg': '¬', \ '\circledR': '®', \ '\:registered:': '®', @@ -29,6 +30,7 @@ function! julia_latex_symbols#get_dict() \ '\cdotp': '·', \ '\^1': '¹', \ '\ordmasculine': 'º', + \ '\guillemotright': '»', \ '\1/4': '¼', \ '\1/2': '½', \ '\3/4': '¾', @@ -160,10 +162,10 @@ function! julia_latex_symbols#get_dict() \ '\Iota': 'Ι', \ '\Kappa': 'Κ', \ '\Lambda': 'Λ', - \ '\upMu': 'Μ', - \ '\upNu': 'Ν', + \ '\Mu': 'Μ', + \ '\Nu': 'Ν', \ '\Xi': 'Ξ', - \ '\upOmicron': 'Ο', + \ '\Omicron': 'Ο', \ '\Pi': 'Π', \ '\Rho': 'Ρ', \ '\Sigma': 'Σ', @@ -177,7 +179,6 @@ function! julia_latex_symbols#get_dict() \ '\beta': 'β', \ '\gamma': 'γ', \ '\delta': 'δ', - \ '\upepsilon': 'ε', \ '\varepsilon': 'ε', \ '\zeta': 'ζ', \ '\eta': 'η', @@ -188,7 +189,7 @@ function! julia_latex_symbols#get_dict() \ '\mu': 'μ', \ '\nu': 'ν', \ '\xi': 'ξ', - \ '\upomicron': 'ο', + \ '\omicron': 'ο', \ '\pi': 'π', \ '\rho': 'ρ', \ '\varsigma': 'ς', @@ -199,20 +200,20 @@ function! julia_latex_symbols#get_dict() \ '\chi': 'χ', \ '\psi': 'ψ', \ '\omega': 'ω', - \ '\upvarbeta': 'ϐ', + \ '\varbeta': 'ϐ', \ '\vartheta': 'ϑ', \ '\phi': 'ϕ', \ '\varpi': 'ϖ', - \ '\upoldKoppa': 'Ϙ', - \ '\upoldkoppa': 'ϙ', + \ '\oldKoppa': 'Ϙ', + \ '\oldkoppa': 'ϙ', \ '\Stigma': 'Ϛ', - \ '\upstigma': 'ϛ', + \ '\stigma': 'ϛ', \ '\Digamma': 'Ϝ', \ '\digamma': 'ϝ', \ '\Koppa': 'Ϟ', - \ '\upkoppa': 'ϟ', + \ '\koppa': 'ϟ', \ '\Sampi': 'Ϡ', - \ '\upsampi': 'ϡ', + \ '\sampi': 'ϡ', \ '\varkappa': 'ϰ', \ '\varrho': 'ϱ', \ '\varTheta': 'ϴ', @@ -659,6 +660,7 @@ function! julia_latex_symbols#get_dict() \ '\measeq': '≞', \ '\questeq': '≟', \ '\ne': '≠', + \ '\neq': '≠', \ '\equiv': '≡', \ '\nequiv': '≢', \ '\Equiv': '≣', @@ -804,7 +806,7 @@ function! julia_latex_symbols#get_dict() \ '\nsqsubseteq': '⋢', \ '\nsqsupseteq': '⋣', \ '\sqsubsetneq': '⋤', - \ '\sqspne': '⋥', + \ '\sqsupsetneq': '⋥', \ '\lnsim': '⋦', \ '\gnsim': '⋧', \ '\precnsim': '⋨', @@ -1151,6 +1153,7 @@ function! julia_latex_symbols#get_dict() \ '\threedangle': '⟀', \ '\whiteinwhitetriangle': '⟁', \ '\perp': '⟂', + \ '\veedot': '⟇', \ '\bsolhsub': '⟈', \ '\suphsol': '⟉', \ '\wedgedot': '⟑', @@ -1273,6 +1276,8 @@ function! julia_latex_symbols#get_dict() \ '\UpEquilibrium': '⥮', \ '\ReverseUpEquilibrium': '⥯', \ '\RoundImplies': '⥰', + \ '\leftarrowless': '⥷', + \ '\leftarrowsubset': '⥺', \ '\Vvert': '⦀', \ '\Elroang': '⦆', \ '\ddfnc': '⦙', @@ -3386,6 +3391,10 @@ function! julia_latex_symbols#get_dict() \ '\:hindu_temple:': '🛕', \ '\:hut:': '🛖', \ '\:elevator:': '🛗', + \ '\:wireless:': '🛜', + \ '\:playground_slide:': '🛝', + \ '\:wheel:': '🛞', + \ '\:ring_buoy:': '🛟', \ '\:airplane_departure:': '🛫', \ '\:airplane_arriving:': '🛬', \ '\:scooter:': '🛴', @@ -3409,6 +3418,7 @@ function! julia_latex_symbols#get_dict() \ '\:large_green_square:': '🟩', \ '\:large_purple_square:': '🟪', \ '\:large_brown_square:': '🟫', + \ '\:heavy_equals_sign:': '🟰', \ '\:pinched_fingers:': '🤌', \ '\:white_heart:': '🤍', \ '\:brown_heart:': '🤎', @@ -3516,6 +3526,7 @@ function! julia_latex_symbols#get_dict() \ '\:cold_face:': '🥶', \ '\:ninja:': '🥷', \ '\:disguised_face:': '🥸', + \ '\:face_holding_back_tears:': '🥹', \ '\:pleading_face:': '🥺', \ '\:sari:': '🥻', \ '\:lab_coat:': '🥼', @@ -3594,6 +3605,7 @@ function! julia_latex_symbols#get_dict() \ '\:mate_drink:': '🧉', \ '\:ice_cube:': '🧊', \ '\:bubble_tea:': '🧋', + \ '\:troll:': '🧌', \ '\:standing_person:': '🧍', \ '\:kneeling_person:': '🧎', \ '\:deaf_person:': '🧏', @@ -3650,9 +3662,14 @@ function! julia_latex_symbols#get_dict() \ '\:briefs:': '🩲', \ '\:shorts:': '🩳', \ '\:thong_sandal:': '🩴', + \ '\:light_blue_heart:': '🩵', + \ '\:grey_heart:': '🩶', + \ '\:pink_heart:': '🩷', \ '\:drop_of_blood:': '🩸', \ '\:adhesive_bandage:': '🩹', \ '\:stethoscope:': '🩺', + \ '\:x-ray:': '🩻', + \ '\:crutch:': '🩼', \ '\:yo-yo:': '🪀', \ '\:kite:': '🪁', \ '\:parachute:': '🪂', @@ -3660,6 +3677,8 @@ function! julia_latex_symbols#get_dict() \ '\:magic_wand:': '🪄', \ '\:pinata:': '🪅', \ '\:nesting_dolls:': '🪆', + \ '\:maracas:': '🪇', + \ '\:flute:': '🪈', \ '\:ringed_planet:': '🪐', \ '\:chair:': '🪑', \ '\:razor:': '🪒', @@ -3685,6 +3704,13 @@ function! julia_latex_symbols#get_dict() \ '\:headstone:': '🪦', \ '\:placard:': '🪧', \ '\:rock:': '🪨', + \ '\:mirror_ball:': '🪩', + \ '\:identification_card:': '🪪', + \ '\:low_battery:': '🪫', + \ '\:hamsa:': '🪬', + \ '\:folding_hand_fan:': '🪭', + \ '\:hair_pick:': '🪮', + \ '\:khanda:': '🪯', \ '\:fly:': '🪰', \ '\:worm:': '🪱', \ '\:beetle:': '🪲', @@ -3692,14 +3718,50 @@ function! julia_latex_symbols#get_dict() \ '\:potted_plant:': '🪴', \ '\:wood:': '🪵', \ '\:feather:': '🪶', + \ '\:lotus:': '🪷', + \ '\:coral:': '🪸', + \ '\:empty_nest:': '🪹', + \ '\:nest_with_eggs:': '🪺', + \ '\:hyacinth:': '🪻', + \ '\:jellyfish:': '🪼', + \ '\:wing:': '🪽', + \ '\:goose:': '🪿', \ '\:anatomical_heart:': '🫀', \ '\:lungs:': '🫁', \ '\:people_hugging:': '🫂', + \ '\:pregnant_man:': '🫃', + \ '\:pregnant_person:': '🫄', + \ '\:person_with_crown:': '🫅', + \ '\:moose:': '🫎', + \ '\:donkey:': '🫏', \ '\:blueberries:': '🫐', \ '\:bell_pepper:': '🫑', \ '\:olive:': '🫒', \ '\:flatbread:': '🫓', \ '\:tamale:': '🫔', \ '\:fondue:': '🫕', - \ '\:teapot:': '🫖'} + \ '\:teapot:': '🫖', + \ '\:pouring_liquid:': '🫗', + \ '\:beans:': '🫘', + \ '\:jar:': '🫙', + \ '\:ginger_root:': '🫚', + \ '\:pea_pod:': '🫛', + \ '\:melting_face:': '🫠', + \ '\:saluting_face:': '🫡', + \ '\:face_with_open_eyes_and_hand_over_mouth:': '🫢', + \ '\:face_with_peeking_eye:': '🫣', + \ '\:face_with_diagonal_mouth:': '🫤', + \ '\:dotted_line_face:': '🫥', + \ '\:biting_lip:': '🫦', + \ '\:bubbles:': '🫧', + \ '\:shaking_face:': '🫨', + \ '\:hand_with_index_finger_and_thumb_crossed:': '🫰', + \ '\:rightwards_hand:': '🫱', + \ '\:leftwards_hand:': '🫲', + \ '\:palm_down_hand:': '🫳', + \ '\:palm_up_hand:': '🫴', + \ '\:index_pointing_at_the_viewer:': '🫵', + \ '\:heart_hands:': '🫶', + \ '\:leftwards_pushing_hand:': '🫷', + \ '\:rightwards_pushing_hand:': '🫸'} endfunction diff --git a/autoload/ledger.vim b/autoload/ledger.vim index 984070c08..36c2514b9 100644 --- a/autoload/ledger.vim +++ b/autoload/ledger.vim @@ -3,6 +3,11 @@ if polyglot#init#is_disabled(expand(':p'), 'ledger', 'autoload/ledger.vim endif scriptencoding utf-8 + +if !exists ('b:is_hledger') + let b:is_hledger = g:ledger_is_hledger +endif + " vim:ts=2:sw=2:sts=2:foldmethod=marker function! ledger#transaction_state_toggle(lnum, ...) abort if a:0 == 1 @@ -509,7 +514,10 @@ function! ledger#align_commodity() abort endif if pos < 0 " Find the position after the first digits - let pos = matchend(rhs, '\m\d[^[:space:]]*') + let pos = matchend(rhs, '\m\d[^[:space:]]*') - 1 + if pos >= 0 + let pos = strchars(rhs[:pos]) + endif endif " Go to the column that allows us to align the decimal separator at g:ledger_align_at: if pos >= 0 @@ -643,7 +651,7 @@ endf " Build a ledger command to process the given file. function! s:ledger_cmd(file, args) abort let l:options = g:ledger_extra_options - if len(g:ledger_date_format) > 0 && !g:ledger_is_hledger + if len(g:ledger_date_format) > 0 && !b:is_hledger let l:options = join([l:options, '--date-format', g:ledger_date_format, \ '--input-date-format', g:ledger_date_format]) endif @@ -670,7 +678,7 @@ endf " Use current line as input to ledger entry and replace with output. If there " are errors, they are echoed instead. function! ledger#entry() abort - let l:output = systemlist(s:ledger_cmd(g:ledger_main, join(['entry', getline('.')]))) + let l:output = split(system(s:ledger_cmd(g:ledger_main, join(['entry', getline('.')]))), '\n') " Filter out warnings let l:output = filter(l:output, "v:val !~? '^Warning: '") " Errors may occur @@ -694,7 +702,7 @@ endfunc " Returns: " Ledger's output as a String. function! ledger#report(file, args) abort - let l:output = systemlist(s:ledger_cmd(a:file, a:args)) + let l:output = split(system(s:ledger_cmd(a:file, a:args)), '\n') if v:shell_error " If there are errors, show them in a quickfix/location list. call s:quickfix_populate(l:output) call s:quickfix_toggle('Errors', 'Unable to parse errors') @@ -741,7 +749,7 @@ function! ledger#register(file, args) abort \ "--prepend-format='%(filename):%(beg_line) '", \ a:args \ ])) - call s:quickfix_populate(systemlist(l:cmd)) + call s:quickfix_populate(split(system(l:cmd), '\n')) call s:quickfix_toggle('Register report') endf @@ -760,7 +768,7 @@ function! ledger#reconcile(file, account, target_amount) abort \ shellescape(a:account) \ ])) let l:file = expand(a:file) " Needed for #show_balance() later - call s:quickfix_populate(systemlist(l:cmd)) + call s:quickfix_populate(split(system(l:cmd), '\n')) if s:quickfix_toggle('Reconcile ' . a:account, 'Nothing to reconcile') let g:ledger_target_amount = a:target_amount " Show updated account balance upon saving, as long as the quickfix window is open @@ -804,7 +812,7 @@ function! ledger#show_balance(file, ...) abort \ "--format='%(scrub(get_at(display_total, 0)))|%(scrub(get_at(display_total, 1)))|%(quantity(scrub(get_at(display_total, 1))))'", \ (empty(g:ledger_default_commodity) ? '' : '-X ' . shellescape(g:ledger_default_commodity)) \ ])) - let l:output = systemlist(l:cmd) + let l:output = split(system(l:cmd), '\n') " Errors may occur, for example, when the account has multiple commodities " and g:ledger_default_commodity is empty. if v:shell_error diff --git a/autoload/neomake/makers/ft/pony.vim b/autoload/neomake/makers/ft/pony.vim new file mode 100644 index 000000000..7631afdbd --- /dev/null +++ b/autoload/neomake/makers/ft/pony.vim @@ -0,0 +1,18 @@ +if polyglot#init#is_disabled(expand(':p'), 'pony', 'autoload/neomake/makers/ft/pony.vim') + finish +endif + +function! neomake#makers#ft#pony#EnabledMakers() + return ['ponyc'] +endfunction + +function! neomake#makers#ft#pony#ponyc() + " This is currently a hack. Ponyc itself uses the project directory as + " the target to build. Using %:p:h like this fetches the parent + " directory of the current file which might cause supurious errors on + " package imports if the current file is nested under a sub-directory. + return { + \ 'args': ['--pass=expr', '%:p:h'], + \ 'errorformat': '%f:%l:%c: %m' + \ } +endfunction diff --git a/autoload/nix.vim b/autoload/nix.vim new file mode 100644 index 000000000..56f251010 --- /dev/null +++ b/autoload/nix.vim @@ -0,0 +1,27 @@ +if polyglot#init#is_disabled(expand(':p'), 'nix', 'autoload/nix.vim') + finish +endif + +function! nix#find_drv_position() + let line = search("description") + if line == 0 + let line = search("name") + endif + if line == 0 + echo "error: could not find derivation" + return + endif + + return expand("%") . ":" . line +endfunction + +function! nix#edit(attr) + let output = system("nix-instantiate --eval ./. -A " . a:attr . ".meta.position") + if match(output, "^error:") == -1 + let position = split(split(output, '"')[0], ":") + execute "edit " . position[0] + execute position[1] + " Update default command to nix-build. + let b:dispatch = 'nix-build --no-out-link -A ' . a:attr + endif +endfunction diff --git a/autoload/polyglot/init.vim b/autoload/polyglot/init.vim index 9e991f369..1c2b1bfc0 100644 --- a/autoload/polyglot/init.vim +++ b/autoload/polyglot/init.vim @@ -1771,11 +1771,11 @@ endif if !has_key(g:polyglot_is_disabled, 'prolog') au! BufNewFile,BufRead,BufWritePost *.pl call polyglot#detect#Pl() - au BufNewFile,BufRead *.pdb,*.pro,*.prolog,*.yap setf prolog + au BufNewFile,BufRead *.pdb,*.plt,*.pro,*.prolog,*.yap setf prolog endif if !has_key(g:polyglot_is_disabled, 'bzl') - au BufNewFile,BufRead *.BUILD,*.bazel,*.bzl,*.star,BUCK,BUILD,BUILD.bazel,Tiltfile,WORKSPACE setf bzl + au BufNewFile,BufRead *.BUILD,*.bazel,*.bzl,*.star,BUCK,BUILD,BUILD.bazel,MODULE.bazel,Tiltfile,WORKSPACE,WORKSPACE.bazel setf bzl endif if !has_key(g:polyglot_is_disabled, 'odin') @@ -1783,7 +1783,7 @@ if !has_key(g:polyglot_is_disabled, 'odin') endif if !has_key(g:polyglot_is_disabled, 'dosini') - au BufNewFile,BufRead *.dof,*.ini,*.lektorproject,*.prefs,*.pro,*.properties,*.url,*/etc/pacman.conf,*/etc/yum.conf,{.,}coveragerc,{.,}editorconfig,{.,}flake8,{.,}npmrc,{.,}pylintrc,buildozer.spec,pylintrc setf dosini + au BufNewFile,BufRead *.cnf,*.dof,*.ini,*.lektorproject,*.prefs,*.pro,*.properties,*.url,*/etc/pacman.conf,*/etc/yum.conf,{.,}coveragerc,{.,}editorconfig,{.,}flake8,{.,}npmrc,{.,}pylintrc,HOSTS,buildozer.spec,hosts,pylintrc,vlcrc setf dosini au BufNewFile,BufRead php.ini-* call s:StarSetf('dosini') au BufNewFile,BufRead */etc/yum.repos.d/* call s:StarSetf('dosini') endif @@ -1794,7 +1794,7 @@ endif if !has_key(g:polyglot_is_disabled, 'visual-basic') au! BufNewFile,BufRead,BufWritePost *.bas call polyglot#detect#Bas() - au BufNewFile,BufRead *.cls,*.ctl,*.dsm,*.frm,*.frx,*.sba,*.vba,*.vbs setf vb + au BufNewFile,BufRead *.cls,*.ctl,*.dsm,*.frm,*.sba,*.vba,*.vbs setf vb endif if !has_key(g:polyglot_is_disabled, 'basic') @@ -1807,7 +1807,7 @@ endif if !has_key(g:polyglot_is_disabled, 'zig') au BufNewFile,BufRead *.zir setf zir - au BufNewFile,BufRead *.zig,*.zir setf zig + au BufNewFile,BufRead *.zig,*.zig.zon,*.zir setf zig endif if !has_key(g:polyglot_is_disabled, 'zephir') @@ -1891,7 +1891,7 @@ if !has_key(g:polyglot_is_disabled, 'tptp') endif if !has_key(g:polyglot_is_disabled, 'toml') - au BufNewFile,BufRead *.toml,*/.cargo/config,*/.cargo/credentials,Cargo.lock,Gopkg.lock,Pipfile,poetry.lock setf toml + au BufNewFile,BufRead *.toml,*/.cargo/config,*/.cargo/credentials,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,pdm.lock,poetry.lock setf toml endif if !has_key(g:polyglot_is_disabled, 'tmux') @@ -1957,7 +1957,7 @@ if !has_key(g:polyglot_is_disabled, 'slim') endif if !has_key(g:polyglot_is_disabled, 'sh') - au BufNewFile,BufRead *.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh,*.sh.in,*.tmux,*.tool,*.zsh-theme,*/etc/udev/cdsymlinks.conf,{.,}bash_aliases,{.,}bash_history,{.,}bash_logout,{.,}bash_profile,{.,}bashrc,{.,}cshrc,{.,}env,{.,}env.example,{.,}flaskenv,{.,}kshrc,{.,}login,{.,}profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,kshrc,login,man,profile setf sh + au BufNewFile,BufRead *.bash,*.bats,*.cgi,*.command,*.fcgi,*.ksh,*.sh,*.sh.in,*.tmux,*.tool,*.trigger,*.zsh-theme,*/etc/udev/cdsymlinks.conf,{.,}bash_aliases,{.,}bash_functions,{.,}bash_history,{.,}bash_logout,{.,}bash_profile,{.,}bashrc,{.,}cshrc,{.,}envrc,{.,}flaskenv,{.,}kshrc,{.,}login,{.,}profile,{.,}tmux.conf,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,kshrc,login,man,profile,tmux.conf setf sh au BufNewFile,BufRead *.zsh,*/etc/zprofile,{.,}zfbfmarks,{.,}zlogin,{.,}zlogout,{.,}zprofile,{.,}zshenv,{.,}zshrc setf zsh au BufNewFile,BufRead .zsh* call s:StarSetf('zsh') au BufNewFile,BufRead .zlog* call s:StarSetf('zsh') @@ -2033,7 +2033,7 @@ if !has_key(g:polyglot_is_disabled, 'requirements') endif if !has_key(g:polyglot_is_disabled, 'python') - au BufNewFile,BufRead *.cgi,*.fcgi,*.gyp,*.gypi,*.lmi,*.ptl,*.py,*.py3,*.pyde,*.pyi,*.pyp,*.pyt,*.pyw,*.rpy,*.smk,*.spec,*.tac,*.wsgi,*.xpy,{.,}gclient,{.,}pythonrc,{.,}pythonstartup,DEPS,SConscript,SConstruct,Snakefile,wscript setf python + au BufNewFile,BufRead *.cgi,*.fcgi,*.gyp,*.gypi,*.lmi,*.ptl,*.py,*.py3,*.pyde,*.pyi,*.pyp,*.pyt,*.pyw,*.rpy,*.spec,*.tac,*.wsgi,*.xpy,{.,}gclient,{.,}pythonrc,{.,}pythonstartup,DEPS,SConscript,SConstruct,wscript setf python endif if !has_key(g:polyglot_is_disabled, 'purescript') @@ -2053,6 +2053,10 @@ if !has_key(g:polyglot_is_disabled, 'protobuf') au BufNewFile,BufRead *.proto setf proto endif +if !has_key(g:polyglot_is_disabled, 'prisma') + au BufNewFile,BufRead *.prisma setf prisma +endif + if !has_key(g:polyglot_is_disabled, 'powershell') au BufNewFile,BufRead *.ps1,*.psd1,*.psm1,*.pssc setf ps1 au BufNewFile,BufRead *.ps1xml setf ps1xml @@ -2216,7 +2220,7 @@ if !has_key(g:polyglot_is_disabled, 'perl') au! BufNewFile,BufRead,BufWritePost *.t call polyglot#detect#T() au! BufNewFile,BufRead,BufWritePost *.pm call polyglot#detect#Pm() au! BufNewFile,BufRead,BufWritePost *.pl call polyglot#detect#Pl() - au BufNewFile,BufRead *.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.psgi,{.,}gitolite.rc,Makefile.PL,Rexfile,ack,cpanfile,example.gitolite.rc setf perl + au BufNewFile,BufRead *.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.psgi,{.,}gitolite.rc,{.,}latexmkrc,Makefile.PL,Rexfile,ack,cpanfile,example.gitolite.rc,latexmkrc setf perl au BufNewFile,BufRead *.pod setf pod au BufNewFile,BufRead *.comp,*.mason,*.mhtml setf mason au! BufNewFile,BufRead,BufWritePost *.tt2 call polyglot#detect#Tt2() @@ -2233,7 +2237,7 @@ if !has_key(g:polyglot_is_disabled, 'jsonnet') endif if !has_key(g:polyglot_is_disabled, 'json') - au BufNewFile,BufRead *.4DForm,*.4DProject,*.JSON-tmLanguage,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.json,*.jsonl,*.jsonp,*.mcmeta,*.template,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,{.,}arcconfig,{.,}auto-changelog,{.,}c8rc,{.,}htmlhintrc,{.,}imgbotconfig,{.,}nycrc,{.,}tern-config,{.,}tern-project,{.,}watchmanconfig,Pipfile.lock,composer.lock,mcmod.info setf json + au BufNewFile,BufRead *.4DForm,*.4DProject,*.JSON-tmLanguage,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.json,*.jsonl,*.jsonp,*.mcmeta,*.sarif,*.template,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,{.,}all-contributorsrc,{.,}arcconfig,{.,}auto-changelog,{.,}c8rc,{.,}htmlhintrc,{.,}imgbotconfig,{.,}nycrc,{.,}tern-config,{.,}tern-project,{.,}watchmanconfig,MODULE.bazel.lock,Pipfile.lock,composer.lock,deno.lock,flake.lock,mcmod.info setf json endif if !has_key(g:polyglot_is_disabled, 'json5') @@ -2347,7 +2351,7 @@ endif if !has_key(g:polyglot_is_disabled, 'glsl') au! BufNewFile,BufRead,BufWritePost *.fs call polyglot#detect#Fs() au! BufNewFile,BufRead,BufWritePost *.frag call polyglot#detect#Frag() - au BufNewFile,BufRead *.comp,*.fp,*.frg,*.fsh,*.fshader,*.geo,*.geom,*.glsl,*.glslf,*.glslv,*.gs,*.gshader,*.rchit,*.rmiss,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vsh,*.vshader setf glsl + au BufNewFile,BufRead *.comp,*.fp,*.frg,*.fsh,*.fshader,*.geo,*.geom,*.glsl,*.glslf,*.glslv,*.gs,*.gshader,*.rchit,*.rmiss,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vs,*.vsh,*.vshader setf glsl endif if !has_key(g:polyglot_is_disabled, 'git') @@ -2538,7 +2542,7 @@ endif if !has_key(g:polyglot_is_disabled, 'c/c++') au! BufNewFile,BufRead,BufWritePost *.h call polyglot#detect#H() - au BufNewFile,BufRead *.c++,*.cc,*.cp,*.cpp,*.cxx,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.ixx,*.moc,*.tcc,*.tlh,*.tpp setf cpp + au BufNewFile,BufRead *.c++,*.cc,*.cp,*.cpp,*.cppm,*.cxx,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.ixx,*.moc,*.tcc,*.tlh,*.tpp,*.txx setf cpp au! BufNewFile,BufRead,BufWritePost *.h call polyglot#detect#H() au BufNewFile,BufRead *.c,*.cats,*.idc,*.qc,*enlightenment/*.cfg setf c endif @@ -2579,7 +2583,7 @@ if !has_key(g:polyglot_is_disabled, 'ant') endif if !has_key(g:polyglot_is_disabled, 'xml') - au BufNewFile,BufRead *.adml,*.admx,*.ant,*.axaml,*.axml,*.builds,*.ccproj,*.ccxml,*.cdxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.csproj.user,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.hzp,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.psc1,*.pt,*.qhelp,*.rdf,*.res,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.tpm,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wpl,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml,*.xml.dist,*.xmp,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*/etc/blkid.tab,*/etc/blkid.tab.old,*/etc/xdg/menus/*.menu,*fglrxrc,{.,}classpath,{.,}cproject,{.,}project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config setf xml + au BufNewFile,BufRead *.adml,*.admx,*.ant,*.axaml,*.axml,*.builds,*.ccproj,*.ccxml,*.cdxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.csproj.user,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.hzp,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mod,*.mojo,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.psc1,*.pt,*.qhelp,*.rdf,*.res,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.sw,*.targets,*.tml,*.tpm,*.typ,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wpl,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml,*.xml.dist,*.xmp,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*/etc/blkid.tab,*/etc/blkid.tab.old,*/etc/xdg/menus/*.menu,*fglrxrc,{.,}classpath,{.,}cproject,{.,}project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config setf xml endif if !has_key(g:polyglot_is_disabled, 'csv') diff --git a/autoload/polyglot/shebang.vim b/autoload/polyglot/shebang.vim index 31b975681..61ad0097d 100644 --- a/autoload/polyglot/shebang.vim +++ b/autoload/polyglot/shebang.vim @@ -499,6 +499,9 @@ let s:interpreters = { \ 'python': 'python', \ 'python2': 'python', \ 'python3': 'python', + \ 'py': 'python', + \ 'pypy': 'python', + \ 'pypy3': 'python', \ 'qmake': 'qmake', \ 'Rscript': 'r', \ 'racket': 'racket', @@ -510,6 +513,7 @@ let s:interpreters = { \ 'rake': 'ruby', \ 'jruby': 'ruby', \ 'rbx': 'ruby', + \ 'rust-script': 'rust', \ 'scala': 'scala', \ 'ash': 'sh', \ 'bash': 'sh', @@ -531,6 +535,7 @@ let s:interpreters = { \ 'z3': 'smt2', \ 'deno': 'typescript', \ 'ts-node': 'typescript', + \ 'tsx': 'typescript', \ 'zsh': 'zsh', \ } " DO NOT EDIT CODE ABOVE, IT IS GENERATED WITH MAKEFILE diff --git a/autoload/polyglot/sleuth.vim b/autoload/polyglot/sleuth.vim index 5eb946e13..bf76f9217 100644 --- a/autoload/polyglot/sleuth.vim +++ b/autoload/polyglot/sleuth.vim @@ -55,7 +55,7 @@ let s:globs = { \ 'brewfile': 'Brewfile', \ 'bsdl': '*.bsdl,*bsd', \ 'bst': '*.bst', - \ 'bzl': '*.bzl,*.star,*.bazel,*.BUILD,BUCK,BUILD,BUILD.bazel,Tiltfile,WORKSPACE', + \ 'bzl': '*.bzl,*.star,*.bazel,*.BUILD,BUCK,BUILD,BUILD.bazel,MODULE.bazel,Tiltfile,WORKSPACE,WORKSPACE.bazel', \ 'bzr': 'bzr_log.*', \ 'c': '*.c,*.cats,*.h,*.idc,*.qc', \ 'cabal': '*.cabal', @@ -86,7 +86,7 @@ let s:globs = { \ 'conf': '*.conf,auto.master,config', \ 'config': 'configure.in,configure.ac,Pipfile', \ 'context': '*.mkii,*.mkiv,*.mkvi', - \ 'cpp': '*.cpp,*.c++,*.cc,*.cp,*.cxx,*.h,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.ixx,*.tcc,*.tpp,*.moc,*.tlh', + \ 'cpp': '*.cpp,*.c++,*.cc,*.cp,*.cppm,*.cxx,*.h,*.h++,*.hh,*.hpp,*.hxx,*.inc,*.inl,*.ipp,*.ixx,*.tcc,*.tpp,*.txx,*.moc,*.tlh', \ 'cql': '*.cql', \ 'crm': '*.crm', \ 'crontab': 'crontab,crontab.*', @@ -130,7 +130,7 @@ let s:globs = { \ 'dnsmasq': '', \ 'dockerfile': '*.Dockerfile,*.dock,Containerfile,Dockerfile,dockerfile,Dockerfile*', \ 'dosbatch': '*.bat,*.sys', - \ 'dosini': '*.wrap,*.ini,*.dof,*.lektorproject,*.prefs,*.pro,*.properties,*.url,.coveragerc,.flake8,.pylintrc,buildozer.spec,pylintrc,.editorconfig,.npmrc,php.ini-*', + \ 'dosini': '*.wrap,*.ini,*.cnf,*.dof,*.lektorproject,*.prefs,*.pro,*.properties,*.url,.coveragerc,.flake8,.pylintrc,HOSTS,buildozer.spec,hosts,pylintrc,vlcrc,.editorconfig,.npmrc,php.ini-*', \ 'dot': '*.dot,*.gv', \ 'dracula': '*.drac,*.drc,*lvs,*lpe,drac.*', \ 'dsdl': '*.sdl', @@ -153,7 +153,7 @@ let s:globs = { \ 'embeddedpuppet': '*.epp', \ 'ember-script': '*.em,*.emberscript', \ 'emblem': '*.emblem,*.em', - \ 'erlang': '*.erl,*.app.src,*.es,*.escript,*.hrl,*.xrl,*.yrl,*.app,*.yaws,Emakefile,rebar.config,rebar.config.lock,rebar.lock', + \ 'erlang': '*.erl,*.app,*.app.src,*.es,*.escript,*.hrl,*.xrl,*.yrl,*.yaws,Emakefile,rebar.config,rebar.config.lock,rebar.lock', \ 'eruby': '*.erb,*.erb.deface,*.rhtml', \ 'esmtprc': '*esmtprc', \ 'esqlc': '*.ec,*.EC', @@ -190,7 +190,7 @@ let s:globs = { \ 'gitsendemail': '.gitsendemail.*', \ 'gkrellmrc': 'gkrellmrc,gkrellmrc_?', \ 'gleam': '*.gleam', - \ 'glsl': '*.glsl,*.fp,*.frag,*.frg,*.fs,*.fsh,*.fshader,*.geo,*.geom,*.glslf,*.glslv,*.gs,*.gshader,*.rchit,*.rmiss,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vsh,*.vshader,*.comp', + \ 'glsl': '*.glsl,*.fp,*.frag,*.frg,*.fs,*.fsh,*.fshader,*.geo,*.geom,*.glslf,*.glslv,*.gs,*.gshader,*.rchit,*.rmiss,*.shader,*.tesc,*.tese,*.vert,*.vrx,*.vs,*.vsh,*.vshader,*.comp', \ 'gmpl': '*.mod', \ 'gnash': 'gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc', \ 'gnuplot': '*.gp,*.gnu,*.gnuplot,*.p,*.plot,*.plt,*.gpi', @@ -262,7 +262,7 @@ let s:globs = { \ 'jovial': '*.jov,*.j73,*.jovial', \ 'jproperties': '*.properties,*.properties_??,*.properties_??_??,*.properties_??_??_*', \ 'jq': '*.jq,.jqrc,.jqrc*', - \ 'json': '*.json,*.4DForm,*.4DProject,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.JSON-tmLanguage,*.jsonl,*.mcmeta,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,*.jsonp,*.template,.arcconfig,.auto-changelog,.c8rc,.htmlhintrc,.imgbotconfig,.nycrc,.tern-config,.tern-project,.watchmanconfig,Pipfile.lock,composer.lock,mcmod.info', + \ 'json': '*.json,*.4DForm,*.4DProject,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.JSON-tmLanguage,*.jsonl,*.mcmeta,*.sarif,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,*.jsonp,*.template,.all-contributorsrc,.arcconfig,.auto-changelog,.c8rc,.htmlhintrc,.imgbotconfig,.nycrc,.tern-config,.tern-project,.watchmanconfig,MODULE.bazel.lock,Pipfile.lock,composer.lock,deno.lock,flake.lock,mcmod.info', \ 'json5': '*.json5', \ 'jsonc': '*.cjson,*.jsonc,coc-settings.json,.eslintrc.json,.babelrc,.jshintrc,.jslintrc,.mocharc.json,coffeelint.json,tsconfig.json,jsconfig.json', \ 'jsonnet': '*.jsonnet,*.libsonnet', @@ -393,7 +393,7 @@ let s:globs = { \ 'passwd': '', \ 'pccts': '*.g', \ 'pdf': '*.pdf', - \ 'perl': '*.pl,*.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.pm,*.psgi,*.t,Makefile.PL,Rexfile,ack,cpanfile,example.gitolite.rc,.gitolite.rc', + \ 'perl': '*.pl,*.al,*.cgi,*.fcgi,*.perl,*.ph,*.plx,*.pm,*.psgi,*.t,.latexmkrc,Makefile.PL,Rexfile,ack,cpanfile,latexmkrc,example.gitolite.rc,.gitolite.rc', \ 'pest': '*.pest', \ 'pf': 'pf.conf', \ 'pfmain': 'main.cf', @@ -415,9 +415,10 @@ let s:globs = { \ 'povini': '.povrayrc', \ 'ppd': '*.ppd', \ 'ppwiz': '*.it,*.ih', + \ 'prisma': '*.prisma', \ 'privoxy': '*.action', \ 'procmail': '.procmail,.procmailrc', - \ 'prolog': '*.pl,*.pro,*.prolog,*.yap,*.pdb', + \ 'prolog': '*.pl,*.plt,*.pro,*.prolog,*.yap,*.pdb', \ 'promela': '*.pml', \ 'proto': '*.proto', \ 'protocols': '', @@ -428,7 +429,7 @@ let s:globs = { \ 'puppet': '*.pp,Modulefile', \ 'purescript': '*.purs', \ 'pyrex': '*.pyx,*.pxd', - \ 'python': '*.py,*.cgi,*.fcgi,*.gyp,*.gypi,*.lmi,*.py3,*.pyde,*.pyi,*.pyp,*.pyt,*.pyw,*.rpy,*.smk,*.spec,*.tac,*.wsgi,*.xpy,*.ptl,.gclient,DEPS,SConscript,SConstruct,Snakefile,wscript,.pythonrc,.pythonstartup', + \ 'python': '*.py,*.cgi,*.fcgi,*.gyp,*.gypi,*.lmi,*.py3,*.pyde,*.pyi,*.pyp,*.pyt,*.pyw,*.rpy,*.spec,*.tac,*.wsgi,*.xpy,*.ptl,.gclient,DEPS,SConscript,SConstruct,wscript,.pythonrc,.pythonstartup', \ 'qmake': '*.pro,*.pri', \ 'qml': '*.qml,*.qbs', \ 'quake': '', @@ -482,7 +483,7 @@ let s:globs = { \ 'services': '', \ 'setserial': '', \ 'sexplib': '*.sexp', - \ 'sh': '*.sh,*.bash,*.bats,*.cgi,*.command,*.env,*.fcgi,*.ksh,*.sh.in,*.tmux,*.tool,*.zsh-theme,.bash_aliases,.bash_history,.bash_logout,.bash_profile,.bashrc,.cshrc,.env,.env.example,.flaskenv,.kshrc,.login,.profile,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,kshrc,login,man,profile', + \ 'sh': '*.sh,*.bash,*.bats,*.cgi,*.command,*.fcgi,*.ksh,*.sh.in,*.tmux,*.tool,*.trigger,*.zsh-theme,.bash_aliases,.bash_functions,.bash_history,.bash_logout,.bash_profile,.bashrc,.cshrc,.envrc,.flaskenv,.kshrc,.login,.profile,.tmux.conf,9fs,PKGBUILD,bash_aliases,bash_logout,bash_profile,bashrc,cshrc,gradlew,kshrc,login,man,profile,tmux.conf', \ 'sieve': '*.siv,*.sieve', \ 'sil': '*.sil', \ 'simula': '*.sim', @@ -554,7 +555,7 @@ let s:globs = { \ 'tilde': '*.t.html', \ 'tli': '*.tli', \ 'tmux': '.tmux*.conf', - \ 'toml': '*.toml,Cargo.lock,Gopkg.lock,Pipfile,poetry.lock', + \ 'toml': '*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,pdm.lock,poetry.lock', \ 'tpp': '*.tpp', \ 'tptp': '*.p,*.tptp,*.ax', \ 'trasys': '*.inp', @@ -582,7 +583,7 @@ let s:globs = { \ 'usserverlog': '*.usserver.log\c,usserver.log\c,usserver.*.log\c', \ 'usw2kagtlog': '*.usw2kagt.log\c,usw2kagt.log\c,usw2kagt.*.log\c', \ 'vala': '*.vala,*.vapi,*.valadoc', - \ 'vb': '*.bas,*.cls,*.frm,*.frx,*.vba,*.vbs,*.dsm,*.ctl,*.sba', + \ 'vb': '*.bas,*.cls,*.frm,*.vba,*.vbs,*.dsm,*.ctl,*.sba', \ 'vbnet': '*.vb,*.vbhtml', \ 'vcl': '*.vcl', \ 'velocity': '*.vm', @@ -613,7 +614,7 @@ let s:globs = { \ 'xhtml': '*.xhtml,*.xht', \ 'xinetd': '', \ 'xmath': '*.msc,*.msf', - \ 'xml': '*.xml,*.adml,*.admx,*.ant,*.axaml,*.axml,*.builds,*.ccproj,*.ccxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.hzp,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mod,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.psc1,*.pt,*.qhelp,*.rdf,*.res,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.targets,*.tml,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml.dist,*.xmp,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*.cdxml,*.tpm,*.csproj.user,*.wpl,.classpath,.cproject,.project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config,*fglrxrc', + \ 'xml': '*.xml,*.adml,*.admx,*.ant,*.axaml,*.axml,*.builds,*.ccproj,*.ccxml,*.clixml,*.cproject,*.cscfg,*.csdef,*.csl,*.csproj,*.ct,*.depproj,*.dita,*.ditamap,*.ditaval,*.dll.config,*.dotsettings,*.filters,*.fsproj,*.fxml,*.glade,*.gml,*.gmx,*.grxml,*.gst,*.hzp,*.iml,*.ivy,*.jelly,*.jsproj,*.kml,*.launch,*.mdpolicy,*.mjml,*.mod,*.mojo,*.mxml,*.natvis,*.ncl,*.ndproj,*.nproj,*.nuspec,*.odd,*.osm,*.pkgproj,*.pluginspec,*.proj,*.props,*.psc1,*.pt,*.qhelp,*.rdf,*.res,*.resx,*.rss,*.sch,*.scxml,*.sfproj,*.shproj,*.srdf,*.storyboard,*.sublime-snippet,*.sw,*.targets,*.tml,*.typ,*.ui,*.urdf,*.ux,*.vbproj,*.vcxproj,*.vsixmanifest,*.vssettings,*.vstemplate,*.vxml,*.wixproj,*.workflow,*.wsdl,*.wsf,*.wxi,*.wxl,*.wxs,*.x3d,*.xacro,*.xaml,*.xib,*.xlf,*.xliff,*.xmi,*.xml.dist,*.xmp,*.xproj,*.xsd,*.xspec,*.xul,*.zcml,*.cdxml,*.tpm,*.csproj.user,*.wpl,.classpath,.cproject,.project,App.config,NuGet.config,Settings.StyleCop,Web.Debug.config,Web.Release.config,Web.config,packages.config,*fglrxrc', \ 'xml.twig': '*.xml.twig', \ 'xmodmap': '*Xmodmap,*xmodmap*', \ 'xpm': '*.xpm,*.pm', @@ -629,7 +630,7 @@ let s:globs = { \ 'yaml.docker-compose': 'docker-compose*.yaml,docker-compose*.yml', \ 'z8a': '*.z8a', \ 'zephir': '*.zep', - \ 'zig': '*.zig,*.zir', + \ 'zig': '*.zig,*.zig.zon,*.zir', \ 'zimbu': '*.zu', \ 'zir': '*.zir', \ 'zsh': '*.zsh,.zshrc,.zshenv,.zlogin,.zprofile,.zlogout,.zlog*,.zcompdump*,.zfbfmarks,.zsh*', diff --git a/autoload/pony.vim b/autoload/pony.vim deleted file mode 100644 index eac219380..000000000 --- a/autoload/pony.vim +++ /dev/null @@ -1,536 +0,0 @@ -if polyglot#init#is_disabled(expand(':p'), 'pony', 'autoload/pony.vim') - finish -endif - -" Vim plugin file -" Language: Pony -" Maintainer: Jak Wings - -" TODO: Make sure echomsg is off for release. -let s:cpo_save = &cpo -set cpo&vim - - -"let s:skip = 'InCommentOrLiteral(line("."), col("."))' -let s:skip2 = 'InLiteral(line("."), col(".")) || InComment(line("."), col(".")) == 1' -let s:skip3 = '!InKeyword(line("."), col("."))' -let s:skip4 = '!InBracket(line("."), col("."))' -let s:cfstart = '\v<%(ifdef|if|match|while|for|repeat|try|with|recover|object|lambda|iftype)>' -let s:cfmiddle = '\v<%(then|elseif|else|until|do|in|elseiftype)>|\|' -let s:cfend = '\v' -let s:bstartp = '\v<%(ifdef|if|then|elseif|else|(match)|while|for|in|do|try|with|recover|repeat|until|(object)|lambda|iftype|elseiftype)>' - -function! pony#Indent() - if v:lnum <= 1 - return 0 - endif - - call cursor(v:lnum, 1) - let l:pnzpos = searchpos('.', 'cbnW') - if l:pnzpos == [0, 0] - return 0 - endif - - if s:InComment2(l:pnzpos) > 1 - "echomsg 'Comment' (l:pnzpos[0] . '-' . v:lnum) -1 - return cindent(v:lnum) - endif - - if s:InLiteral2(l:pnzpos) - "echomsg 'String' (l:pnzpos[0] . '-' . v:lnum) -1 - return -1 - endif - - unlet! l:pnzpos - - " NOTE: Lines started in comments and strings are checked already. - - let l:pnblnum = s:PrevNonblank(v:lnum - 1) - if l:pnblnum < 1 - return 0 - endif - - let l:pnbline = getline(l:pnblnum) - let l:pnbindent = indent(l:pnblnum) - - let l:line = getline(v:lnum) - let l:indent = l:pnbindent - let l:shiftwidth = shiftwidth() - - " FIXME? - let l:continuing = 0 - " If the previous line ends with a unary or binary operator, - if s:IsContinued(l:pnblnum) - let l:contlnum = l:pnblnum - let l:ppcontinued = 0 - let l:ppnblnum = s:PrevNonblank(l:pnblnum - 1) - while s:IsContinued(l:ppnblnum) - let l:ppcontinued += 1 - let l:contlnum = l:ppnblnum - let l:ppnblnum = s:PrevNonblank(l:ppnblnum - 1) - endwhile - "echomsg 'Continued1' l:pnblnum l:contlnum - " If the previous line is also continuing another line, - if l:ppcontinued - let l:continuing = 1 - if getline(l:contlnum) =~# '\v^\s*%(actor|class|struct|primitive|trait|type|interface)>' - " reset the indent level. - "echomsg 'Continuing0' (l:contlnum . '-' . v:lnum) (l:shiftwidth * 2) - let l:indent = l:shiftwidth * 2 - else - " keep using the previous indent. - "echomsg 'Continuing1' (l:pnblnum . '-' . v:lnum) l:pnbindent - let l:indent = l:pnbindent - endif - " if the previous line is part of the definition of a class, - elseif l:pnbline =~# '\v^\s*%(actor|class|struct|primitive|trait|type|interface)>' - " reset the indent level. - "echomsg 'Continuing2' (l:pnblnum . '-' . v:lnum) (l:shiftwidth * 2) - let l:continuing = 1 - let l:indent = l:shiftwidth * 2 - " if the previous line is part of the definition of a method, - elseif l:pnbline =~# '\v^\s*%(fun|new|be)>' - " reset the indent level. - "echomsg 'Continuing3' (l:pnblnum . '-' . v:lnum) (l:pnbindent + l:shiftwidth) - let l:continuing = 1 - let l:indent = l:pnbindent + l:shiftwidth - " if the previous line is the start of a definition body, - elseif l:pnbline =~# '=>\s*$' - " indent this line. - "echomsg 'Continuing4' (l:pnblnum . '-' . v:lnum) (l:pnbindent + l:shiftwidth) - let l:continuing = 1 - let l:indent = l:pnbindent + l:shiftwidth - else - " indent this line twice as far. - "echomsg 'Continuing5' (l:pnblnum . '-' . v:lnum) (l:pnbindent + l:shiftwidth * 2) - let l:continuing = 1 - let l:indent = l:pnbindent + l:shiftwidth * 2 - endif - - unlet! l:contlnum l:ppnblnum l:ppcontinued - endif - - " If this line starts a document string, - if !l:continuing && l:line =~# '^\s*"""' - let l:ppnblnum = s:PrevNonblank(l:pnblnum - 1) - if s:IsContinued(l:ppnblnum) - let l:contlnum = l:ppnblnum - while s:IsContinued(l:ppnblnum) - let l:contlnum = l:ppnblnum - let l:ppnblnum = s:PrevNonblank(l:ppnblnum - 1) - endwhile - if getline(l:contlnum) =~# '\v^\s*%(actor|class|struct|primitive|trait|type|interface)>' - " reset the indent level. - "echomsg 'DocString' (l:contlnum . '-' . v:lnum) l:shiftwidth - return l:shiftwidth - endif - endif - - unlet! l:contlnum l:ppnblnum - endif - - " If the previous line contains an unmatched opening bracket - if !l:continuing && l:pnbline =~# '[{[(]' - " if the line ends with an opening bracket, - if l:pnbline =~# '[{[(]\s*$' && !s:InCommentOrLiteral(l:pnblnum, col([l:pnblnum, '$']) - 1) - " indent this line. - let l:indent += l:shiftwidth - else - " find the unmatched opening bracket, - let l:start = [0, 0] - let l:end = col([l:pnblnum, '$']) - 1 - call cursor(l:pnblnum, l:end) - while l:end > 0 - let l:start = s:OuterPos(l:start, searchpairpos('(', '', ')', 'bnW', s:skip4, l:pnblnum)) - let l:start = s:OuterPos(l:start, searchpairpos('\[', '', '\]', 'bnW', s:skip4, l:pnblnum)) - let l:start = s:OuterPos(l:start, searchpairpos('{', '', '}', 'bnW', s:skip4, l:pnblnum)) - if l:start == [0, 0] - break - endif - " find the matched closing bracket on the same line, - call cursor(l:start[0], l:start[1]) - let l:c = s:CharAtCursor(l:start[0], l:start[1]) - if searchpair(escape(l:c, '['), '', escape(tr(l:c, '([{', ')]}'), ']'), - \ 'znW', s:skip4, l:pnblnum) < 1 - " the unmatched opening bracket is found, - break - endif - let l:end = l:start[1] - let l:start = [0, 0] - endwhile - if l:start != [0, 0] - " indent this line. - "echomsg 'Open bracket' (l:pnblnum . '-' . v:lnum) (l:indent + l:shiftwidth) - let l:indent += l:shiftwidth - endif - endif - - unlet! l:start l:end l:c - endif - - " If there is a matched closing bracket on the previous line, - " NOTE: - " >|[ - " | (1 - - " | 1) * 2] - " | command - " ^ - if !l:continuing - call cursor(l:pnblnum, 1) - " find the last closing bracket, - let l:end = [0, 0] - let l:end = s:OuterPos(l:end, searchpairpos('(', '', ')', 'zncr', s:skip4, l:pnblnum)) - let l:end = s:OuterPos(l:end, searchpairpos('\[', '', '\]', 'zncr', s:skip4, l:pnblnum)) - let l:end = s:OuterPos(l:end, searchpairpos('{', '', '}', 'zncr', s:skip4, l:pnblnum)) - if l:end != [0, 0] - " find the matched opening bracket on another line, - let l:c = s:CharAtCursor(l:end[0], l:end[1]) - let l:start = searchpairpos(escape(tr(l:c, ')]}', '([{'), '['), '', escape(l:c, ']'), 'nbW', s:skip4) - if l:start[0] != l:end[0] - " and then this line has the same indent as the line the matched bracket stays. - "echomsg 'Matched bracket' (l:start[0] . '-' . v:lnum) indent(l:start[0]) - let l:indent = indent(l:start[0]) - endif - endif - - unlet! l:start l:end l:c - endif - - " If there is a matched closing bracket on this line, - " NOTE: - " |[ - " >| (1 - - " | 1) * 2 - " |] - " ^ ^ - if l:line =~# '^\s*[)\]}]' - " find the first closing bracket, - call cursor(v:lnum, 1) - let l:end = [0, 0] - let l:end = s:InnerPos(l:end, searchpairpos('(', '', ')', 'zncW', s:skip4, v:lnum)) - let l:end = s:InnerPos(l:end, searchpairpos('\[', '', '\]', 'zncW', s:skip4, v:lnum)) - let l:end = s:InnerPos(l:end, searchpairpos('{', '', '}', 'zncW', s:skip4, v:lnum)) - if l:end != [0, 0] - " find the matched opening bracket on another line, - let l:c = s:CharAtCursor(l:end[0], l:end[1]) - let l:start = searchpairpos(escape(tr(l:c, ')]}', '([{'), '['), '', escape(l:c, ']'), 'nbW', s:skip4) - if l:start[0] != l:end[0] - " and then this line has the same indent as the line the matched bracket stays. - "echomsg 'Closing Bracket' (l:start[0] . '-' . v:lnum) indent(l:start[0]) - let l:indent = indent(l:start[0]) - endif - endif - - unlet! l:start l:end l:c - endif - - " If this line starts the definition of a method, closure or match case, - if l:line =~# '^\s*=>' - " find the start of the definition, - call cursor(v:lnum, 1) - let l:start = searchpairpos('\v<%(new|be|fun|lambda)>|\|', '', '=>\zs', 'bnW', s:skip3) - if l:start != [0, 0] - " then this line has the same indent as the start. - "echomsg 'Method body' (l:start[0] . '-' . v:lnum) indent(l:start[0]) - return indent(l:start[0]) - endif - - unlet! l:start - endif - - " If this line starts a class definition or starts an alias, - if l:line =~# '\v^\s*%(actor|class|struct|primitive|trait|interface|use|type)>' - " reset the indent level. - return 0 - endif - - " If this line starts a method definition, - if l:line =~# '\v^\s*%(new|be|fun)>' - call cursor(v:lnum, 1) - let l:start = searchpairpos(s:cfstart, s:cfmiddle, s:cfend, 'bW', s:skip3) - if l:start != [0, 0] - let l:start = searchpos(s:bstartp, 'zcnpW', l:start[0]) - " see if it is in an object block, - if l:start[2] == 3 - "echomsg 'Method in object' (l:start[0] . '-' . v:lnum) (l:shiftwidth + indent(l:start[0])) - return l:shiftwidth + indent(l:start[0]) - endif - endif - return l:shiftwidth - endif - - " If this line starts a match case, - call cursor(v:lnum, 1) - if l:line =~# '^\s*|' && s:InKeyword(searchpos('|', 'znW', v:lnum)) - " find the start or the previous case of the match block, - let l:start = searchpairpos(s:cfstart, s:cfmiddle, s:cfend, 'bnW', s:skip3) - if l:start != [0, 0] - " then this line has the same indent as the start. - "echomsg 'Match case' (l:start[0] . '-' . v:lnum) indent(l:start[0]) - return indent(l:start[0]) - endif - - unlet! l:start - endif - - " If this line ends (part of) a control flow, - if l:line =~# '\v^\s*%(end|elseif|else|then|in|do|until|elseiftype)>' - " find the start or middle of the control block, - call cursor(v:lnum, 1) - let l:start = searchpairpos(s:cfstart, s:cfmiddle, s:cfend, 'bnW', s:skip3) - if l:start != [0, 0] - " then this line has the same indent as the start. - "echomsg 'Block end' (l:start[0] . '-' . v:lnum) indent(l:start[0]) - return indent(l:start[0]) - endif - - unlet! l:start - endif - - " If the previous line starts a class definition, - if l:pnbline =~# '\v^\s*%(actor|class|struct|primitive|trait|type|interface)>' - " reset the indent level. - if s:IsContinued(l:pnblnum) - return l:shiftwidth * 2 - else - return l:shiftwidth - endif - endif - - " If the previous line starts a method definition, - if l:pnbline =~# '\v^\s*%(new|be|fun)>' - return l:pnbindent + l:shiftwidth - endif - - " If the previous line starts (part of) a control flow, - call cursor(l:pnblnum, 1) - while 1 - " find the start of the control block, - let l:start = searchpos(s:bstartp, 'zcepW', l:pnblnum) - if l:start[2] == 0 - break - endif - if !s:InKeyword(l:start[0:1]) - call cursor(l:pnblnum, l:start[1] + 3) - continue - endif - let l:index = l:start[2] - " find the end of the control block on the same line, - let l:end = searchpair(s:cfstart, '', s:cfend, 'znW', s:skip3, l:pnblnum) - " if the control block is not ended, - if l:end < 1 - " if this line is a case for a match, - if l:index == 2 && l:line =~# '^\s*|' - " then this line has the same indent as the start of the match block. - return l:pnbindent - else - " then indent this line. - "echomsg 'Block start' (l:pnblnum . '-' . v:lnum) (l:pnbindent + l:shiftwidth) - return l:pnbindent + l:shiftwidth - endif - endif - endwhile - - unlet! l:start l:end l:index - - return l:indent -endfunction - -function! s:PrevNonblank(lnum) - let l:lnum = prevnonblank(a:lnum) - while l:lnum > 0 && (s:InComment2(l:lnum, 1) || s:InLiteral2(l:lnum, 1)) - let l:lnum = prevnonblank(l:lnum - 1) - endwhile - return l:lnum -endfunction - -" NOTE: -" v -" |1 /* comment */ -" |2 -function! s:IsContinued(lnum) - let l:lnum = s:PrevNonblank(a:lnum) - if l:lnum < 1 - return 0 - endif - let l:line = getline(l:lnum) - let l:width = strwidth(substitute(l:line, '\s*$', '', '')) - " FIXME? - " | 1 + // - " | // - " | 2 - return !s:InCommentOrLiteral(a:lnum, l:width) - \ && (l:line =~# '\v<%(and|or|xor|is|isnt|as|not|consume|addressof|digestof)\s*$' - \ || l:line =~# '\v%([=\-.]\>|[]\=\~?|\<\<\~?|\>\>\~?|\<:|[+\-*/%<>]\~?|[.,|:@~])\s*$' - \ ) -endfunction - -function! s:InCommentOrLiteral(...) - return call('s:InComment', a:000) || call('s:InLiteral', a:000) -endfunction - -function! s:InKeyword(...) - let [l:lnum, l:col] = (type(a:1) == type([]) ? a:1 : a:000) - for id in s:Or(synstack(l:lnum, l:col), []) - if synIDattr(id, 'name') =~# '^ponyKw' - return 1 - endif - endfor - return 0 -endfunction - -function! s:InBracket(...) - let [l:lnum, l:col] = (type(a:1) == type([]) ? a:1 : a:000) - for id in s:Or(synstack(l:lnum, l:col), []) - if synIDattr(id, 'name') ==# 'ponyBracket' - return 1 - endif - endfor - return 0 -endfunction - -function! s:InComment(...) - let [l:lnum, l:col] = (type(a:1) == type([]) ? a:1 : a:000) - let l:stack = synstack(l:lnum, l:col) - let l:i = len(l:stack) - while l:i > 0 - let l:sname = synIDattr(l:stack[l:i - 1], 'name') - if l:sname =~# '^ponyNestedCommentX\?$' - return 1 + l:i - (l:sname =~# 'X$') - elseif l:sname =~# '^ponyCommentX\?$' - return 1 - endif - let l:i -= 1 - endwhile - return 0 -endfunction - -function! s:InLiteral(...) - let [l:lnum, l:col] = (type(a:1) == type([]) ? a:1 : a:000) - let l:stack = synstack(l:lnum, l:col) - let l:i = len(l:stack) - while l:i > 0 - let l:sname = synIDattr(l:stack[l:i - 1], 'name') - if l:sname =~# '^ponyDocumentStringX\?$' - return 3 - elseif l:sname =~# '^ponyStringX\?$' - return 2 - elseif l:sname =~# '^ponyCharacterX\?$' - return 1 - endif - let l:i -= 1 - endwhile - return 0 -endfunction - -" NOTE: -" |// //inside -" ^^^^^^^^^^ -" |/* /*inside*/ */ -" ^^^^^^^^^^^^^^ -function! s:InComment2(...) - let [l:lnum, l:col] = (type(a:1) == type([]) ? a:1 : a:000) - let l:stack = synstack(l:lnum, l:col) - let l:i = len(l:stack) - while l:i > 0 - let l:sname = synIDattr(l:stack[l:i - 1], 'name') - if l:sname ==# 'ponyNestedComment' - return 1 + l:i - elseif l:sname ==# 'ponyComment' - return 1 - elseif l:sname =~# '\v^pony%(Nested)?CommentX$' - return 0 - endif - let l:i -= 1 - endwhile - return 0 -endfunction - -" NOTE: -" |"inside" -" ^^^^^^ -" |"""inside""""" -" ^^^^^^^^^^^^ -function! s:InLiteral2(...) - let [l:lnum, l:col] = (type(a:1) == type([]) ? a:1 : a:000) - let l:stack = synstack(l:lnum, l:col) - let l:i = len(l:stack) - while l:i > 0 - let l:sname = synIDattr(l:stack[l:i - 1], 'name') - if l:sname ==# 'ponyDocumentString' - return 3 - elseif l:sname ==# 'ponyString' - return 2 - elseif l:sname ==# 'ponyCharacter' - return 1 - elseif l:sname =~# '\v^pony%(DocumentString|String|Character)X$' - return 0 - endif - let l:i -= 1 - endwhile - return 0 -endfunction - -function! s:CharAtCursor(...) - let [l:lnum, l:col] = (type(a:1) == type([]) ? a:1 : a:000) - return matchstr(getline(l:lnum), '\%' . l:col . 'c.') -endfunction - -function! s:Or(x, y) - return !empty(a:x) ? a:x : a:y -endfunction - -function! s:InnerPos(x, y) - if a:x == [0, 0] - return a:y - elseif a:y == [0, 0] - return a:x - else - return a:x[1] < a:y[1] ? a:x : a:y - end -endfunction - -function! s:OuterPos(x, y) - if a:x == [0, 0] - return a:y - elseif a:y == [0, 0] - return a:x - else - return a:x[1] > a:y[1] ? a:x : a:y - end -endfunction - -function! pony#ClearTrailingSpace(all, alt, ...) - let l:force = (a:0 > 0 ? a:1 : 0) - if !l:force && (&readonly || !&modifiable || !&modified) - return - endif - if a:all - for lnum in range(1, line('$')) - let l:line = getline(lnum) - let l:end = col([lnum, '$']) - 1 - if l:end > 0 && l:line =~# '\s$' && !s:InLiteral(lnum, l:end) - if a:alt - call setline(lnum, substitute(l:line, '\S\@<=\s\s*$', '', '')) - else - call setline(lnum, substitute(l:line, '\s\+$', '', '')) - endif - endif - endfor - else - let l:lnum = line('.') - let l:end = col('$') - 1 - let l:line = getline(l:lnum) - if l:line =~# '\s$' && !s:InLiteral(l:lnum, l:end) - if a:alt - call setline(l:lnum, substitute(l:line, '\s\+$', '', '')) - else - call setline(l:lnum, substitute(l:line, '\S\@<=\s\s*$', '', '')) - endif - endif - endif -endfunction - - -let &cpo = s:cpo_save -unlet s:cpo_save diff --git a/autoload/requirements.vim b/autoload/requirements.vim index 1132d7b27..113e8600e 100644 --- a/autoload/requirements.vim +++ b/autoload/requirements.vim @@ -3,46 +3,31 @@ if polyglot#init#is_disabled(expand(':p'), 'requirements', 'autoload/requ endif "" -" @section Introduction, intro -" @library -" is generated by . -" See for more information about installation and screenshots. +" Refer https://github.com/vim/vim/blob/75e27d78f5370e7d2e0898326d9b080937e7b090/runtime/scripts.vim#L33-L71 +" +" When a file's shebang is "pip install -r" or "pip-compile", +" set its filetype to |requirements|. +function! requirements#shebang() abort + let s:line1 = getline(1) -"" -" Update cache. -function! requirements#update_cache() abort - let s:items = [] - let l:pip_items = split(system('COMP_WORDS="pip install -" COMP_CWORD=2 PIP_AUTO_COMPLETE=1 pip')) - let l:pypi_items = split(system('pip-cache pkgnames')) - for l:item in l:pip_items - let s:items += [{'word': l:item, 'menu': 'pip'}] - endfor - for l:item in l:pypi_items - let s:items += [{'word': l:item, 'menu': 'pypi'}] - endfor - call writefile([json_encode(s:items)], s:cache) + if s:line1 =~# "^#!" + if s:line1 =~# '^#!\s*\S*\' + let s:name = substitute(s:line1, '^#!.*\\s\+\(\i\+\).*', '\1', '') + elseif s:line1 =~# '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)' + let s:name = substitute(s:line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '') + else + let s:name = substitute(s:line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '') + endif + if s:name =~# '^pip' + set ft=requirements + endif + endif endfunction - -if exists('*stdpath') - let s:cache_dir_home = stdpath('cache') -else - let s:cache_dir_home = $HOME . '/.cache/nvim' -endif -let s:cache_dir = s:cache_dir_home . '/requirements.vim' -call mkdir(s:cache_dir, 'p') -"" -" Completion cache path. -call g:requirements#utils#plugin.Flag('g:requirements#cache', - \ s:cache_dir . '/requirements.json' - \ ) -let s:cache = g:requirements#cache -try - let s:items = json_decode(readfile(s:cache)[0]) -catch /\v^Vim%(\(\a+\))?:E(684|484|491):/ - call requirements#update_cache() - let s:items = json_decode(readfile(s:cache)[0]) -endtry -"" -" Completion cache contents. For program. -call g:requirements#utils#plugin.Flag('g:requirements#items', s:items) " vim: et sw=4 ts=4 sts=4: diff --git a/autoload/requirements/utils.vim b/autoload/requirements/utils.vim deleted file mode 100644 index 963ecb719..000000000 --- a/autoload/requirements/utils.vim +++ /dev/null @@ -1,15 +0,0 @@ -if polyglot#init#is_disabled(expand(':p'), 'requirements', 'autoload/requirements/utils.vim') - finish -endif - -"" -" @section Configuration, config - -function! s:Flag(name, default) abort - let l:scope = get(split(a:name, ':'), 0, 'g:') - let l:name = get(split(a:name, ':'), -1) - let {l:scope}:{l:name} = get({l:scope}:, l:name, a:default) -endfunction - -let g:requirements#utils#plugin = {'Flag': funcref('s:Flag')} -" vim: et sw=4 ts=4 sts=4: diff --git a/autoload/rubycomplete.vim b/autoload/rubycomplete.vim index 9c3f9ffd4..c4c9b6e42 100644 --- a/autoload/rubycomplete.vim +++ b/autoload/rubycomplete.vim @@ -6,7 +6,6 @@ endif " Language: Ruby " Maintainer: Mark Guzman " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns " ---------------------------------------------------------------------------- " " Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com) @@ -493,7 +492,7 @@ class VimRubyCompletion trail = "%s%s" % [ dir, sub ] tcfg = "%sconfig" % trail - if File.exists?( tcfg ) + if File.exist?( tcfg ) rails_base = trail break end @@ -506,7 +505,7 @@ class VimRubyCompletion bootfile = rails_base + "config/boot.rb" envfile = rails_base + "config/environment.rb" - if File.exists?( bootfile ) && File.exists?( envfile ) + if File.exist?( bootfile ) && File.exist?( envfile ) begin require bootfile require envfile diff --git a/autoload/smt2/formatter.vim b/autoload/smt2/formatter.vim index 6a461b4c1..1ef410b42 100644 --- a/autoload/smt2/formatter.vim +++ b/autoload/smt2/formatter.vim @@ -3,14 +3,17 @@ if polyglot#init#is_disabled(expand(':p'), 'smt2', 'autoload/smt2/formatt endif " Formatting requires a rather recent Vim version -if !((v:version > 802) || (v:version == 802 && has("patch2725"))) +if (v:version < 802) || (v:version == 802 && !has("patch2725")) const s:errmsg_oldvim = "Vim >= 8.2.2725 required for auto-formatting" "Dummies function! smt2#formatter#FormatCurrentParagraph() echoerr s:errmsg_oldvim endfunction - function! smt2#formatter#FormatAllParagraphs() + function! smt2#formatter#FormatOutermostSExpr() + echoerr s:errmsg_oldvim + endfunction + function! smt2#formatter#FormatFile() echoerr s:errmsg_oldvim endfunction @@ -88,55 +91,75 @@ def Format(ast: dict, indent = 0): string call formatted->add(child->Format()) endfor return formatted->join("\n") + elseif ast.kind ==# 'File' + var formatted = [] + for child in ast.value + call formatted->add(child->Format()) + endfor + return formatted->join("\n\n") endif throw 'Cannot format AST node: ' .. string(ast) return '' # Unreachable enddef # ------------------------------------------------------------------------------ -# Public functions +# Auxiliary # ------------------------------------------------------------------------------ -def smt2#formatter#FormatCurrentParagraph() + +def FormatInCurrentBuffer(ast: dict) const cursor = getpos('.') - const ast = smt2#parser#ParseCurrentParagraph() - # Identify on which end of the buffer we are (to fix newlines later) - silent! normal! { - const is_first_paragraph = line('.') == 1 - silent! normal! } - const is_last_paragraph = line('.') == line('$') - - # Replace paragraph by formatted lines - const lines = split(Format(ast), '\n') - silent! normal! {d} - if is_last_paragraph && !is_first_paragraph - call append('.', [''] + lines) - else - call append('.', lines + ['']) + # Format lines and potential surrounding text on them + const formatted_lines = split(Format(ast), '\n') + const ast_coords = ast.CalcCoords() + const ws_mask = " \n\r\t" + const first_line_part_to_keep = getline(ast_coords[0].line) + ->strcharpart(0, ast_coords[0].col - 2) + ->trim(ws_mask, 2) + const last_line_part_to_keep = getline(ast_coords[1].line) + ->strcharpart(ast_coords[1].col - 1) + ->trim(ws_mask, 1) + + # If section of AST has trailing whitespace until the file end, remove it + cursor(ast_coords[1].line, ast_coords[1].col) + if search('\m\C\S', 'W') == 0 + deletebufline('%', ast_coords[1].line + 1, line('$')) endif - # Remove potentially introduced first empty line - if is_first_paragraph | silent! :1delete | endif + # Replace section of AST by formatted lines (w/o killing surrounding text) + deletebufline('%', ast_coords[0].line, ast_coords[1].line) + if !empty(last_line_part_to_keep) + last_line_part_to_keep->append(ast_coords[0].line - 1) + endif + formatted_lines->append(ast_coords[0].line - 1) + if !empty(first_line_part_to_keep) + first_line_part_to_keep->append(ast_coords[0].line - 1) + endif + + # If section of AST has leading whitespace until the file start, remove it + cursor(ast_coords[0].line, ast_coords[0].col) + if search('\m\C\S', 'bW') == 0 + deletebufline('%', 1, ast_coords[0].line - 1) + endif # Restore cursor position call setpos('.', cursor) enddef -def smt2#formatter#FormatAllParagraphs() - const cursor = getpos('.') - const asts = smt2#parser#ParseAllParagraphs() - - # Clear buffer & insert formatted paragraphs - silent! :1,$delete - for ast in asts - const lines = split(Format(ast), '\n') + [''] - call append('$', lines) - endfor +# ------------------------------------------------------------------------------ +# Public functions +# ------------------------------------------------------------------------------ +def smt2#formatter#FormatCurrentParagraph() + const ast = smt2#parser#ParseCurrentParagraph() + FormatInCurrentBuffer(ast) +enddef - # Remove first & trailing empty lines - silent! :1delete - silent! :$delete +def smt2#formatter#FormatOutermostSExpr() + const ast = smt2#parser#ParseOutermostSExpr() + FormatInCurrentBuffer(ast) +enddef - # Restore cursor position - call setpos('.', cursor) +def smt2#formatter#FormatFile() + const ast = smt2#parser#ParseFile() + FormatInCurrentBuffer(ast) enddef diff --git a/autoload/smt2/parser.vim b/autoload/smt2/parser.vim index b9e4837f3..553551a1c 100644 --- a/autoload/smt2/parser.vim +++ b/autoload/smt2/parser.vim @@ -11,17 +11,37 @@ set maxfuncdepth=100000000 # SMT files tend to be highly nested # TODO: Change Ast.kind type from string to enum/number? # ------------------------------------------------------------------------------ -# AST nodes -- essentially named token wrappers +# AST nodes # -# Note: pos_from, pos_to and contains_comment were only introduced to allow for -# a fast FitsOneLine(ast) function in the formatter. -# Here, pos_from and pos_to refer to indices of characters -- not tokens +# Note: pos_from, pos_to and contains_comment allow for a fast FitsOneLine(ast) +# function in the formatter. +# Here, pos_from and pos_to refer to indices of characters -- not tokens. # ------------------------------------------------------------------------------ -def Ast(kind: string, value: any, pos_from: number, pos_to: number, contains_comment: bool): dict - return {kind: kind, value: value, pos_from: pos_from, pos_to: pos_to, contains_comment: contains_comment} +def Ast(kind: string, value: any, pos_from: number, pos_to: number, contains_comment: bool, scanner: dict): dict + # User-facing functionality wants start/end line and column -- not positions + def CalcCoords(): list> + const from = scanner.calcCoord(pos_from) + # If expression ends at end of line, pos_to will be in next line. + # That's undesired. Stay in the actual last line. + var to = scanner.calcCoord(pos_to - 1) + to.col += 1 + return [from, to] + enddef + return {kind: kind, value: value, pos_from: pos_from, pos_to: pos_to, contains_comment: contains_comment, CalcCoords: CalcCoords} enddef -def ParagraphAst(exprs: list>, pos_from: number, pos_to: number): dict +def FileAst(paragraphs: list>, pos_from: number, pos_to: number, scanner: dict): dict + var contains_comment = false + for paragraph in paragraphs + if paragraph.contains_comment + contains_comment = true + break + endif + endfor + return Ast('File', paragraphs, pos_from, pos_to, contains_comment, scanner) +enddef + +def ParagraphAst(exprs: list>, pos_from: number, pos_to: number, scanner: dict): dict var contains_comment = false for expr in exprs if expr.contains_comment @@ -29,10 +49,10 @@ def ParagraphAst(exprs: list>, pos_from: number, pos_to: number): dict break endif endfor - return Ast('Paragraph', exprs, pos_from, pos_to, contains_comment) + return Ast('Paragraph', exprs, pos_from, pos_to, contains_comment, scanner) enddef -def SExprAst(exprs: list>, pos_from: number, pos_to: number): dict +def SExprAst(exprs: list>, pos_from: number, pos_to: number, scanner: dict): dict var contains_comment = false for expr in exprs if expr.contains_comment @@ -40,15 +60,22 @@ def SExprAst(exprs: list>, pos_from: number, pos_to: number): dict): dict - return Ast('Atom', token, token.pos, token.pos + len(token.lexeme), token.kind == 8) +def AtomAst(token: dict, scanner: dict): dict + return Ast('Atom', token, token.pos, token.pos + len(token.lexeme), token.kind == 8, scanner) enddef def PrintAst(ast: dict, indent = 0) - echo repeat(' ', indent * 2) .. '[' .. ast.kind .. '] ' + const coords = ast.CalcCoords() + + echo printf("[%5d-%-5d) [%4d:%-3d-%4d:%-3d) %s[%s] ", + ast.pos_from, ast.pos_to, + coords[0].line, coords[0].col, + coords[1].line, coords[1].col, + repeat(' ', indent * 2), + ast.kind) if ast.kind ==# 'Atom' echon ast.value.lexeme @@ -60,13 +87,18 @@ def PrintAst(ast: dict, indent = 0) for v in ast.value call PrintAst(v, indent + 1) endfor + elseif ast.kind ==# 'File' + for v in ast.value + call PrintAst(v, indent + 1) + endfor endif enddef # ------------------------------------------------------------------------------ # Grammar # ------------------------------------------------------------------------------ -# Paragraph ::= Expr+ +# File ::= Paragraph+ +# Paragraph ::= Expr+ EndOfParagraph # Expr ::= SExpr | Atom # SExpr ::= '(' Expr* ')' @@ -77,14 +109,16 @@ def AtStartOfLParen(scanner: dict): bool return scanner.cur_token.kind == 0 # token_lparen enddef -def ParseLParen(scanner: dict) # consumes token; no return +def ParseLParen(scanner: dict): dict if debug scanner->smt2#scanner#Enforce(scanner->AtStartOfLParen(), "ParseLParen called but not at start of LParen", scanner.cur_token.pos) endif + const token = scanner.cur_token scanner->smt2#scanner#NextToken() + return token enddef # ------------------------------------------------------------------------------ @@ -94,14 +128,16 @@ def AtStartOfRParen(scanner: dict): bool return scanner.cur_token.kind == 1 # token_rparen enddef -def ParseRParen(scanner: dict) # consumes token; no return +def ParseRParen(scanner: dict): dict if debug scanner->smt2#scanner#Enforce(scanner->AtStartOfRParen(), "ParseRParen called but not at start of RParen", scanner.cur_token.pos) endif + const token = scanner.cur_token scanner->smt2#scanner#NextToken() + return token enddef # ------------------------------------------------------------------------------ @@ -118,7 +154,7 @@ def ParseAtom(scanner: dict): dict scanner.cur_token.pos) endif - const ast = AtomAst(scanner.cur_token) + const ast = AtomAst(scanner.cur_token, scanner) scanner->smt2#scanner#NextToken() return ast enddef @@ -129,6 +165,7 @@ enddef def AtStartOfExpr(scanner: dict): bool return scanner->AtStartOfSExpr() || scanner->AtStartOfAtom() enddef + def ParseExpr(scanner: dict): dict if debug scanner->smt2#scanner#Enforce(scanner->AtStartOfExpr(), @@ -146,6 +183,7 @@ enddef # SExpr # ------------------------------------------------------------------------------ const AtStartOfSExpr = funcref(AtStartOfLParen) + def ParseSExpr(scanner: dict): dict const pos_from = scanner.cur_token.pos @@ -165,10 +203,10 @@ def ParseSExpr(scanner: dict): dict scanner->smt2#scanner#Enforce(scanner->AtStartOfRParen(), printf("Expected RParen but got %s", scanner.cur_token.kind->smt2#scanner#TokenKind2Str()), scanner.cur_token.pos) - scanner->ParseRParen() + const end_token = scanner->ParseRParen() - const pos_to = scanner.cur_token.pos - return SExprAst(exprs, pos_from, pos_to) + const pos_to = end_token.pos + 1 + return SExprAst(exprs, pos_from, pos_to, scanner) enddef # ------------------------------------------------------------------------------ @@ -187,41 +225,132 @@ def ParseParagraph(scanner: dict): dict exprs->add(scanner->ParseExpr()) endwhile - const pos_to = scanner.cur_token.pos - return ParagraphAst(exprs, pos_from, pos_to) + const pos_to = exprs[-1].pos_to + return ParagraphAst(exprs, pos_from, pos_to, scanner) +enddef + +# ------------------------------------------------------------------------------ +# File +# ------------------------------------------------------------------------------ +def ParseFile(scanner: dict): dict + const pos_from = scanner.cur_token.pos + + var paragraphs = [] + while scanner.cur_token.kind != 9 # token_eof + const ast = scanner->ParseParagraph() + paragraphs->add(ast) + endwhile + + const pos_to = empty(paragraphs) ? pos_from : paragraphs[-1].pos_to + return FileAst(paragraphs, pos_from, pos_to, scanner) +enddef + +# ------------------------------------------------------------------------------ +# Auxiliary +# +# TODO: MoveTo* functions rely on local search instead of proper (but slow) +# scanning of the whole file and may be incorrect in corner cases. +# Consider tweaking. +# ------------------------------------------------------------------------------ + +# Returns true if successful, i.e. on move to '(' of outermost SExpr +def MoveToOutermostSExpr(): bool + var cur_pos = getpos('.') + while true + silent! normal! [( + const new_pos = getpos('.') + if cur_pos == new_pos + break + else + cur_pos = new_pos + endif + endwhile + + const cur_char = getline('.')[charcol('.') - 1] + return cur_char == '(' +enddef + +def CursorInSExpr(): bool + const cursor = getpos('.') + silent! normal! [( + const res = cursor != getpos('.') + call setpos('.', cursor) + return res +enddef + +def MoveToStartOfCurrentParagraph() + # Empty (or whitespace) lines outside of S-expressions separate paragraphs. + # Nothing to do if cursor is already at such a line. + if !(getline('.')->trim()->empty() && !CursorInSExpr()) + # Move backwards until an empty line that is not in an SExpr is found, + # or -- if there is none -- to the first line of the file + while true + const empty_line = search('\m\C^\s*$', 'b', 1) + if !CursorInSExpr() + break + elseif empty_line == 0 + cursor(1, 1) + break + endif + endwhile + endif enddef # ------------------------------------------------------------------------------ # Public functions # ------------------------------------------------------------------------------ def smt2#parser#ParseCurrentParagraph(): dict - # source = [start of current paragraph, EOF] - # Note: This is needed since `silent! normal! {y}` may not yank full paragraphs - # in the context of multiline expressions const cursor = getpos('.') - silent! normal! { - const line_offset = line('.') - const source = join(getline('.', '$'), "\n") + MoveToStartOfCurrentParagraph() + const from = getpos('.') call setpos('.', cursor) - var scanner = smt2#scanner#Scanner(source, line_offset) + # source = [paragraph of outermost SExpr, EOF] + # Note: This is needed since `silent! normal! {` is not guaranteed to jump + # to the start of the paragraph, e.g. if newlines occur in between. + const lines_to_format = getline(from[1], '$') + const source = join(lines_to_format, "\n") + + var scanner = smt2#scanner#Scanner(source, from[1], from[2]) const ast = scanner->ParseParagraph() if debug | ast->PrintAst() | endif return ast enddef -def smt2#parser#ParseAllParagraphs(): list> - # source = current buffer - const source = join(getline(1, '$'), "\n") +def smt2#parser#ParseOutermostSExpr(): dict + const cursor = getpos('.') + if ! MoveToOutermostSExpr() + throw "Cursor is not in an S-expression!" + endif + const from = getpos('.') + call setpos('.', cursor) - var scanner = smt2#scanner#Scanner(source) - var asts = [] - while scanner.cur_token.kind != 9 # token_eof - const ast = scanner->ParseParagraph() - asts->add(ast) + # source = [start of outermost SExpr, EOF] + # Note: This is needed since `silent! normal! %` is not guaranteed to jump + # to the matching ')', e.g. if an unmatched '(' occurs in a comment. + const lines_to_format = getline(from[1], '$') + const source = join(lines_to_format, "\n") - if debug | ast->PrintAst() | endif - endwhile - return asts + var scanner = smt2#scanner#Scanner(source, from[1], from[2]) + const ast = scanner->ParseSExpr() + + if debug | ast->PrintAst() | endif + return ast +enddef + +def smt2#parser#ParseFile(): dict + const cursor = getpos('.') + cursor(1, 1) + const first_non_empty_line = search('.') + call setpos('.', cursor) + + # source = [first non-empty line, EOF] + const source = join(getline(first_non_empty_line, '$'), "\n") + + var scanner = smt2#scanner#Scanner(source, first_non_empty_line) + const ast = scanner->ParseFile() + + if debug | ast->PrintAst() | endif + return ast enddef diff --git a/autoload/smt2/scanner.vim b/autoload/smt2/scanner.vim index 464dbe249..05f74966d 100644 --- a/autoload/smt2/scanner.vim +++ b/autoload/smt2/scanner.vim @@ -56,7 +56,7 @@ enddef def PrettyPrint(scanner: dict, token: dict) const coord = scanner->Pos2Coord(token.pos) - echo printf("%4d:%-3d (%5d) %8s %s", coord.line, coord.col, token.pos, token.kind->smt2#scanner#TokenKind2Str(), token.lexeme) + echo printf("%5d %4d:%-3d %8s %s", token.pos, coord.line, coord.col, token.kind->smt2#scanner#TokenKind2Str(), token.lexeme) enddef # ------------------------------------------------------------------------------ @@ -72,12 +72,14 @@ enddef # TODO: Enforce restriction to ASCII? We should if we use the lookup table below # TODO: Do not take a string but a character stream (or just buffer and pos)? -def smt2#scanner#Scanner(source: string, line_offset = 1): dict +def smt2#scanner#Scanner(source: string, start_line = 1, start_col = 1): dict var scanner = { - chars: source->trim(" \t\n\r", 2)->split('\zs'), - line_offset: line_offset, # start line of source string in buffer - pos: 0, # pos in source string -- not column in line - at_new_paragraph: false} + chars: source->trim(" \n\r\t", 2)->split('\zs'), + line_offset: start_line, # start line of source string in buffer + pos: start_col - 1, # pos in source string -- not column in line + at_new_paragraph: false, + } + scanner.calcCoord = (pos: number): dict => Pos2Coord(scanner, pos) if scanner.chars->empty() scanner.at_eof = true diff --git a/autoload/terraform.vim b/autoload/terraform.vim index 852b261fb..6e1154e49 100644 --- a/autoload/terraform.vim +++ b/autoload/terraform.vim @@ -9,6 +9,11 @@ set cpoptions&vim let $TF_CLI_ARGS_fmt='' function! terraform#fmt() abort + silent execute 'w !'.g:terraform_binary_path.' fmt -check -' + if v:shell_error == 0 + return + endif + " Save the view. let curw = winsaveview() diff --git a/autoload/unison.vim b/autoload/unison.vim deleted file mode 100644 index 292deda6b..000000000 --- a/autoload/unison.vim +++ /dev/null @@ -1,118 +0,0 @@ -if polyglot#init#is_disabled(expand(':p'), 'unison', 'autoload/unison.vim') - finish -endif - -" Unison functionality for Vim, including type/term omnicompletion. -" -" Maintainer: Unison Computing -" Original Author: Cody Allen (ceedubs) - -if exists('g:autoloaded_unison') - finish -endif -let g:autoloaded_unison = 1 - -let s:required_config_value = "!REQUIRED!" - -" adapted from https://github.com/rust-lang/rust.vim/blob/4aa69b84c8a58fcec6b6dad6fe244b916b1cf830/autoload/rust.vim#L9-L18 -function! s:config(name, default) abort - let name = 'unison_' . a:name - " Local buffer variable with same name takes predeence over global - if has_key(b:, name) - return get(b:, name) - elseif has_key(g:, name) - return get(g:, name) - elseif a:default == s:required_config_value - throw 'Missing required configuration value: ' . name - else - return a:default - endif -endfunction - -function! s:curl_path() abort - return s:config('curl_path', "curl") -endfunction - -function! s:jq_path() abort - return s:config('jq_path', "jq") -endfunction - -function! unison#SetBufferDefaults() abort - if s:config('set_buffer_defaults', 1) - " Since Unison completion is fuzzy and not prefix-based, 'longest' doesn't - " work well, and 'noinsert' behaves a little better. - setlocal completeopt=menuone,noinsert,preview - - setlocal omnifunc=unison#Complete - endif -endfunction - -" Unison completion satisfying the standard vim completion signature, such -" that it can be assigned to omnifunc. -" vim will first call this to find the base input that should be completed, -" and then will call it again with the base input. -function! unison#Complete(findstart, base) abort - if a:findstart - " locate the start of the word - let line = getline('.') - let start = col('.') - 1 - " Examples of where we want to count the start of a word: - " - " foo List.fold - " ^ - " - " {Abor - " ^ - " - " (List.fol - " ^ - while start > 0 && line[start - 1] !~ '\v\s|[!(){}\[\]]' - let start -= 1 - endwhile - return start - else - return unison#CompleteForBase(a:base) - endif -endfunction - -" Return an array of completion items for the provided base input. For example -" base could be 'List.foldL', in which case the top result would probably be -" 'List.foldLeft'. -function! unison#CompleteForBase(base) abort - let resultLimit = s:config('complete_result_limit', 20) - let apiHost = s:config('api_host', 'localhost') - let apiPort = s:config('api_port', s:required_config_value) - let apiToken = s:config('api_token', s:required_config_value) - let apiUri = 'http://' . apiHost . ':' . apiPort . '/' . apiToken . '/api/find' - - let curlCommand = s:curl_path() . " -Gfs - \ --data-urlencode 'limit=" . resultLimit . "' - \ --data-urlencode 'query=" . a:base . "' " - \ . apiUri - - let jqFilter = ' - \ def prettyTermType: .termType|[(.[] | .segment)]|add; - \ def prettyTypeDef: if .tag == "BuiltinObject" then "builtin type " else "" end + (.contents|[(.[] | .segment)]|add); - \ def termToMatch: { - \ word: .bestFoundTermName, - \ info: (.namedTerm.termName + " : " + (.namedTerm|prettyTermType)), - \ menu: .namedTerm|prettyTermType - \ }; - \ def typeToMatch: { - \ word: .bestFoundTypeName, - \ info: (.namedType.typeName + " : " + (.typeDef|prettyTypeDef)), - \ menu: .typeDef|prettyTypeDef - \ }; - \ .[][1]|( - \ (select(.tag == "FoundTermResult")|.contents|termToMatch), - \ (select(.tag == "FoundTypeResult")|.contents|typeToMatch) - \ )' - - let command = curlCommand . " | " . s:jq_path() . " -c '" . jqFilter . "'" - let lines = system(command) - let resultObjects = split(lines, "\n") - call map(resultObjects, {_, val -> json_decode(val)}) - return resultObjects -endfunction - -" vim: set et sw=2 sts=2 ts=2: diff --git a/autoload/xml/html5.vim b/autoload/xml/html5.vim index 0df1bd0ac..206fb4fd9 100644 --- a/autoload/xml/html5.vim +++ b/autoload/xml/html5.vim @@ -128,6 +128,7 @@ let attributes_value = { \ 'http-equiv': ['Text', ''], \ 'icon': ['URL', ''], \ 'id': ['Text', ''], + \ 'inert': ['Bool', ''], \ 'ismap': ['Bool', ''], \ 'keytype': ['Text', ''], \ 'label': ['Text', ''], @@ -194,7 +195,7 @@ let attributes_value = { \ } if g:html5_event_handler_attributes_complete == 1 - let event_handler_attributes = {'onabort': [], 'onblur': [], 'oncanplay': [], 'oncanplaythrough': [], 'onchange': [], 'onclick': [], 'oncontextmenu': [], 'ondblclick': [], 'ondrag': [], 'ondragend': [], 'ondragenter': [], 'ondragleave': [], 'ondragover': [], 'ondragstart': [], 'ondrop': [], 'ondurationchange': [], 'onemptied': [], 'onended': [], 'onerror': [], 'onfocus': [], 'onformchange': [], 'onforminput': [], 'oninput': [], 'oninvalid': [], 'onkeydown': [], 'onkeypress': [], 'onkeyup': [], 'onload': [], 'onloadeddata': [], 'onloadedmetadata': [], 'onloadstart': [], 'onmousedown': [], 'onmousemove': [], 'onmouseout': [], 'onmouseover': [], 'onmouseup': [], 'onmousewheel': [], 'onpause': [], 'onplay': [], 'onplaying': [], 'onprogress': [], 'onratechange': [], 'onreadystatechange': [], 'onscroll': [], 'onseeked': [], 'onseeking': [], 'onselect': [], 'onshow': [], 'onstalled': [], 'onsubmit': [], 'onsuspend': [], 'ontimeupdate': [], 'onvolumechange': [], 'onwaiting': [], 'onselectstart': [], 'onselectchange': []} + let event_handler_attributes = {'onabort': [], 'onblur': [], 'oncancel': [], 'oncanplay': [], 'oncanplaythrough': [], 'onchange': [], 'onclick': [], 'oncontextmenu': [], 'ondblclick': [], 'ondrag': [], 'ondragend': [], 'ondragenter': [], 'ondragleave': [], 'ondragover': [], 'ondragstart': [], 'ondrop': [], 'ondurationchange': [], 'onemptied': [], 'onended': [], 'onerror': [], 'onfocus': [], 'onformchange': [], 'onforminput': [], 'oninput': [], 'oninvalid': [], 'onkeydown': [], 'onkeypress': [], 'onkeyup': [], 'onload': [], 'onloadeddata': [], 'onloadedmetadata': [], 'onloadstart': [], 'onmousedown': [], 'onmousemove': [], 'onmouseout': [], 'onmouseover': [], 'onmouseup': [], 'onmousewheel': [], 'onpause': [], 'onplay': [], 'onplaying': [], 'onprogress': [], 'onratechange': [], 'onreadystatechange': [], 'onscroll': [], 'onseeked': [], 'onseeking': [], 'onselect': [], 'onshow': [], 'onstalled': [], 'onsubmit': [], 'onsuspend': [], 'ontimeupdate': [], 'onvolumechange': [], 'onwaiting': [], 'onselectstart': [], 'onselectchange': []} let global_attributes = extend(global_attributes, event_handler_attributes) let body_attributes = {'onafterprint': [], 'onbeforeprint': [], 'onbeforeunload': [], 'onblur': [], 'onerror': [], 'onfocus': [], 'onhashchange': [], 'onload': [], 'onmessage': [], 'onoffline': [], 'ononline': [], 'onpopstate': [], 'onredo': [], 'onresize': [], 'onstorage': [], 'onundo': [], 'onunload': []} @@ -205,6 +206,7 @@ if g:html5_event_handler_attributes_complete == 1 \ 'onbeforeprint': ['Script', ''], \ 'onbeforeunload': ['Script', ''], \ 'onblur': ['Script', ''], + \ 'oncancel': ['Script', ''], \ 'oncanplay': ['Script', ''], \ 'oncanplaythrough': ['Script', ''], \ 'onchange': ['Script', ''], diff --git a/compiler/eruby.vim b/compiler/eruby.vim index bd5a16d01..a9fdf758d 100644 --- a/compiler/eruby.vim +++ b/compiler/eruby.vim @@ -6,7 +6,6 @@ endif " Language: eRuby " Maintainer: Doug Kearns " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns if exists("current_compiler") finish diff --git a/compiler/jq.vim b/compiler/jq.vim new file mode 100644 index 000000000..ccd7b2d6b --- /dev/null +++ b/compiler/jq.vim @@ -0,0 +1,29 @@ +if polyglot#init#is_disabled(expand(':p'), 'jq', 'compiler/jq.vim') + finish +endif + +" Vim compiler file +" Compiler: jq +" Maintainer: Vito +" Last Change: 2024 Apr 17 +" Upstream: https://github.com/vito-c/jq.vim + +if exists('b:current_compiler') + finish +endif +let b:current_compiler = 'jq' + +let s:save_cpoptions = &cpoptions +set cpoptions&vim + +if has('unix') + CompilerSet makeprg=jq\ -f\ %:S\ /dev/null +else + CompilerSet makeprg=jq\ -f\ %:S\ nul +endif +CompilerSet errorformat=%E%m\ at\ \\<%o\\>\\,\ line\ %l:, + \%Z, + \%-G%.%# + +let &cpoptions = s:save_cpoptions +unlet s:save_cpoptions diff --git a/compiler/ledger.vim b/compiler/ledger.vim index 1e35f64bf..08356a3e0 100644 --- a/compiler/ledger.vim +++ b/compiler/ledger.vim @@ -23,7 +23,11 @@ if !exists('g:ledger_main') let g:ledger_main = '%' endif -if !g:ledger_is_hledger +if !exists ('b:is_hledger') + let b:is_hledger = g:ledger_is_hledger +endif + +if !b:is_hledger " Capture Ledger errors (%-C ignores all lines between "While parsing..." and "Error:..."): CompilerSet errorformat=%EWhile\ parsing\ file\ \"%f\"\\,\ line\ %l:,%ZError:\ %m,%-C%.%# " Capture Ledger warnings: @@ -32,5 +36,8 @@ if !g:ledger_is_hledger CompilerSet errorformat+=%-G%.%# exe 'CompilerSet makeprg='.substitute(g:ledger_bin, ' ', '\\ ', 'g').'\ -f\ ' . substitute(shellescape(expand(g:ledger_main)), ' ', '\\ ', 'g') . '\ '.substitute(g:ledger_extra_options, ' ', '\\ ', 'g').'\ source\ ' . shellescape(expand(g:ledger_main)) else - exe 'CompilerSet makeprg=('.substitute(g:ledger_bin, ' ', '\\ ', 'g').'\ -f\ ' . substitute(shellescape(expand(g:ledger_main)), ' ', '\\ ', 'g') . '\ print\ '.substitute(g:ledger_extra_options, ' ', '\\ ', 'g').'\ >\ /dev/null)' + exe 'CompilerSet makeprg='.substitute(g:ledger_bin, ' ', '\\ ', 'g').'\ -f\ ' . substitute(shellescape(expand(g:ledger_main)), ' ', '\\ ', 'g') . '\ check\ '. substitute(g:ledger_extra_options, ' ', '\\ ', 'g') + CompilerSet errorformat=hledger:\ %trror:\ %f:%l:%c: + CompilerSet errorformat+=hledger:\ %trror:\ %f:%l: + CompilerSet errorformat+=hledger:\ %trror:\ %f:%l-%.%#: endif diff --git a/compiler/lilypond.vim b/compiler/lilypond.vim index d672b7236..e3a979895 100644 --- a/compiler/lilypond.vim +++ b/compiler/lilypond.vim @@ -7,7 +7,7 @@ endif " Maintainer: Heikki Junes " License: This file is part of LilyPond, the GNU music typesetter. " -" Copyright (C) 2004, 2007 Heikki Junes +" Copyright (C) 2004--2022 Heikki Junes " " LilyPond is free software: you can redistribute it and/or modify " it under the terms of the GNU General Public License as published by diff --git a/compiler/ocaml.vim b/compiler/ocaml.vim index cad914396..084a8d102 100644 --- a/compiler/ocaml.vim +++ b/compiler/ocaml.vim @@ -7,6 +7,7 @@ endif " Maintainer: Markus Mottl " URL: https://github.com/ocaml/vim-ocaml " Last Change: +" 2023 Nov 24 - Improved error format (Samuel Hym) " 2021 Nov 03 - Improved error format (Jules Aguillon) " 2020 Mar 28 - Improved error format (Thomas Leonard) " 2017 Nov 26 - Improved error format (Markus Mottl) @@ -15,17 +16,6 @@ endif " Marc Weber's comments: " Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt, " ocamake and whatnot. So which one to use? -" -" This error format was moved from ftplugin/ocaml.vim to this file, -" because ftplugin is the wrong file to set an error format -" and the error format itself is annoying because it joins many lines in this -" error case: -" -" Error: The implementation foo.ml does not match the interface foo.cmi: -" Modules do not match case. -" -" So having it here makes people opt-in - if exists("current_compiler") finish @@ -35,19 +25,37 @@ let current_compiler = "ocaml" let s:cpo_save = &cpo set cpo&vim -CompilerSet errorformat = - \%EFile\ \"%f\"\\,\ lines\ %*\\d-%l\\,\ characters\ %c-%*\\d:, - \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:, - \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d\ %.%#, +" Patch 8.2.4329 introduces %e and %k as end line and end column positions + +if has('patch-8.2.4329') + CompilerSet errorformat = + \%EFile\ \"%f\"\\,\ lines\ %l-%e\\,\ characters\ %c-%k:, + \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%k:, + \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%k\ %.%#, +else + CompilerSet errorformat = + \%EFile\ \"%f\"\\,\ lines\ %l-%*\\d\\,\ characters\ %c-%*\\d:, + \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:, + \%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d\ %.%#, +endif + +CompilerSet errorformat += \%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m, \%EFile\ \"%f\"\\,\ line\ %l:, \%+EReference\ to\ unbound\ regexp\ name\ %m, \%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m, \%Wocamlyacc:\ w\ -\ %m, - \%-Zmake%.%#, - \%C%*\\d\ \|%.%#, - \%C%p^%#, - \%C%m, + \%-Zmake%.%# + +if get(g:, "ocaml_compiler_compact_messages", v:true) + CompilerSet errorformat += + \%C%*\\d\ \|%.%#, + \%C%p^%#, + \%C%m +endif + +CompilerSet errorformat += + \%Z, \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f', \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f', \%D%*\\a:\ Entering\ directory\ `%f', @@ -58,8 +66,12 @@ CompilerSet errorformat = \%X%*\\a:\ Leaving\ directory\ '%f', \%DEntering\ directory\ '%f', \%XLeaving\ directory\ '%f', - \%DMaking\ %*\\a\ in\ %f, - \%+G%m + \%DMaking\ %*\\a\ in\ %f + +if get(g:, "ocaml_compiler_compact_messages", v:true) + CompilerSet errorformat += + \%+G%m +endif let &cpo = s:cpo_save diff --git a/compiler/pip_compile.vim b/compiler/pip_compile.vim index 5b6b29d5e..f05a7507e 100644 --- a/compiler/pip_compile.vim +++ b/compiler/pip_compile.vim @@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand(':p'), 'requirements', 'compiler/pip_ endif " the Requirements File Format syntax support for Vim -" Version: 1.7.1 +" Version: 1.8.0 " Author: raimon " License: MIT LICENSE " The MIT License (MIT) diff --git a/compiler/rake.vim b/compiler/rake.vim index 84e312e89..c64acddc3 100644 --- a/compiler/rake.vim +++ b/compiler/rake.vim @@ -6,7 +6,6 @@ endif " Language: Rake " Maintainer: Tim Pope " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns if exists("current_compiler") finish diff --git a/compiler/rspec.vim b/compiler/rspec.vim index 19f41ade7..39e54ab23 100644 --- a/compiler/rspec.vim +++ b/compiler/rspec.vim @@ -6,7 +6,6 @@ endif " Language: RSpec " Maintainer: Tim Pope " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns if exists("current_compiler") finish diff --git a/compiler/ruby.vim b/compiler/ruby.vim index c0299d7e1..e730bab38 100644 --- a/compiler/ruby.vim +++ b/compiler/ruby.vim @@ -7,7 +7,6 @@ endif " Function: Syntax check and/or error reporting " Maintainer: Tim Pope " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns if exists("current_compiler") finish diff --git a/compiler/rubyunit.vim b/compiler/rubyunit.vim index f10496123..93e4a6171 100644 --- a/compiler/rubyunit.vim +++ b/compiler/rubyunit.vim @@ -6,7 +6,6 @@ endif " Language: Test::Unit - Ruby Unit Testing Framework " Maintainer: Doug Kearns " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns if exists("current_compiler") finish diff --git a/compiler/typescript.vim b/compiler/typescript.vim index 43380d270..23910787c 100644 --- a/compiler/typescript.vim +++ b/compiler/typescript.vim @@ -22,4 +22,4 @@ endif let &l:makeprg = g:typescript_compiler_binary . ' ' . g:typescript_compiler_options . ' $* %' -CompilerSet errorformat=%+A\ %#%f\ %#(%l\\\,%c):\ %m,%C%m +CompilerSet errorformat+=%+A\ %#%f\ %#(%l\\\,%c):\ %m,%C%m diff --git a/ftplugin/crystal.vim b/ftplugin/crystal.vim index 2e6a96fcb..5813ab899 100644 --- a/ftplugin/crystal.vim +++ b/ftplugin/crystal.vim @@ -62,7 +62,7 @@ if exists('g:loaded_matchit') && !exists('b:match_words') let b:match_ignorecase = 0 let b:match_words = - \ '\<\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|struct\|lib\|macro\|ifdef\|def\|begin\|enum\|annotation\)\>=\@!' . + \ '\<\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|struct\|lib\|macro\|ifdef\|\%(abstract\s\+\)\@=\@!' . \ ':' . \ '\<\%(else\|elsif\|ensure\|when\|in\|rescue\|break\|next\)\>' . \ ':' . diff --git a/ftplugin/dhall.vim b/ftplugin/dhall.vim index 9a662090c..65f182780 100644 --- a/ftplugin/dhall.vim +++ b/ftplugin/dhall.vim @@ -11,37 +11,4 @@ setlocal commentstring=--\ %s set smarttab -if exists('g:dhall_use_ctags') - if g:dhall_use_ctags == 1 - autocmd BufWritePost *.dhall silent !ctags -R . - endif -endif - -function! StripTrailingWhitespace() - let myline=line('.') - let mycolumn = col('.') - exec 'silent %s/ *$//' - call cursor(myline, mycolumn) -endfunction - -if exists('g:dhall_strip_whitespace') - if g:dhall_strip_whitespace == 1 - au BufWritePre *.dhall silent! call StripTrailingWhitespace() - endif -endif - -function! DhallFormat() - let cursor = getpos('.') - exec 'normal! gg' - exec 'silent !dhall format ' . expand('%') - exec 'e' - call setpos('.', cursor) -endfunction - -if exists('g:dhall_format') - if g:dhall_format == 1 - au BufWritePost *.dhall call DhallFormat() - endif -endif - au BufNewFile,BufRead *.dhall setl shiftwidth=2 diff --git a/ftplugin/eruby.vim b/ftplugin/eruby.vim index 33c769dd9..91da9facf 100644 --- a/ftplugin/eruby.vim +++ b/ftplugin/eruby.vim @@ -6,7 +6,6 @@ endif " Language: eRuby " Maintainer: Tim Pope " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns " Only do this when not done yet for this buffer if exists("b:did_ftplugin") diff --git a/ftplugin/git.vim b/ftplugin/git.vim new file mode 100644 index 000000000..edea0cc42 --- /dev/null +++ b/ftplugin/git.vim @@ -0,0 +1,19 @@ +if polyglot#init#is_disabled(expand(':p'), 'git', 'ftplugin/git.vim') + finish +endif + +" Vim filetype plugin +" Language: generic git output +" Maintainer: Tim Pope +" Last Change: 2023 Mar 26 + +" Only do this when not done yet for this buffer +if (exists("b:did_ftplugin")) + finish +endif + +let b:did_ftplugin = 1 + +setlocal nomodeline + +let b:undo_ftplugin = "setl modeline<" diff --git a/ftplugin/graphql.vim b/ftplugin/graphql.vim index 1f9e1df92..7236f07d2 100644 --- a/ftplugin/graphql.vim +++ b/ftplugin/graphql.vim @@ -2,7 +2,7 @@ if polyglot#init#is_disabled(expand(':p'), 'graphql', 'ftplugin/graphql.v finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to diff --git a/ftplugin/hcl.vim b/ftplugin/hcl.vim index 10102b08d..1a4402f97 100644 --- a/ftplugin/hcl.vim +++ b/ftplugin/hcl.vim @@ -31,7 +31,7 @@ if get(g:, 'hcl_fold_sections', 0) endif " Set the commentstring -setlocal commentstring=#%s +setlocal commentstring=#\ %s let b:undo_ftplugin .= ' commentstring<' if get(g:, 'hcl_align', 0) && exists(':Tabularize') diff --git a/ftplugin/help.vim b/ftplugin/help.vim index 7096523ac..767c68112 100644 --- a/ftplugin/help.vim +++ b/ftplugin/help.vim @@ -25,77 +25,5 @@ endif " Prefer Vim help instead of manpages. setlocal keywordprg=:help -if !exists('g:no_plugin_maps') - function! s:show_toc() abort - let bufname = bufname('%') - let info = getloclist(0, {'winid': 1}) - if !empty(info) && getwinvar(info.winid, 'qf_toc') ==# bufname - lopen - return - endif - - let toc = [] - let lnum = 2 - let last_line = line('$') - 1 - let last_added = 0 - let has_section = 0 - let has_sub_section = 0 - - while lnum && lnum <= last_line - let level = 0 - let add_text = '' - let text = getline(lnum) - - if text =~# '^=\+$' && lnum + 1 < last_line - " A de-facto section heading. Other headings are inferred. - let has_section = 1 - let has_sub_section = 0 - let lnum = nextnonblank(lnum + 1) - let text = getline(lnum) - let add_text = text - while add_text =~# '\*[^*]\+\*\s*$' - let add_text = matchstr(add_text, '.*\ze\*[^*]\+\*\s*$') - endwhile - elseif text =~# '^[A-Z0-9][-A-ZA-Z0-9 .][-A-Z0-9 .():]*\%([ \t]\+\*.\+\*\)\?$' - " Any line that's yelling is important. - let has_sub_section = 1 - let level = has_section - let add_text = matchstr(text, '.\{-}\ze\s*\%([ \t]\+\*.\+\*\)\?$') - elseif text =~# '\~$' - \ && matchstr(text, '^\s*\zs.\{-}\ze\s*\~$') !~# '\t\|\s\{2,}' - \ && getline(lnum - 1) =~# '^\s*<\?$\|^\s*\*.*\*$' - \ && getline(lnum + 1) =~# '^\s*>\?$\|^\s*\*.*\*$' - " These lines could be headers or code examples. We only want the - " ones that have subsequent lines at the same indent or more. - let l = nextnonblank(lnum + 1) - if getline(l) =~# '\*[^*]\+\*$' - " Ignore tag lines - let l = nextnonblank(l + 1) - endif - - if indent(lnum) <= indent(l) - let level = has_section + has_sub_section - let add_text = matchstr(text, '\S.*') - endif - endif - - let add_text = substitute(add_text, '\s\+$', '', 'g') - if !empty(add_text) && last_added != lnum - let last_added = lnum - call add(toc, {'bufnr': bufnr('%'), 'lnum': lnum, - \ 'text': repeat(' ', level) . add_text}) - endif - let lnum = nextnonblank(lnum + 1) - endwhile - - call setloclist(0, toc, ' ') - call setloclist(0, [], 'a', {'title': 'Help TOC'}) - lopen - let w:qf_toc = bufname - endfunction - - nnoremap gO :call show_toc() -endif - let &cpo = s:cpo_save unlet s:cpo_save diff --git a/ftplugin/jq.vim b/ftplugin/jq.vim index f2c14aff1..9713df883 100644 --- a/ftplugin/jq.vim +++ b/ftplugin/jq.vim @@ -2,4 +2,19 @@ if polyglot#init#is_disabled(expand(':p'), 'jq', 'ftplugin/jq.vim') finish endif +" Vim compiler file +" Language: jq +" Maintainer: Vito +" Last Change: 2024 Apr 17 +" Upstream: https://github.com/vito-c/jq.vim + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +let b:undo_ftplugin = 'setl inc< commentstring<' + +setlocal include=^\\s*\\%(import\\\|include\\) setlocal commentstring=#%s +compiler jq diff --git a/ftplugin/jsonnet.vim b/ftplugin/jsonnet.vim index 500787a08..24e4f0c70 100644 --- a/ftplugin/jsonnet.vim +++ b/ftplugin/jsonnet.vim @@ -8,6 +8,9 @@ endif " -- fmt command! -nargs=0 JsonnetFmt call jsonnet#Format() +" -- eval +command! -nargs=0 JsonnetEval call jsonnet#Eval() + setlocal commentstring=//\ %s diff --git a/ftplugin/julia.vim b/ftplugin/julia.vim index de9834661..94a7be309 100644 --- a/ftplugin/julia.vim +++ b/ftplugin/julia.vim @@ -26,15 +26,15 @@ setlocal fo-=t fo+=croql let b:julia_vim_loaded = 1 let b:undo_ftplugin = "setlocal include< suffixesadd< comments< commentstring<" - \ . " expandtab< shiftwidth<" - \ . " define< fo< indentexpr< indentkeys< cinoptions< completefunc<" + \ . " define< fo< cinoptions< completefunc<" \ . " | unlet! b:commentary_format" \ . " | unlet! b:smartcomment_force_linemode" \ . " | unlet! b:julia_vim_loaded" - + if !exists("g:julia_set_indentation") || g:julia_set_indentation != 0 " As suggested by Style Guide. setlocal expandtab shiftwidth=4 + let b:undo_ftplugin .= " | setlocal expandtab< shiftwidth<" endif " MatchIt plugin support @@ -109,7 +109,7 @@ let b:smartcomment_force_linemode = 1 " for carlobaldassi/vim-smartcomment if has("gui_win32") let b:browsefilter = "Julia Source Files (*.jl)\t*.jl\n" - let b:undo_ftplugin = b:undo_ftplugin . " | unlet! b:browsefilter" + let b:undo_ftplugin .= " | unlet! b:browsefilter" endif " Lookup documents diff --git a/ftplugin/just.vim b/ftplugin/just.vim new file mode 100644 index 000000000..41a917fb9 --- /dev/null +++ b/ftplugin/just.vim @@ -0,0 +1,21 @@ +if polyglot#init#is_disabled(expand(':p'), 'just', 'ftplugin/just.vim') + finish +endif + +" Vim ftplugin file +" Language: Justfile +" Maintainer: Noah Bogart +" URL: https://github.com/NoahTheDuke/vim-just.git +" Last Change: 2023 Jul 08 + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +setlocal iskeyword+=- +setlocal comments=n:# +setlocal commentstring=#\ %s + +let b:undo_ftplugin = "setlocal iskeyword< comments< commentstring<" diff --git a/ftplugin/lilypond.vim b/ftplugin/lilypond.vim index afc73eaf3..cbd8e12e4 100644 --- a/ftplugin/lilypond.vim +++ b/ftplugin/lilypond.vim @@ -7,8 +7,7 @@ endif " Maintainer: Heikki Junes " License: This file is part of LilyPond, the GNU music typesetter. " -" Copyright (C) 1998, 2002, 2004, 2010, 2016 -" Han-Wen Nienhuys +" Copyright (C) 1998--2022 Han-Wen Nienhuys " " LilyPond is free software: you can redistribute it and/or modify " it under the terms of the GNU General Public License as published by @@ -36,6 +35,9 @@ endif " Don't load another plugin for this buffer let b:did_ftplugin = 1 +let s:cpo_save = &cpo +set cpo&vim + setlocal autoindent setlocal shiftwidth=2 " @@ -77,3 +79,17 @@ setlocal dictionary-=$VIM/syntax/lilypond-words dictionary+=$VIM/syntax/lilypond setlocal complete-=k complete+=k " setlocal showmatch + +let b:undo_ftplugin = "setlocal autoindent< cpoptions< complete< dictionary< showmatch< shiftwidth< wildcharm< wildmenu<" . + \ " | silent! execute 'unmap '" . + \ " | silent! execute 'unmap '" . + \ " | silent! execute 'unmap '" . + \ " | silent! execute 'unmap '" . + \ " | silent! execute 'unmap '" . + \ " | silent! execute 'unmap '" . + \ " | silent! execute 'unmap '" . + \ " | silent! execute 'unmap '" . + \ " | silent! execute 'unmap '" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/ftplugin/markdown.vim b/ftplugin/markdown.vim index a0474d945..e9632eb64 100644 --- a/ftplugin/markdown.vim +++ b/ftplugin/markdown.vim @@ -4,7 +4,7 @@ endif "TODO print messages when on visual mode. I only see VISUAL, not the messages. -" Function interface phylosophy: +" Function interface philosophy: " " - functions take arbitrary line numbers as parameters. " Current cursor line is only a suitable default parameter. @@ -60,7 +60,7 @@ let s:levelRegexpDict = { \ 6: '\v^######[^#]@=' \ } -" Maches any header level of any type. +" Matches any header level of any type. " " This could be deduced from `s:levelRegexpDict`, but it is more " efficient to have a single regexp for this. @@ -498,7 +498,9 @@ endfunction function! s:SetexToAtx(line1, line2) let l:originalNumLines = line('$') execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n\=+$/# \1/' - execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n-+$/## \1/' + + let l:changed = l:originalNumLines - line('$') + execute 'silent! ' . a:line1 . ',' . (a:line2 - l:changed) . 'substitute/\v(.*\S.*)\n-+$/## \1' return l:originalNumLines - line('$') endfunction @@ -540,6 +542,19 @@ endfunction " function! s:TableFormat() let l:pos = getpos('.') + + if get(g:, 'vim_markdown_borderless_table', 0) + " add `|` to the beginning of the line if it isn't present + normal! { + call search('|') + execute 'silent .,''}s/\v^(\s{0,})\|?([^\|])/\1|\2/e' + + " add `|` to the end of the line if it isn't present + normal! { + call search('|') + execute 'silent .,''}s/\v([^\|])\|?(\s{0,})$/\1|\2/e' + endif + normal! { " Search instead of `normal! j` because of the table at beginning of file edge case. call search('|') @@ -550,7 +565,7 @@ function! s:TableFormat() let l:flags = (&gdefault ? '' : 'g') execute 's/\(:\@' @@ -762,7 +782,7 @@ endif command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(, ) command! -buffer -range=% HeaderIncrease call s:HeaderDecrease(, , 1) command! -buffer -range=% SetexToAtx call s:SetexToAtx(, ) -command! -buffer TableFormat call s:TableFormat() +command! -buffer -range TableFormat call s:TableFormat() command! -buffer Toc call s:Toc() command! -buffer Toch call s:Toc('horizontal') command! -buffer Tocv call s:Toc('vertical') @@ -858,19 +878,23 @@ function! s:SyntaxInclude(filetype) return grouplistname endfunction +function! s:IsHighlightSourcesEnabledForBuffer() + " Enable for markdown buffers, and for liquid buffers with markdown format + return &filetype =~# 'markdown' || get(b:, 'liquid_subtype', '') =~# 'markdown' +endfunction function! s:MarkdownRefreshSyntax(force) " Use != to compare &syntax's value to use the same logic run on " $VIMRUNTIME/syntax/synload.vim. " " vint: next-line -ProhibitEqualTildeOperator - if &filetype =~# 'markdown' && line('$') > 1 && &syntax != 'OFF' + if s:IsHighlightSourcesEnabledForBuffer() && line('$') > 1 && &syntax != 'OFF' call s:MarkdownHighlightSources(a:force) endif endfunction function! s:MarkdownClearSyntaxVariables() - if &filetype =~# 'markdown' + if s:IsHighlightSourcesEnabledForBuffer() unlet! b:mkd_included_filetypes endif endfunction diff --git a/ftplugin/nix.vim b/ftplugin/nix.vim index 75bbd1a4d..c549f2534 100644 --- a/ftplugin/nix.vim +++ b/ftplugin/nix.vim @@ -23,3 +23,4 @@ if get(g:, 'nix_recommended_style', 1) \ softtabstop=2 \ expandtab endif +let b:match_words = '\:\:\,\:\' diff --git a/ftplugin/ocaml.vim b/ftplugin/ocaml.vim index 858e4fd42..edf1f756d 100644 --- a/ftplugin/ocaml.vim +++ b/ftplugin/ocaml.vim @@ -125,21 +125,13 @@ if !exists("g:did_ocaml_switch") nnoremap OCamlSwitchEdit :call OCaml_switch(0) nnoremap OCamlSwitchNewWin :call OCaml_switch(1) fun OCaml_switch(newwin) + let open_command = a:newwin == 1 ? "new" : "arge" if (match(bufname(""), "\\.mli$") >= 0) let fname = s:Fnameescape(substitute(bufname(""), "\\.mli$", ".ml", "")) - if (a:newwin == 1) - exec "new " . fname - else - exec "arge " . fname - endif elseif (match(bufname(""), "\\.ml$") >= 0) let fname = s:Fnameescape(bufname("")) . "i" - if (a:newwin == 1) - exec "new " . fname - else - exec "arge " . fname - endif endif + exec open_command " " . fname endfun endif @@ -653,6 +645,11 @@ endfunction nnoremap OCamlPrintType :call Ocaml_print_type("normal") xnoremap OCamlPrintType :call Ocaml_print_type("visual")`< +" Make sure the environment is consistent +if !exists('g:opam_current_compiler') && exists('g:opam_init_env') && g:opam_init_env != 0 + call opam#eval_env() +endif + let &cpoptions=s:cposet unlet s:cposet diff --git a/ftplugin/octave.vim b/ftplugin/octave.vim index c94081506..589e011b1 100644 --- a/ftplugin/octave.vim +++ b/ftplugin/octave.vim @@ -2,4 +2,66 @@ if polyglot#init#is_disabled(expand(':p'), 'octave', 'ftplugin/octave.vim finish endif +" Vim filetype plugin file +" Language: GNU Octave +" Maintainer: Doug Kearns +" Last Change: 2021 Sep 02 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +" TODO: update Matlab ftplugin and source it as the base file? + +setlocal comments=s:%{,m:\ ,e:%},s:#{,m:\ ,e:#},:%,:# setlocal commentstring=%\ %s +setlocal formatoptions-=t formatoptions+=croql + +setlocal keywordprg=info\ octave\ --vi-keys\ --index-search + +if exists("loaded_matchit") && !exists("b:match_words") + let b:match_words = '\:\:\' + if exists("octave_use_matlab_end") + let b:match_words .= ',' .. + \ '\<\%(classdef\|enumeration\|events\|for\|function\|if\|methods\|parfor\|properties\|switch\|while\|try\)\>' .. + \ ':' .. + \ '\<\%(elseif\|else\|case\|otherwise\|break\|continue\|catch\)\>' .. + \ ':' .. + \ '\' + else + let b:match_words .= ',' .. + \ '\:\,' .. + \ '\:\,' .. + \ '\:\,' .. + \ '\:\<\%(break\|continue\)\>:\' .. + \ '\:\<\%(break\|continue\)\>:\,' .. + \ '\:\:\,' .. + \ '\:\<\%(elseif\|else\)\>:\,' .. + \ '\:\,' .. + \ '\:\,' .. + \ '\:\,' .. + \ '\:\<\%(case\|otherwise\)\>:\,' .. + \ '\:\<\%(break\|continue\)\>:\,' .. + \ '\:\:\' + endif + " only match in statement position + let s:statement_start = escape('\%(\%(^\|;\)\s*\)\@<=', '\') + let b:match_words = substitute(b:match_words, '\\<', s:statement_start, 'g') +endif + +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter = "GNU Octave Source Files (*.m)\t*.m\n" .. + \ "All Files (*.*)\t*.*\n" +endif + +let b:undo_ftplugin = "setl com< cms< fo< kp< " .. + \ "| unlet! b:browsefilter b:match_words" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/ftplugin/plantuml.vim b/ftplugin/plantuml.vim index 088559518..98da91293 100644 --- a/ftplugin/plantuml.vim +++ b/ftplugin/plantuml.vim @@ -33,6 +33,7 @@ endif if get(g:, 'plantuml_set_makeprg', 1) let &l:makeprg=g:plantuml_executable_script . ' %' + let &l:errorformat='Error\ line %l in file: %f,%Z%m' endif setlocal comments=s1:/',mb:',ex:'/,:' commentstring=/'%s'/ formatoptions-=t formatoptions+=croql diff --git a/ftplugin/pony.vim b/ftplugin/pony.vim deleted file mode 100644 index 901109f08..000000000 --- a/ftplugin/pony.vim +++ /dev/null @@ -1,44 +0,0 @@ -if polyglot#init#is_disabled(expand(':p'), 'pony', 'ftplugin/pony.vim') - finish -endif - -" Vim filetype plugin file -" Language: Pony -" Maintainer: Jak Wings - -if exists('b:did_ftplugin') - finish -endif - -let s:cpo_save = &cpo -set cpo&vim - - -setlocal comments=://,nsr:/*,mb:*,ex:*/ -setlocal commentstring=/*%s*/ -setlocal formatoptions-=t fo+=c fo+=r fo+=o fo+=q fo+=l fo+=j - -"setlocal path= -"setlocal includeexpr= -setlocal include=\\v^\\s*use\\_s+%(\\i+\\_s*\\=\\_s*)?"\\zs[^"]*\\ze" -setlocal define=\\v^\\s*%(actor\|class\|struct\|primitive\|trait\|interface\|type\|new\|be\|fun\|let\|var\|embed\|use\|for\\_s+%(\\i+\\_s*,\\_s*)*\|with\\_s+%(\\i+\\_s*,\\_s*)*)\|(<\\i+\\_s*:\\_s*\\i+)@= -setlocal isident=@,48-57,_,39 -setlocal iskeyword=@,48-57,_,39 -setlocal suffixesadd=.pony -setlocal matchpairs=(:),{:},[:] - -let b:match_ignorecase = 0 -let b:match_skip = 's:Comment\|String\|Character\|CaseGuard' -let b:match_words = '\v<%(ifdef|if|match|while|for|repeat|try|with|recover|object|lambda|iftype)>\m:\v<%(then|elseif|else|until|do|in|elseiftype)>|\|\m:\,(:),\[:\],{:}' -" TODO: for more concise behavior -"let b:match_words = 'pony#GetMatchWords()' -source $VIMRUNTIME/macros/matchit.vim - -let b:undo_ftplugin = 'set comments< commentstring< formatoptions< path< include< includeexpr< define< isident< iskeyword< suffixesadd< matchpairs<' - \ . ' | unlet! b:match_ignorecase b:match_skip b:match_words' - - -let &cpo = s:cpo_save -unlet s:cpo_save - -let b:did_ftplugin = 1 diff --git a/ftplugin/prisma.vim b/ftplugin/prisma.vim new file mode 100644 index 000000000..9c031b78a --- /dev/null +++ b/ftplugin/prisma.vim @@ -0,0 +1,11 @@ +if polyglot#init#is_disabled(expand(':p'), 'prisma', 'ftplugin/prisma.vim') + finish +endif + +if (exists('b:did_ftplugin')) + finish +endif +let b:did_ftplugin = 1 +setlocal iskeyword+=@-@ +setlocal comments=:// +setlocal commentstring=//\ %s \ No newline at end of file diff --git a/ftplugin/ps1.vim b/ftplugin/ps1.vim index 82e184691..456716592 100644 --- a/ftplugin/ps1.vim +++ b/ftplugin/ps1.vim @@ -21,6 +21,9 @@ setlocal formatoptions+=tcqroj " Enable autocompletion of hyphenated PowerShell commands, " e.g. Get-Content or Get-ADUser setlocal iskeyword+=- +" Make string literal related text objects work properly when string +" contains escaped quote characters +setlocal quoteescape=` " Change the browse dialog on Win32 to show mainly PowerShell-related files if has("gui_win32") @@ -45,16 +48,16 @@ if exists('s:pwsh_cmd') if !has('gui_running') && executable('less') && \ !(exists('$ConEmuBuild') && &term =~? '^xterm') " For exclusion of ConEmu, see https://github.com/Maximus5/ConEmu/issues/2048 - command! -buffer -nargs=1 GetHelp silent exe '!' . s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full "" | ' . (has('unix') ? 'LESS= less' : 'less') | redraw! + command! -buffer -nargs=1 Ps1KeywordPrg silent exe '!' . s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full "" | ' . (has('unix') ? 'LESS= less' : 'less') | redraw! elseif has('terminal') - command! -buffer -nargs=1 GetHelp silent exe 'term ' . s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full ""' . (executable('less') ? ' | less' : '') + command! -buffer -nargs=1 Ps1KeywordPrg silent exe 'term ' . s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full ""' . (executable('less') ? ' | less' : '') else - command! -buffer -nargs=1 GetHelp echo system(s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full ') + command! -buffer -nargs=1 Ps1KeywordPrg echo system(s:pwsh_cmd . ' -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command Get-Help -Full ') endif + setlocal keywordprg=:Ps1KeywordPrg endif -setlocal keywordprg=:GetHelp " Undo the stuff we changed -let b:undo_ftplugin = "setlocal tw< cms< fo< iskeyword< keywordprg<" . +let b:undo_ftplugin = "setlocal tw< cms< fo< iskeyword< keywordprg< quoteescape<" . + \ " | sil! delc -buffer Ps1KeywordPrg" . \ " | unlet! b:browsefilter" - diff --git a/ftplugin/racket.vim b/ftplugin/racket.vim index f7f57a385..78de997c7 100644 --- a/ftplugin/racket.vim +++ b/ftplugin/racket.vim @@ -71,6 +71,11 @@ endif "setl commentstring=;;%s setl commentstring=#\|\ %s\ \|# +if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") + let b:browsefilter = "Racket Source Files (*.rkt *.rktl)\t*.rkt;*.rktl\n" . + \ "All Files (*.*)\t*.*\n" +endif + " Undo our settings when the filetype changes away from Racket " (this should be amended if settings/mappings are added above!) let b:undo_ftplugin = @@ -78,3 +83,4 @@ let b:undo_ftplugin = \. "| setl makeprg< commentstring<" \. "| nunmap K" \. "| vunmap K" + \. "| unlet! b:browsefilter" diff --git a/ftplugin/requirements.vim b/ftplugin/requirements.vim index b79e55e70..63d9955fc 100644 --- a/ftplugin/requirements.vim +++ b/ftplugin/requirements.vim @@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand(':p'), 'requirements', 'ftplugin/requ endif " the Requirements File Format syntax support for Vim -" Version: 1.7.1 +" Version: 1.8.0 " Author: raimon " License: MIT LICENSE " The MIT License (MIT) diff --git a/ftplugin/ruby.vim b/ftplugin/ruby.vim index 04eb12390..897c8abc5 100644 --- a/ftplugin/ruby.vim +++ b/ftplugin/ruby.vim @@ -6,7 +6,6 @@ endif " Language: Ruby " Maintainer: Tim Pope " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns if (exists("b:did_ftplugin")) finish @@ -63,24 +62,38 @@ if !exists('g:ruby_version_paths') let g:ruby_version_paths = {} endif +let s:path_split = has('win32') ? ';' : ':' + function! s:query_path(root) abort - let code = "print $:.join %q{,}" - if &shell =~# 'sh' && empty(&shellxquote) - let prefix = 'env PATH='.shellescape($PATH).' ' - else - let prefix = '' + " Disabled by default for security reasons. + if !get(g:, 'ruby_exec', get(g:, 'plugin_exec', 0)) || empty(a:root) + return map(split($RUBYLIB, s:path_split), 'v:val ==# "." ? "" : v:val') endif + let code = "print $:.join %q{,}" if &shellxquote == "'" - let path_check = prefix.'ruby --disable-gems -e "' . code . '"' + let args = ' --disable-gems -e "' . code . '"' else - let path_check = prefix."ruby --disable-gems -e '" . code . "'" + let args = " --disable-gems -e '" . code . "'" endif - let cd = haslocaldir() ? 'lcd' : 'cd' + let cd = haslocaldir() ? 'lcd' : exists(':tcd') && haslocaldir(-1) ? 'tcd' : 'cd' let cwd = fnameescape(getcwd()) try exe cd fnameescape(a:root) - let path = split(system(path_check),',') + for dir in split($PATH, s:path_split) + if dir !=# '.' && executable(dir . '/ruby') == 1 + let exepath = dir . '/ruby' + break + endif + endfor + if exists('l:exepath') + let path = split(system(exepath . args),',') + if v:shell_error + let path = [] + endif + else + let path = [] + endif exe cd cwd return path finally @@ -121,10 +134,8 @@ else if !exists('g:ruby_default_path') if has("ruby") && has("win32") ruby ::VIM::command( 'let g:ruby_default_path = split("%s",",")' % $:.join(%q{,}) ) - elseif executable('ruby') && !empty($HOME) - let g:ruby_default_path = s:query_path($HOME) else - let g:ruby_default_path = map(split($RUBYLIB,':'), 'v:val ==# "." ? "" : v:val') + let g:ruby_default_path = s:query_path($HOME) endif endif let s:ruby_paths = g:ruby_default_path diff --git a/ftplugin/smt2.vim b/ftplugin/smt2.vim index b8e8c46ca..78060f01c 100644 --- a/ftplugin/smt2.vim +++ b/ftplugin/smt2.vim @@ -5,11 +5,36 @@ endif setlocal iskeyword+=-,:,#,',$ setlocal commentstring=;%s +" ------------------------------------------------------------------------------ " Mappings for solver functionality -nnoremap r :call smt2#solver#Run() -nnoremap R :call smt2#solver#RunAndShowResult() -nnoremap v :call smt2#solver#PrintVersion() +" ------------------------------------------------------------------------------ +nnoremap Smt2Run :call smt2#solver#Run() +if !hasmapto('Smt2Run', 'n') + nmap r Smt2Run +endif + +nnoremap Smt2RunAndShowResult :call smt2#solver#RunAndShowResult() +if !hasmapto('Smt2RunAndShowResult', 'n') + nmap R Smt2RunAndShowResult +endif + +nnoremap Smt2PrintVersion :call smt2#solver#PrintVersion() +if !hasmapto('Smt2PrintVersion', 'n') + nmap v Smt2PrintVersion +endif +" ------------------------------------------------------------------------------ " Mappings for formatting functionality -nnoremap f :call smt2#formatter#FormatCurrentParagraph() -nnoremap F :call smt2#formatter#FormatAllParagraphs() +" ------------------------------------------------------------------------------ +nnoremap Smt2FormatCurrentParagraph :call smt2#formatter#FormatCurrentParagraph() +if !hasmapto('Smt2FormatCurrentParagraph', 'n') && (mapcheck('f', 'n') == '') + nmap f Smt2FormatCurrentParagraph +endif + +" Alternative function to put on f +nnoremap Smt2FormatOutermostSExpr :call smt2#formatter#FormatOutermostSExpr() + +nnoremap Smt2FormalFile :call smt2#formatter#FormatFile() +if !hasmapto('Smt2FormalFile', 'n') + nmap F Smt2FormalFile +endif diff --git a/ftplugin/terraform.vim b/ftplugin/terraform.vim index 7e56d9ed2..5f131506c 100644 --- a/ftplugin/terraform.vim +++ b/ftplugin/terraform.vim @@ -52,6 +52,7 @@ if get(g:, 'terraform_fmt_on_save', 0) autocmd! autocmd BufWritePre *.tf call terraform#fmt() autocmd BufWritePre *.tfvars call terraform#fmt() + autocmd BufWritePre *.tftest.hcl call terraform#fmt() augroup END endif diff --git a/ftplugin/typescript.vim b/ftplugin/typescript.vim index ce1de1d95..381ff7c14 100644 --- a/ftplugin/typescript.vim +++ b/ftplugin/typescript.vim @@ -19,8 +19,11 @@ setlocal commentstring=//\ %s " " and insert the comment leader when hitting or using "o". setlocal formatoptions-=t formatoptions+=croql +let b:undo_ftplugin = 'setl fo< cms<' + if !&l:formatexpr && !&l:formatprg - setlocal formatexpr=Fixedgq(v:lnum,v:count) + setlocal formatexpr=Fixedgq(v:lnum,v:count) + let b:undo_ftplugin .= ' fex<' endif " setlocal foldmethod=syntax @@ -29,64 +32,64 @@ let &cpo = s:cpo_save unlet s:cpo_save function! Fixedgq(lnum, count) - let l:tw = &tw ? &tw : 80 + let l:tw = &tw ? &tw : 80 - let l:count = a:count - let l:first_char = indent(a:lnum) + 1 + let l:count = a:count + let l:first_char = indent(a:lnum) + 1 - if mode() == 'i' " gq was not pressed, but tw was set - return 1 - endif + if mode() == 'i' " gq was not pressed, but tw was set + return 1 + endif - " This gq is only meant to do code with strings, not comments - if yats#IsLineComment(a:lnum, l:first_char) || yats#IsInMultilineComment(a:lnum, l:first_char) - return 1 - endif + " This gq is only meant to do code with strings, not comments + if yats#IsLineComment(a:lnum, l:first_char) || yats#IsInMultilineComment(a:lnum, l:first_char) + return 1 + endif - if len(getline(a:lnum)) < l:tw && l:count == 1 " No need for gq - return 1 - endif + if len(getline(a:lnum)) < l:tw && l:count == 1 " No need for gq + return 1 + endif - " Put all the lines on one line and do normal splitting after that - if l:count > 1 - while l:count > 1 - let l:count -= 1 - normal! J - endwhile - endif + " Put all the lines on one line and do normal splitting after that + if l:count > 1 + while l:count > 1 + let l:count -= 1 + normal! J + endwhile + endif - let l:winview = winsaveview() + let l:winview = winsaveview() - call cursor(a:lnum, l:tw + 1) - let orig_breakpoint = searchpairpos(' ', '', '\.', 'bcW', '', a:lnum) - call cursor(a:lnum, l:tw + 1) - let breakpoint = searchpairpos(' ', '', '\.', 'bcW', s:skip_expr, a:lnum) + call cursor(a:lnum, l:tw + 1) + let orig_breakpoint = searchpairpos(' ', '', '\.', 'bcW', '', a:lnum) + call cursor(a:lnum, l:tw + 1) + let breakpoint = searchpairpos(' ', '', '\.', 'bcW', s:skip_expr, a:lnum) - " No need for special treatment, normal gq handles edgecases better - if breakpoint[1] == orig_breakpoint[1] - call winrestview(l:winview) - return 1 - endif + " No need for special treatment, normal gq handles edgecases better + if breakpoint[1] == orig_breakpoint[1] + call winrestview(l:winview) + return 1 + endif - " Try breaking after string - if breakpoint[1] <= indent(a:lnum) - call cursor(a:lnum, l:tw + 1) - let breakpoint = searchpairpos('\.', '', ' ', 'cW', s:skip_expr, a:lnum) - endif + " Try breaking after string + if breakpoint[1] <= indent(a:lnum) + call cursor(a:lnum, l:tw + 1) + let breakpoint = searchpairpos('\.', '', ' ', 'cW', s:skip_expr, a:lnum) + endif - if breakpoint[1] != 0 - call feedkeys("r\") - else - let l:count = l:count - 1 - endif + if breakpoint[1] != 0 + call feedkeys("r\") + else + let l:count = l:count - 1 + endif - " run gq on new lines - if l:count == 1 - call feedkeys("gqq") - endif + " run gq on new lines + if l:count == 1 + call feedkeys("gqq") + endif - return 0 + return 0 endfunction function! TsIncludeExpr(file) @@ -98,10 +101,12 @@ function! TsIncludeExpr(file) endif endfunction -set path+=./node_modules/**,node_modules/** -set include=import\_s.\\zs[^'\"]*\\ze -set includeexpr=TsIncludeExpr(v:fname) -set suffixesadd+=.ts +setlocal path+=./node_modules/**,node_modules/** +setlocal include=import\_s.\\zs[^'\"]*\\ze +setlocal includeexpr=TsIncludeExpr(v:fname) +setlocal suffixesadd+=.ts + +let b:undo_ftplugin .= ' pa< inc< inex< fex<' " " TagBar diff --git a/ftplugin/typescriptreact.vim b/ftplugin/typescriptreact.vim index c13fc9960..6df12e84d 100644 --- a/ftplugin/typescriptreact.vim +++ b/ftplugin/typescriptreact.vim @@ -2,6 +2,14 @@ if polyglot#init#is_disabled(expand(':p'), 'typescript', 'ftplugin/typesc finish endif +" Comment formatting +setlocal comments=s1:/*,mb:*,ex:*/,:// +setlocal formatoptions-=t formatoptions+=croql + +setlocal suffixesadd+=.tsx + +let b:undo_ftplugin = 'setl fo< cms< sua<' + " modified from mxw/vim-jsx from html.vim if exists("loaded_matchit") && !exists('b:tsx_match_words') let b:match_ignorecase = 0 @@ -10,10 +18,6 @@ if exists("loaded_matchit") && !exists('b:tsx_match_words') let b:match_words = exists('b:match_words') \ ? b:match_words . ',' . b:tsx_match_words \ : b:tsx_match_words -endif - -" Comment formatting -setlocal comments=s1:/*,mb:*,ex:*/,:// -setlocal formatoptions-=t formatoptions+=croql -set suffixesadd+=.tsx + let b:undo_ftplugin .= ' | unlet! b:match_words b:match_ignorecase b:tsx_match_words' +endif diff --git a/ftplugin/unison.vim b/ftplugin/unison.vim index 93ac81d6d..1a5cc713d 100644 --- a/ftplugin/unison.vim +++ b/ftplugin/unison.vim @@ -8,4 +8,9 @@ if exists("b:did_ftplugin") endif let b:did_ftplugin = 1 -call unison#SetBufferDefaults() +setlocal commentstring=--\ %s +setlocal iskeyword+=!,' +" setlocal tabstop=2 +" setlocal softtabstop=2 +" setlocal shiftwidth=2 +" setlocal completefunc=syntaxcomplete#Complete diff --git a/ftplugin/zig.vim b/ftplugin/zig.vim index a2921a9b0..771e92a12 100644 --- a/ftplugin/zig.vim +++ b/ftplugin/zig.vim @@ -28,7 +28,7 @@ setlocal formatoptions-=t formatoptions+=croql setlocal suffixesadd=.zig,.zir if has('comments') - setlocal comments=:///,://!,://,:\\\\ + setlocal comments=:///,://!,:// setlocal commentstring=//\ %s endif diff --git a/indent/cucumber.vim b/indent/cucumber.vim index cf85c5751..91e83d00a 100644 --- a/indent/cucumber.vim +++ b/indent/cucumber.vim @@ -23,57 +23,80 @@ if exists("*GetCucumberIndent") finish endif -function! s:syn(lnum) - return synIDattr(synID(a:lnum,1+indent(a:lnum),1),'name') +let s:headings = { + \ 'Feature': 'feature', + \ 'Rule': 'rule', + \ 'Background': 'bg_or_scenario', + \ 'Scenario': 'bg_or_scenario', + \ 'ScenarioOutline': 'bg_or_scenario', + \ 'Examples': 'examples', + \ 'Scenarios': 'examples'} + +function! s:Line(lnum) abort + if getline(a:lnum) =~# ':' + let group = matchstr(synIDattr(synID(a:lnum,1+indent(a:lnum), 1), 'name'), '^cucumber\zs.*') + if !has_key(s:headings, group) + let group = substitute(matchstr(getline(a:lnum), '^\s*\zs\%([^:]\+\)\ze:\S\@!'), '\s\+', '', 'g') + endif + else + let group = '' + endif + let char = matchstr(getline(a:lnum), '^\s*\zs[[:punct:]]') + return { + \ 'lnum': a:lnum, + \ 'indent': indent(a:lnum), + \ 'heading': get(s:headings, group, ''), + \ 'tag': char ==# '@', + \ 'table': char ==# '|', + \ 'comment': char ==# '#', + \ } endfunction -function! GetCucumberIndent() - let line = getline(prevnonblank(v:lnum-1)) - let cline = getline(v:lnum) - let nline = getline(nextnonblank(v:lnum+1)) - let sw = exists('*shiftwidth') ? shiftwidth() : shiftwidth() - let syn = s:syn(prevnonblank(v:lnum-1)) - let csyn = s:syn(v:lnum) - let nsyn = s:syn(nextnonblank(v:lnum+1)) - if csyn ==# 'cucumberFeature' || cline =~# '^\s*Feature:' +function! GetCucumberIndent(...) abort + let lnum = a:0 ? a:1 : v:lnum + let sw = shiftwidth() + let prev = s:Line(prevnonblank(lnum-1)) + let curr = s:Line(lnum) + let next = s:Line(nextnonblank(lnum+1)) + if curr.heading ==# 'feature' " feature heading return 0 - elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):' + elseif curr.heading ==# 'examples' " examples heading return 2 * sw - elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):' + elseif curr.heading ==# 'bg_or_scenario' " background, scenario or outline heading return sw - elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:' + elseif prev.heading ==# 'feature' " line after feature heading return sw - elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):' + elseif prev.heading ==# 'examples' " line after examples heading return 3 * sw - elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):' + elseif prev.heading ==# 'bg_or_scenario' " line after background, scenario or outline heading return 2 * sw - elseif cline =~# '^\s*[@#]' && (nsyn == 'cucumberFeature' || nline =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0) + elseif (curr.tag || curr.comment) && (next.heading ==# 'feature' || prev.indent <= 0) " tag or comment before a feature heading return 0 - elseif cline =~# '^\s*@' + elseif curr.tag " other tags return sw - elseif cline =~# '^\s*[#|]' && line =~# '^\s*|' + elseif (curr.table || curr.comment) && prev.table " mid-table " preserve indent - return indent(prevnonblank(v:lnum-1)) - elseif cline =~# '^\s*|' && line =~# '^\s*[^|]' + return prev.indent + elseif curr.table && !prev.table " first line of a table, relative indent - return indent(prevnonblank(v:lnum-1)) + sw - elseif cline =~# '^\s*[^|]' && line =~# '^\s*|' + return prev.indent + sw + elseif !curr.table && prev.table " line after a table, relative unindent - return indent(prevnonblank(v:lnum-1)) - sw - elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && (nsyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || nline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):') + return prev.indent - sw + elseif curr.comment && getline(v:lnum-1) =~# '^\s*$' && next.heading ==# 'bg_or_scenario' " comments on scenarios return sw endif - return indent(prevnonblank(v:lnum-1)) + return prev.indent < 0 ? 0 : prev.indent endfunction " vim:set sts=2 sw=2: diff --git a/indent/eruby.vim b/indent/eruby.vim index 74cd1d2f0..96bc0bf7b 100644 --- a/indent/eruby.vim +++ b/indent/eruby.vim @@ -6,7 +6,6 @@ endif " Language: eRuby " Maintainer: Tim Pope " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns if exists("b:did_indent") finish diff --git a/indent/fsharp.vim b/indent/fsharp.vim index c9d6ad497..a4e5e7ac3 100644 --- a/indent/fsharp.vim +++ b/indent/fsharp.vim @@ -189,6 +189,13 @@ function! GetFsharpIndent() endif + + " Don't change indent after lines begins with '//': + if lline =~ '^\s*//' + let i = indent(v:lnum) + return i == 0 ? ind : i + endif + " Add a 'shiftwidth' after lines ending with: if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|private\|sig\|struct\|then\|try\)\|\:p'), 'graphql', 'indent/graphql.vim finish endif -" Copyright (c) 2016-2021 Jon Parise +" Copyright (c) Jon Parise " " Permission is hereby granted, free of charge, to any person obtaining a copy " of this software and associated documentation files (the "Software"), to @@ -64,11 +64,11 @@ function GetGraphQLIndent() return 0 endif - " If the previous line isn't GraphQL, don't change this line's indentation. - " Assume we've been manually indented as part of a template string. + " If the previous line isn't GraphQL, assume we're part of a template + " string and indent this new line within it. let l:stack = map(synstack(l:prevlnum, 1), "synIDattr(v:val, 'name')") if get(l:stack, -1) !~# '^graphql' - return -1 + return indent(l:prevlnum) + shiftwidth() endif let l:line = getline(v:lnum) diff --git a/indent/julia.vim b/indent/julia.vim index fabef0224..1eb2e2da3 100644 --- a/indent/julia.vim +++ b/indent/julia.vim @@ -18,7 +18,7 @@ setlocal indentkeys-=0{ setlocal indentkeys-=0} setlocal nosmartindent -let b:undo_indent = "setl ai< inde< indk< si<" +let b:undo_indent = "setlocal autoindent< indentexpr< indentkeys< smartindent<" " Only define the function once. if exists("*GetJuliaIndent") @@ -294,7 +294,7 @@ function IsInContinuationImportLine(lnum) if len(stack) == 0 return 0 endif - return JuliaMatch(a:lnum, getline(a:lnum), '\<\%(import\|using\|export\)\>', indent(a:lnum)) == -1 + return JuliaMatch(a:lnum, getline(a:lnum), '\<\%(import\|using\|export\|public\)\>', indent(a:lnum)) == -1 endfunction function IsFunctionArgPar(lnum, c) @@ -444,10 +444,10 @@ function GetJuliaIndent() " Decrease indentation for each closed block in the current line let ind -= shiftwidth() * num_closed_blocks - " Additional special case: multiline import/using/export statements + " Additional special case: multiline import/using/export/public statements let prevline = getline(lnum) - " Are we in a multiline import/using/export statement, right below the + " Are we in a multiline import/using/export/public statement, right below the " opening line? if IsInContinuationImportLine(v:lnum) && !IsInContinuationImportLine(lnum) if get(g:, 'julia_indent_align_import', 1) @@ -461,9 +461,9 @@ function GetJuliaIndent() return cind + 2 endif else - " if the opening line is not a naked import/using/export statement, use + " if the opening line is not a naked import/using/export/public statement, use " it as reference - let iind = JuliaMatch(lnum, prevline, '\', indent(lnum), lim) + let iind = JuliaMatch(lnum, prevline, '\', indent(lnum), lim) if iind >= 0 " assuming whitespace after using... so no `using(XYZ)` please! let nonwhiteind = JuliaMatch(lnum, prevline, '\S', iind+6, -1, 'basic') @@ -475,7 +475,7 @@ function GetJuliaIndent() endif let ind += shiftwidth() - " Or did we just close a multiline import/using/export statement? + " Or did we just close a multiline import/using/export/public statement? elseif !IsInContinuationImportLine(v:lnum) && IsInContinuationImportLine(lnum) " find the starting line of the statement let ilnum = 0 diff --git a/indent/just.vim b/indent/just.vim new file mode 100644 index 000000000..6daa89f89 --- /dev/null +++ b/indent/just.vim @@ -0,0 +1,55 @@ +if polyglot#init#is_disabled(expand(':p'), 'just', 'indent/just.vim') + finish +endif + +" Vim indent file +" Language: Justfile +" Maintainer: Noah Bogart +" URL: https://github.com/NoahTheDuke/vim-just.git +" Last Change: 2024 Jan 25 + +" Only load this indent file when no other was loaded yet. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal indentexpr=GetJustfileIndent() +setlocal indentkeys=0},0),!^F,o,O,0=''',0=\"\"\" + +let b:undo_indent = "setlocal indentexpr< indentkeys<" + +if exists("*GetJustfileIndent") + finish +endif + +function GetJustfileIndent() + if v:lnum < 2 + return 0 + endif + + let prev_line = getline(v:lnum - 1) + let last_indent = indent(v:lnum - 1) + + if getline(v:lnum) =~ "\\v^\\s+%([})]|'''$|\"\"\"$)" + return last_indent - shiftwidth() + elseif prev_line =~ '\V#' + return last_indent + elseif prev_line =~ "\\v%([:{(]|^.*\\S.*%([^']'''|[^\"]\"\"\"))\\s*$" + return last_indent + shiftwidth() + elseif prev_line =~ '\\$' + if v:lnum == 2 || getline(v:lnum - 2) !~ '\\$' + if prev_line =~ '\v:\=@!' + return last_indent + shiftwidth() + shiftwidth() + else + return last_indent + shiftwidth() + endif + endif + elseif v:lnum > 2 && getline(v:lnum - 2) =~ '\\$' + return last_indent - shiftwidth() + elseif prev_line =~ '\v:\s*%(\h|\()' && prev_line !~ '\V:=' + return last_indent + shiftwidth() + endif + + return last_indent +endfunction diff --git a/indent/ledger.vim b/indent/ledger.vim index 74c0eaed9..ede7239ce 100644 --- a/indent/ledger.vim +++ b/indent/ledger.vim @@ -31,7 +31,7 @@ function GetLedgerIndent(...) if line =~# '^\s\+\S' " Lines that already are indented (→postings, sub-directives) keep their indentation. - return &shiftwidth + return shiftwidth() elseif line =~# '^\s*$' " Current line is empty, try to guess its type based on the previous line. if prev =~# '^\([[:digit:]~=]\|\s\+\S\)' @@ -40,7 +40,7 @@ function GetLedgerIndent(...) " indented you will have to indent the first line following a " pre-declaration manually. This makes it easier to type long lists of " 'account' pre-declarations without sub-directives, for example. - return &shiftwidth + return shiftwidth() else return 0 endif diff --git a/indent/lilypond.vim b/indent/lilypond.vim index da836dbbe..580864b44 100644 --- a/indent/lilypond.vim +++ b/indent/lilypond.vim @@ -35,6 +35,8 @@ let b:did_indent = 1 setlocal indentexpr=GetLilyPondIndent() setlocal indentkeys=o,O,},>>,!^F +let b:undo_indent = "setlocal indentexpr< indentkeys<" + " Only define the function once. if exists("*GetLilyPondIndent") finish diff --git a/indent/nginx.vim b/indent/nginx.vim index dedcd9709..a1e21f7be 100644 --- a/indent/nginx.vim +++ b/indent/nginx.vim @@ -2,16 +2,76 @@ if polyglot#init#is_disabled(expand(':p'), 'nginx', 'indent/nginx.vim') finish endif -if exists("b:did_indent") - finish +" Only load this indent file when no other was loaded. +if exists('b:did_indent') + finish endif let b:did_indent = 1 -setlocal indentexpr= +setlocal indentexpr=GetNginxIndent() + +setlocal indentkeys=0{,0},0#,!^F,o,O + +let b:undo_indent = 'setl inde< indk<' + +" Only define the function once. +if exists('*GetNginxIndent') + finish +endif + +function GetNginxIndent() abort + let plnum = s:PrevNotAsBlank(v:lnum - 1) + + " Hit the start of the file, use zero indent. + if plnum == 0 + return 0 + endif + + let ind = indent(plnum) + + " Add a 'shiftwidth' after '{' + if s:AsEndWith(getline(plnum), '{') + let ind = ind + shiftwidth() + end + + " Subtract a 'shiftwidth' on '}' + " This is the part that requires 'indentkeys'. + if getline(v:lnum) =~ '^\s*}' + let ind = ind - shiftwidth() + endif + + let pplnum = s:PrevNotAsBlank(plnum - 1) + + if s:IsLineContinuation(plnum) + if !s:IsLineContinuation(pplnum) + let ind = ind + shiftwidth() + end + else + if s:IsLineContinuation(pplnum) + let ind = ind - shiftwidth() + end + endif + + return ind +endfunction + +" Find the first line at or above {lnum} that is non-blank and not a comment. +function s:PrevNotAsBlank(lnum) abort + let lnum = prevnonblank(a:lnum) + while lnum > 0 + if getline(lnum) !~ '^\s*#' + break + endif + let lnum = prevnonblank(lnum - 1) + endwhile + return lnum +endfunction -" cindent actually works for nginx' simple file structure -setlocal cindent -" Just make sure that the comments are not reset as defs would be. -setlocal cinkeys-=0# +" Check whether {line} ends with {pat}, ignoring trailing comments. +function s:AsEndWith(line, pat) abort + return a:line =~ a:pat . '\m\s*\%(#.*\)\?$' +endfunction -let b:undo_indent = "setl cin< cink< inde<" +function s:IsLineContinuation(lnum) abort + return a:lnum > 0 && !s:AsEndWith(getline(a:lnum), '[;{}]') +endfunction diff --git a/indent/pony.vim b/indent/pony.vim deleted file mode 100644 index 21035eb9b..000000000 --- a/indent/pony.vim +++ /dev/null @@ -1,41 +0,0 @@ -if polyglot#init#is_disabled(expand(':p'), 'pony', 'indent/pony.vim') - finish -endif - -" Vim indent file -" Language: Pony -" Maintainer: Jak Wings - -if exists('b:did_indent') - finish -endif - -let s:cpo_save = &cpo -set cpo&vim - - -setlocal nolisp -setlocal nocindent -setlocal nosmartindent -setlocal autoindent -setlocal indentexpr=pony#Indent() -setlocal indentkeys=!^F,o,O,0\|,0(,0),0[,0],0{,0},0==>,0=\"\"\",0=end,0=then,0=else,0=in,0=do,0=until,0=actor,0=class,0=struct,0=primitive,0=trait,0=interface,0=new,0=be,0=fun,0=type,0=use -setlocal cinkeys=!^F,o,O,0\|,0(,0),0[,0],0{,0},0==>,0=\"\"\",0=end,0=then,0=else,0=in,0=do,0=until,0=actor,0=class,0=struct,0=primitive,0=trait,0=interface,0=new,0=be,0=fun,0=type,0=use -setlocal cinwords=ifdef,if,match,while,for,repeat,try,with,recover,object,lambda,then,elseif,else,until,do,actor,class,struct,primitive,trait,interface,new,be,fun,iftype,elseiftype - -augroup pony - autocmd! * - autocmd CursorHold call pony#ClearTrailingSpace(1, 1) - "autocmd InsertEnter call pony#ClearTrailingSpace(0, 0) - autocmd InsertLeave call pony#ClearTrailingSpace(0, 1) - autocmd BufWritePre call pony#ClearTrailingSpace(1, 0, 1) -augroup END - -let b:undo_indent = 'set lisp< cindent< autoindent< smartindent< indentexpr< indentkeys< cinkeys< cinwords<' - \ . ' | execute("autocmd! pony * ")' - - -let &cpo = s:cpo_save -unlet s:cpo_save - -let b:did_indent = 1 diff --git a/indent/ruby.vim b/indent/ruby.vim index 4bba63de9..e3f82ec01 100644 --- a/indent/ruby.vim +++ b/indent/ruby.vim @@ -7,7 +7,6 @@ endif " Maintainer: Andrew Radev " Previous Maintainer: Nikolai Weibull " URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns " 0. Initialization {{{1 " ================= diff --git a/indent/svelte.vim b/indent/svelte.vim index 7c09f361e..8150204f8 100644 --- a/indent/svelte.vim +++ b/indent/svelte.vim @@ -119,7 +119,14 @@ function! GetSvelteIndent() let cursyns = s:SynsSOL(v:lnum) let cursyn = get(cursyns, 0, '') - if s:SynHTML(cursyn) && !s:IsMultipleLineSvelteExpression(curline, cursyns) + if s:IsMultipleLineTemplateString(curline, cursyns) + call s:Log('current line is multiline template string expression') + if !s:IsMultipleLineTemplateString(prevline, prevsyns) + let ind = indent(v:lnum - 1) + &sw + else + let ind = indent(v:lnum - 1) + endif + elseif s:SynHTML(cursyn) && !s:IsMultipleLineSvelteExpression(curline, cursyns) call s:Log('syntax: html') let ind = XmlIndentGet(v:lnum, 0) if prevline =~? s:empty_tag @@ -247,6 +254,20 @@ function! s:IsMultipleLineSvelteExpression(curline, syns) return 0 endfunction +function! s:IsMultipleLineTemplateString(curline, syns) + if a:curline =~ '^\s*{.*}\s*$' + return 0 + endif + + for syn in a:syns + if syn ==? 'javaScriptTemplateString' + return 1 + endif + endfor + + return 0 +endfunction + function! s:SynBlockBody(syn) return a:syn ==? 'svelteBlockBody' endfunction diff --git a/packages.yaml b/packages.yaml index 4335324ce..adee5c8a9 100644 --- a/packages.yaml +++ b/packages.yaml @@ -1029,9 +1029,6 @@ ignored_dirs: filetypes: - name: markdown linguist: Markdown - ignored_extensions: - # Handled by mdx extension - - mdx ignored_warnings: - '*.{md,mdx,mdown,mkd,mkdn,markdown,mdwn}.{des3,des,bf,bfa,aes,idea,cast,rc2,rc4,rc5,desx}' --- @@ -1237,7 +1234,7 @@ filetypes: - pu --- name: pony -remote: jakwings/vim-pony +remote: dleonard0/pony-vim-syntax filetypes: - name: pony linguist: Pony @@ -1253,6 +1250,12 @@ filetypes: extensions: - ps1xml --- +name: prisma +remote: prisma/vim-prisma +filetypes: +- name: prisma + linguist: Prisma +--- name: protobuf remote: uarun/vim-protobuf filetypes: @@ -5475,7 +5478,7 @@ filetypes: description: 'JSON with comments (https://komkom.github.io/)' --- name: gleam -remote: gleam-lang/gleam.vim +remote: gleam-lang/gleam.vim@main filetypes: - name: gleam extensions: @@ -5498,7 +5501,7 @@ filetypes: description: Sway Configuration --- name: just -remote: NoahTheDuke/vim-just +remote: NoahTheDuke/vim-just@main filetypes: - name: just patterns: diff --git a/syntax/ansible.vim b/syntax/ansible.vim index 1398a8c76..3f6041de1 100644 --- a/syntax/ansible.vim +++ b/syntax/ansible.vim @@ -5,7 +5,7 @@ endif " Vim syntax file " Language: Ansible YAML/Jinja templates " Maintainer: Dave Honneffer -" Last Change: 2018.02.08 +" Last Change: 2023.10.29 if !exists("main_syntax") let main_syntax = 'yaml' @@ -103,6 +103,13 @@ if exists("g:ansible_extra_keywords_highlight") endif endif +execute 'syn keyword ansible_fqcn_keywords ansible builtin ansible.builtin. containedin='.s:yamlKey.' contained' +if exists("g:ansible_fqcn_highlight") + execute 'highlight link ansible_fqcn_keywords '.g:ansible_fqcn_highlight +else + highlight default link ansible_fqcn_keywords Statement +endif + execute 'syn keyword ansible_normal_keywords \ include include_role include_tasks include_vars import_role import_playbook import_tasks \ when changed_when failed_when block rescue always notify listen register diff --git a/syntax/bicep.vim b/syntax/bicep.vim index dcd921428..cdf5c32c3 100644 --- a/syntax/bicep.vim +++ b/syntax/bicep.vim @@ -31,9 +31,16 @@ syn match bicepResourceName /\h\w*/ nextgroup=bicepResourceString skipwhite syn region bicepResourceString start=/'/ skip=/\\\\\|\\'/ end=/'/ contains=bicepStringInterp nextgroup=bicepExisting skipwhite syn keyword bicepExisting existing contained +syn keyword bicepStatement module nextgroup=bicepModuleName skipwhite +syn match bicepModuleName /\h\w*/ nextgroup=bicepModuleString skipwhite contained +syn region bicepModuleString start=/'/ skip=/\\\\\|\\'/ end=/'/ contains=bicepStringInterp skipwhite + syn match bicepDecoratorName /@\s*\h\%(\w\|\.\)*/ contains=bicepDecorator syn match bicepDecorator /@/ contained +syn match bicepPreProc /#[-_a-zA-Z0-9]\+/ nextgroup=bicepPreProcArg skipwhite +syn match bicepPreProcArg /\w\+/ skipwhite contained nextgroup=bicepPreProcArg + syn region bicepComment start="/\*" end="\*/" contains=bicepTodo,@Spell syn region bicepComment start="//" end="$" contains=bicepTodo,@Spell syn keyword bicepTodo TODO FIXME XXX BUG contained @@ -56,10 +63,14 @@ syn match bicepBraces /[{}\[\]]/ hi def link bicepDataType Type hi def link bicepStatement Statement hi def link bicepResourceString String +hi def link bicepModuleString String hi def link bicepExisting Label hi def link bicepDecorator Define +hi def link bicepPreProc PreProc +hi def link bicepPreProcArg Comment + hi def link bicepComment Comment hi def link bicepTodo Todo diff --git a/syntax/clojure.vim b/syntax/clojure.vim index 4397b89be..e51053cdd 100644 --- a/syntax/clojure.vim +++ b/syntax/clojure.vim @@ -66,13 +66,16 @@ endif unlet! s:key delfunction s:syntax_keyword +syntax match clojureKeywordNs contained "\v[^ \n\r\t()\[\]{}";@^`~\\\/'#]+\ze\/" +syntax match clojureKeywordNsSeparator contained "/" +syntax match clojureKeywordNsColon contained "\v<:{1,2}" " Keywords are symbols: " static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)"); " But they: " * Must not end in a : or / " * Must not have two adjacent colons except at the beginning " * Must not contain any reader metacharacters except for ' and # -syntax match clojureKeyword "\v<:{1,2}([^ \n\r\t()\[\]{}";@^`~\\/]+/)*[^ \n\r\t()\[\]{}";@^`~\\/]+:@1" +syntax match clojureKeyword "\v<:{1,2}([^ \n\r\t()\[\]{}";@^`~\\/]*/)*[^ \n\r\t()\[\]{}";@^`~\\/]*:@1" contains=clojureKeywordNs,clojureKeywordNsSeparator,clojureKeywordNsColon syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained @@ -80,7 +83,9 @@ syntax region clojureString matchgroup=clojureStringDelimiter start=/"/ skip=/\\ syntax match clojureCharacter "\v\\%(o%([0-3]\o{2}|\o{1,2})|u\x{4}|newline|tab|space|return|backspace|formfeed|.)" -syntax match clojureSymbol "\v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@1?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@1" @@ -166,12 +171,17 @@ syntax sync fromstart highlight default link clojureConstant Constant highlight default link clojureBoolean Boolean highlight default link clojureCharacter Character -highlight default link clojureKeyword Keyword highlight default link clojureNumber Number highlight default link clojureString String highlight default link clojureStringDelimiter String highlight default link clojureStringEscape Character +highlight default link clojureKeyword Keyword +highlight default link clojureKeywordNsColon clojureKeyword +highlight default link clojureKeywordNs clojureKeyword + +highlight default link clojureSymbolNs clojureSymbol + highlight default link clojureRegexp Constant highlight default link clojureRegexpDelimiter Constant highlight default link clojureRegexpEscape Character diff --git a/syntax/cmake.vim b/syntax/cmake.vim index 28a7aed14..69b545690 100644 --- a/syntax/cmake.vim +++ b/syntax/cmake.vim @@ -4,14 +4,14 @@ endif " Vim syntax file " Program: CMake - Cross-Platform Makefile Generator -" Version: cmake version 3.19.20201028-gdab947f +" Version: cmake version 3.27.20230713-gdc88dd5 " Language: CMake " Author: Andy Cedilnik , " Nicholas Hutchinson , " Patrick Boettcher " Maintainer: Dimitri Merejkowsky " Former Maintainer: Karthik Krishnan -" Last Change: 2020 oct. 28 +" Last Change: 2023 Jul 13 " " Licence: The CMake license applies to this file. See " https://cmake.org/licensing @@ -26,20 +26,20 @@ set cpo&vim syn region cmakeBracketArgument start="\[\z(=\?\|=[0-9]*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell syn region cmakeComment start="#" end="$" contains=cmakeTodo,@Spell -syn region cmakeBracketComment start="#\[\z(=\?\|=[0-9]*\)\[" end="\]\z1\]" 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,cmakeVariableValue syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo -syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo +syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo,@Spell syn case match @@ -79,6 +79,7 @@ syn keyword cmakeProperty contained \ AUTOGEN_SOURCE_GROUP \ AUTOGEN_TARGETS_FOLDER \ AUTOGEN_TARGET_DEPENDS + \ AUTOGEN_USE_SYSTEM_INCLUDE \ AUTOMOC \ AUTOMOC_COMPILER_PREDEFINES \ AUTOMOC_DEPEND_FILTERS @@ -96,6 +97,7 @@ syn keyword cmakeProperty contained \ AUTOUIC_EXECUTABLE \ AUTOUIC_OPTIONS \ AUTOUIC_SEARCH_PATHS + \ AUTOUIC_SOURCE_GROUP \ BINARY_DIR \ BUILDSYSTEM_TARGETS \ BUILD_RPATH @@ -122,6 +124,7 @@ syn keyword cmakeProperty contained \ COMPILE_OPTIONS \ COMPILE_PDB_NAME \ COMPILE_PDB_OUTPUT_DIRECTORY + \ COMPILE_WARNING_AS_ERROR \ COST \ CPACK_DESKTOP_SHORTCUTS \ CPACK_NEVER_OVERWRITE @@ -131,7 +134,10 @@ syn keyword cmakeProperty contained \ 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 @@ -139,6 +145,10 @@ syn keyword cmakeProperty contained \ 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 @@ -155,6 +165,8 @@ syn keyword cmakeProperty contained \ DISABLED \ DISABLED_FEATURES \ DISABLE_PRECOMPILE_HEADERS + \ DLL_NAME_WITH_SOVERSION + \ DOTNET_SDK \ DOTNET_TARGET_FRAMEWORK \ DOTNET_TARGET_FRAMEWORK_VERSION \ ECLIPSE_EXTRA_CPROJECT_CONTENTS @@ -163,9 +175,12 @@ syn keyword cmakeProperty contained \ 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 @@ -180,6 +195,7 @@ syn keyword cmakeProperty contained \ FOLDER \ FRAMEWORK \ FRAMEWORK_VERSION + \ Fortran_BUILDING_INSTRINSIC_MODULES \ Fortran_FORMAT \ Fortran_MODULE_DIRECTORY \ Fortran_PREPROCESS @@ -192,8 +208,15 @@ syn keyword cmakeProperty contained \ 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 @@ -207,8 +230,10 @@ syn keyword cmakeProperty contained \ IMPORTED_LINK_INTERFACE_MULTIPLICITY \ IMPORTED_LOCATION \ IMPORTED_NO_SONAME + \ IMPORTED_NO_SYSTEM \ IMPORTED_OBJECTS \ IMPORTED_SONAME + \ IMPORTED_TARGETS \ IMPORT_PREFIX \ IMPORT_SUFFIX \ INCLUDE_DIRECTORIES @@ -217,14 +242,20 @@ syn keyword cmakeProperty contained \ INSTALL_REMOVE_ENVIRONMENT_RPATH \ INSTALL_RPATH \ INSTALL_RPATH_USE_LINK_PATH + \ INTERFACE_AUTOMOC_MACRO_NAMES \ INTERFACE_AUTOUIC_OPTIONS \ 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 @@ -234,6 +265,7 @@ syn keyword cmakeProperty contained \ IN_TRY_COMPILE \ IOS_INSTALL_COMBINED \ ISPC_HEADER_DIRECTORY + \ ISPC_HEADER_SUFFIX \ ISPC_INSTRUCTION_SETS \ JOB_POOLS \ JOB_POOL_COMPILE @@ -252,6 +284,8 @@ syn keyword cmakeProperty contained \ 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 @@ -269,6 +303,7 @@ syn keyword cmakeProperty contained \ MANUALLY_ADDED_DEPENDENCIES \ MEASUREMENT \ MODIFIED + \ MSVC_DEBUG_INFORMATION_FORMAT \ MSVC_RUNTIME_LIBRARY \ NAME \ NO_SONAME @@ -321,6 +356,7 @@ syn keyword cmakeProperty contained \ SKIP_AUTORCC \ SKIP_AUTOUIC \ SKIP_BUILD_RPATH + \ SKIP_LINTING \ SKIP_PRECOMPILE_HEADERS \ SKIP_REGULAR_EXPRESSION \ SKIP_RETURN_CODE @@ -334,6 +370,7 @@ syn keyword cmakeProperty contained \ SUBDIRECTORIES \ SUFFIX \ SYMBOLIC + \ SYSTEM \ Swift_DEPENDENCIES_FILE \ Swift_DIAGNOSTICS_FILE \ Swift_LANGUAGE_VERSION @@ -347,16 +384,20 @@ syn keyword cmakeProperty contained \ 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 @@ -371,6 +412,7 @@ syn keyword cmakeProperty contained \ 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 @@ -382,6 +424,7 @@ syn keyword cmakeProperty contained \ 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 @@ -411,11 +454,14 @@ syn keyword cmakeProperty contained \ 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 @@ -431,9 +477,14 @@ syn keyword cmakeProperty contained \ 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 @@ -444,15 +495,19 @@ syn keyword cmakeProperty contained \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP \ XCODE_SCHEME_WORKING_DIRECTORY \ XCODE_SCHEME_ZOMBIE_OBJECTS + \ XCODE_XCCONFIG \ XCTEST syn keyword cmakeVariable contained \ 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 @@ -462,6 +517,7 @@ syn keyword cmakeVariable contained \ 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 @@ -472,14 +528,17 @@ syn keyword cmakeVariable contained \ 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 @@ -491,12 +550,15 @@ syn keyword cmakeVariable contained \ 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 @@ -511,6 +573,8 @@ syn keyword cmakeVariable contained \ 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 @@ -529,6 +593,7 @@ syn keyword cmakeVariable contained \ 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 @@ -537,6 +602,7 @@ syn keyword cmakeVariable contained \ 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 @@ -544,12 +610,15 @@ syn keyword cmakeVariable contained \ 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 @@ -564,6 +633,8 @@ syn keyword cmakeVariable contained \ 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 @@ -582,6 +653,7 @@ syn keyword cmakeVariable contained \ 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 @@ -590,14 +662,19 @@ syn keyword cmakeVariable contained \ 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 @@ -606,12 +683,15 @@ syn keyword cmakeVariable contained \ 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 @@ -626,6 +706,8 @@ syn keyword cmakeVariable contained \ 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 @@ -644,6 +726,7 @@ syn keyword cmakeVariable contained \ 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 @@ -652,14 +735,19 @@ syn keyword cmakeVariable contained \ 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 @@ -667,22 +755,30 @@ syn keyword cmakeVariable contained \ 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_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_AUTORCC + \ CMAKE_AUTORCC_EXECUTABLE \ CMAKE_AUTORCC_OPTIONS \ CMAKE_AUTOUIC + \ CMAKE_AUTOUIC_EXECUTABLE \ CMAKE_AUTOUIC_OPTIONS \ CMAKE_AUTOUIC_SEARCH_PATHS \ CMAKE_BACKWARDS_COMPATIBILITY @@ -704,6 +800,7 @@ syn keyword cmakeVariable contained \ CMAKE_CODEBLOCKS_COMPILER_ID \ CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES \ CMAKE_CODELITE_USE_TARGETS + \ CMAKE_COLOR_DIAGNOSTICS \ CMAKE_COLOR_MAKEFILE \ CMAKE_COMMAND \ CMAKE_COMPILER_2005 @@ -711,6 +808,7 @@ syn keyword cmakeVariable contained \ 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 @@ -723,12 +821,15 @@ syn keyword cmakeVariable contained \ 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 @@ -743,6 +844,8 @@ syn keyword cmakeVariable contained \ 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 @@ -761,6 +864,7 @@ syn keyword cmakeVariable contained \ 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 @@ -769,14 +873,19 @@ syn keyword cmakeVariable contained \ 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 @@ -788,12 +897,15 @@ syn keyword cmakeVariable contained \ 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 @@ -810,6 +922,7 @@ syn keyword cmakeVariable contained \ 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 @@ -829,6 +942,7 @@ syn keyword cmakeVariable contained \ 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 @@ -837,6 +951,7 @@ syn keyword cmakeVariable contained \ 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 @@ -847,9 +962,11 @@ syn keyword cmakeVariable contained \ 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 @@ -868,12 +985,15 @@ syn keyword cmakeVariable contained \ 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 @@ -890,6 +1010,7 @@ syn keyword cmakeVariable contained \ 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 @@ -908,6 +1029,7 @@ syn keyword cmakeVariable contained \ 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 @@ -916,16 +1038,20 @@ syn keyword cmakeVariable contained \ 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 @@ -933,12 +1059,15 @@ syn keyword cmakeVariable contained \ 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 @@ -955,6 +1084,7 @@ syn keyword cmakeVariable contained \ 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 @@ -973,6 +1103,7 @@ syn keyword cmakeVariable contained \ 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 @@ -981,6 +1112,7 @@ syn keyword cmakeVariable contained \ 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 @@ -988,18 +1120,23 @@ syn keyword cmakeVariable contained \ 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 @@ -1011,7 +1148,20 @@ syn keyword cmakeVariable contained \ 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 @@ -1031,9 +1181,11 @@ syn keyword cmakeVariable contained \ 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 @@ -1043,6 +1195,7 @@ syn keyword cmakeVariable contained \ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH \ 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 @@ -1057,12 +1210,15 @@ syn keyword cmakeVariable contained \ 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 @@ -1077,6 +1233,8 @@ syn keyword cmakeVariable contained \ 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 @@ -1096,6 +1254,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1104,6 +1263,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1115,8 +1275,12 @@ syn keyword cmakeVariable contained \ 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 @@ -1128,8 +1292,84 @@ syn keyword cmakeVariable contained \ 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_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 @@ -1138,6 +1378,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1158,6 +1399,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1170,12 +1412,15 @@ syn keyword cmakeVariable contained \ 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 @@ -1190,6 +1435,8 @@ syn keyword cmakeVariable contained \ 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 @@ -1208,6 +1455,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1216,15 +1464,22 @@ syn keyword cmakeVariable contained \ 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 @@ -1232,14 +1487,17 @@ syn keyword cmakeVariable contained \ 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 @@ -1257,6 +1515,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1280,6 +1539,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1288,6 +1548,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1301,12 +1562,15 @@ syn keyword cmakeVariable contained \ 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 @@ -1321,6 +1585,8 @@ syn keyword cmakeVariable contained \ 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 @@ -1339,6 +1605,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1347,19 +1614,25 @@ syn keyword cmakeVariable contained \ 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 @@ -1388,6 +1661,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1402,12 +1676,15 @@ syn keyword cmakeVariable contained \ 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 @@ -1422,6 +1699,8 @@ syn keyword cmakeVariable contained \ 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 @@ -1441,6 +1720,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1449,6 +1729,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1457,16 +1738,25 @@ syn keyword cmakeVariable contained \ 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 @@ -1476,13 +1766,19 @@ syn keyword cmakeVariable contained \ 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 @@ -1490,6 +1786,8 @@ syn keyword cmakeVariable contained \ 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 @@ -1505,11 +1803,17 @@ syn keyword cmakeVariable contained \ 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 @@ -1523,8 +1827,13 @@ syn keyword cmakeVariable contained \ 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 @@ -1535,8 +1844,10 @@ syn keyword cmakeVariable contained \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP \ 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 @@ -1570,6 +1881,7 @@ syn keyword cmakeVariable contained \ 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 @@ -1602,8 +1914,10 @@ syn keyword cmakeVariable contained \ 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 @@ -1896,9 +2210,10 @@ syn keyword cmakeVariable contained \ DOXYGEN_XML_PROGRAMLISTING \ ENV \ EXECUTABLE_OUTPUT_PATH - \ GHS-MULTI + \ GHSMULTI \ IOS \ LIBRARY_OUTPUT_PATH + \ LINUX \ MINGW \ MSVC \ MSVC10 @@ -1917,6 +2232,7 @@ syn keyword cmakeVariable contained \ PROJECT_BINARY_DIR \ PROJECT_DESCRIPTION \ PROJECT_HOMEPAGE_URL + \ PROJECT_IS_TOP_LEVEL \ PROJECT_NAME \ PROJECT_SOURCE_DIR \ PROJECT_VERSION @@ -1934,6 +2250,7 @@ syn keyword cmakeVariable contained syn keyword cmakeModule contained \ ExternalProject + \ FetchContent syn keyword cmakeKWExternalProject contained \ AWS @@ -1947,10 +2264,10 @@ syn keyword cmakeKWExternalProject contained \ CMAKE_CACHE_ARGS \ CMAKE_CACHE_DEFAULT_ARGS \ CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY - \ CMAKE_TLS_CAINFO - \ CMAKE_TLS_VERIFY + \ CMAKE_INSTALL_MODE \ COMMENT \ CONFIGURE_COMMAND + \ CONFIGURE_HANDLED_BY_BUILD \ CVS \ CVSROOT \ CVS_MODULE @@ -1962,6 +2279,7 @@ syn keyword cmakeKWExternalProject contained \ DOWNLOADED_FILE \ DOWNLOAD_COMMAND \ DOWNLOAD_DIR + \ DOWNLOAD_EXTRACT_TIMESTAMP \ DOWNLOAD_NAME \ DOWNLOAD_NO_EXTRACT \ DOWNLOAD_NO_PROGRESS @@ -1991,6 +2309,7 @@ syn keyword cmakeKWExternalProject contained \ IGNORED \ INACTIVITY_TIMEOUT \ INDEPENDENT_STEP_TARGETS + \ INSTALL_BYPRODUCTS \ INSTALL_COMMAND \ INSTALL_DIR \ JOB_POOLS @@ -2046,30 +2365,98 @@ syn keyword cmakeKWExternalProject contained \ 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 - \ WX + \ _FLAGS + \ _FLAGS_ syn keyword cmakeKWadd_custom_command contained \ APPEND \ ARGS + \ BNF \ BYPRODUCTS \ CC \ COMMAND \ COMMAND_EXPAND_LISTS \ COMMENT + \ CONFIG \ CROSSCOMPILING_EMULATOR \ DEPENDS + \ DEPENDS_EXPLICIT_ONLY \ DEPFILE \ GENERATED \ IMPLICIT_DEPENDS @@ -2078,6 +2465,7 @@ syn keyword cmakeKWadd_custom_command contained \ JOB_POOLS \ JOIN \ MAIN_DEPENDENCY + \ MODULE \ NOT \ OUTPUT \ PATH @@ -2153,17 +2541,21 @@ syn keyword cmakeKWadd_library contained \ 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 @@ -2173,22 +2565,25 @@ syn keyword cmakeKWadd_library contained \ POST_BUILD \ PRE_BUILD \ PRE_LINK - \ PRIVATE - \ PUBLIC + \ 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 - \ GNU \ HOST_LINK \ LANG \ LINKER @@ -2196,11 +2591,14 @@ syn keyword cmakeKWadd_link_options contained \ 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 @@ -2214,15 +2612,64 @@ syn keyword cmakeKWadd_test contained \ 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 + \ PARALLEL_LEVEL \ TARGET +syn keyword cmakeKWcmake_file_api contained + \ API + \ API_VERSION + \ BUILD_DIR + \ CMAKEFILES + \ CODEMODEL + \ COMMAND + \ CONFIG + \ QUERY + \ TOOLCHAINS + syn keyword cmakeKWcmake_host_system_information contained + \ 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 @@ -2231,38 +2678,100 @@ syn keyword cmakeKWcmake_host_system_information contained \ 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_MAKEAVAILABLE_SERIAL + \ FETCHCONTENT_SOURCE_DIR_ + \ FETCHCONTENT_TRY_FIND_PACKAGE_MODE + \ FIND_PACKAGE + \ FIND_PACKAGE_ARGS \ GET_CALL_IDS - \ ID + \ GET_MESSAGE_LOG_LEVEL + \ GIT_REPOSITORY + \ GIT_SUBMODULES + \ GIT_TAG \ ID_VAR - \ OR + \ 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 @@ -2297,22 +2806,21 @@ syn keyword cmakeKWcmake_path contained \ ABSOLUTE_PATH \ AND \ APPEND + \ APPEND_STRING \ BASE_DIRECTORY - \ CMAKE_PATH \ COMPARE - \ CONCAT \ CONVERT - \ ELSEIF - \ ENDIF + \ EQUAL \ EXTENSION \ EXTENSION_DEF \ FALSE + \ FILENAME \ FILENAME_DEF \ GET \ GET_EXTENSION \ GET_FILENAME \ GET_PARENT_PATH - \ GET_RELATIVE_PATH + \ GET_RELATIVE_PART \ GET_ROOT_DIRECTORY \ GET_ROOT_NAME \ GET_ROOT_PATH @@ -2321,12 +2829,11 @@ syn keyword cmakeKWcmake_path contained \ HAS_EXTENSION \ HAS_FILENAME \ HAS_PARENT_PATH - \ HAS_RELATIVE_PATH + \ HAS_RELATIVE_PART \ HAS_ROOT_DIRECTORY \ HAS_ROOT_NAME \ HAS_ROOT_PATH \ HAS_STEM - \ IF \ IS_ABSOLUTE \ IS_PREFIX \ IS_RELATIVE @@ -2335,23 +2842,21 @@ syn keyword cmakeKWcmake_path contained \ NATIVE_PATH \ NORMALIZE \ NORMAL_PATH - \ NOT \ NOT_EQUAL \ OP - \ OS \ OUTPUT_VARIABLE \ PARENT_PATH - \ PROXIMATE_PATH \ REAL_PATH + \ RELATIVE_PART \ RELATIVE_PATH \ REMOVE_EXTENSION \ REMOVE_FILENAME \ REPLACE_EXTENSION \ REPLACE_FILENAME - \ RETURN \ ROOT_DIRECTORY \ ROOT_NAME \ ROOT_PATH + \ SET \ STEM \ STREQUAL \ TO_CMAKE_PATH_LIST @@ -2366,8 +2871,10 @@ syn keyword cmakeKWcmake_policy contained \ NNNN \ NO_POLICY_SCOPE \ OLD + \ POLICIES \ POP \ PUSH + \ SCOPE_FOR \ SET \ VERSION @@ -2379,9 +2886,14 @@ syn keyword cmakeKWconfigure_file contained \ FILE_PERMISSIONS \ FOO_ENABLE \ FOO_STRING + \ GENERATE + \ INTERFACE \ LF \ NEWLINE_STYLE \ NO_SOURCE_PERMISSIONS + \ PRIVATE + \ PUBLIC + \ SYSTEM \ USE_SOURCE_PERMISSIONS \ VAR @@ -2396,6 +2908,7 @@ syn keyword cmakeKWctest_build contained \ APPEND \ BUILD \ CAPTURE_CMAKE_ERROR + \ CMAKE_BUILD_PARALLEL_LEVEL \ CONFIGURATION \ CTEST_BUILD_CONFIGURATION \ CTEST_BUILD_FLAGS @@ -2403,6 +2916,7 @@ syn keyword cmakeKWctest_build contained \ FLAGS \ NUMBER_ERRORS \ NUMBER_WARNINGS + \ PARALLEL_LEVEL \ QUIET \ RETURN_VALUE \ TARGET @@ -2427,6 +2941,7 @@ syn keyword cmakeKWctest_coverage contained syn keyword cmakeKWctest_memcheck contained \ APPEND \ BUILD + \ CAPTURE_CMAKE_ERROR \ DEFECT_COUNT \ EXCLUDE \ EXCLUDE_FIXTURE @@ -2437,11 +2952,15 @@ syn keyword cmakeKWctest_memcheck contained \ 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 @@ -2477,6 +2996,8 @@ syn keyword cmakeKWctest_submit contained syn keyword cmakeKWctest_test contained \ AFTER_TIMEOUT \ APPEND + \ ATTACHED_FILES + \ ATTACHED_FILES_ON_FAIL \ BUILD \ CAPTURE_CMAKE_ERROR \ CPU @@ -2487,8 +3008,10 @@ syn keyword cmakeKWctest_test contained \ EXCLUDE_LABEL \ INCLUDE \ INCLUDE_LABEL + \ LABELS \ OFF \ ON + \ OUTPUT_JUNIT \ PARALLEL_LEVEL \ QUIET \ REPEAT @@ -2502,6 +3025,8 @@ syn keyword cmakeKWctest_test contained \ TEST_LOAD \ UNTIL_FAIL \ UNTIL_PASS + \ URL + \ XML syn keyword cmakeKWctest_update contained \ CAPTURE_CMAKE_ERROR @@ -2519,15 +3044,18 @@ syn keyword cmakeKWdefine_property contained \ 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 @@ -2537,7 +3065,12 @@ syn keyword cmakeKWdoxygen_add_docs contained syn keyword cmakeKWenable_language contained \ ASM + \ ASM_MARMASM + \ ASM_MASM + \ ASM_NASM + \ ATT \ CUDA + \ HIP \ ISPC \ OBJC \ OBJCXX @@ -2573,6 +3106,7 @@ syn keyword cmakeKWexecute_process contained \ OUTPUT_QUIET \ OUTPUT_STRIP_TRAILING_WHITESPACE \ OUTPUT_VARIABLE + \ POSIX \ RESULTS_VARIABLE \ RESULT_VARIABLE \ RFC @@ -2580,17 +3114,17 @@ syn keyword cmakeKWexecute_process contained \ STDOUT \ TIMEOUT \ UTF - \ VERBATIM \ WORKING_DIRECTORY syn keyword cmakeKWexport contained \ ANDROID_MK \ APPEND + \ CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API \ CONFIG + \ CXX_MODULES_DIRECTORY \ EXPORT \ EXPORT_LINK_INTERFACE_LIBRARIES \ FILE - \ IMPORTED \ IMPORTED_ \ NAMESPACE \ NDK @@ -2606,7 +3140,6 @@ syn keyword cmakeKWexport_library_dependencies contained \ SET syn keyword cmakeKWfile contained - \ ALGO \ APPEND \ ARCHIVE_CREATE \ ARCHIVE_EXTRACT @@ -2618,9 +3151,8 @@ syn keyword cmakeKWfile contained \ CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND \ CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM \ CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL + \ CMAKE_INSTALL_MODE \ CMAKE_OBJDUMP - \ CMAKE_TLS_CAINFO - \ CMAKE_TLS_VERIFY \ CODE \ COMPILE_FEATURES \ COMPRESSION @@ -2631,7 +3163,8 @@ syn keyword cmakeKWfile contained \ CONFLICTING_DEPENDENCIES_PREFIX \ CONTENT \ CONVERT - \ COPY + \ COPYONLY + \ COPY_FILE \ COPY_ON_ERROR \ CREATE_LINK \ CRLF @@ -2644,6 +3177,7 @@ syn keyword cmakeKWfile contained \ ENCODING \ ESCAPE_QUOTES \ EXECUTABLES + \ EXPAND_TILDE \ EXPECTED_HASH \ FILES_MATCHING \ FILE_PERMISSIONS @@ -2661,10 +3195,12 @@ syn keyword cmakeKWfile contained \ GUARD \ HASH \ HEX + \ HOME \ HTTPHEADER \ IGNORED \ INACTIVITY_TIMEOUT \ INPUT + \ INPUT_MAY_BE_RECENT \ INSTALL \ IS_ABSOLUTE \ LENGTH_MAXIMUM @@ -2689,9 +3225,11 @@ syn keyword cmakeKWfile contained \ NEWLINE_STYLE \ NOT \ NO_HEX_CONVERSION + \ NO_REPLACE \ NO_SOURCE_PERMISSIONS \ OFFSET \ ONLY + \ ONLY_IF_DIFFERENT \ OPTIONAL \ OUTPUT \ OWNER_EXECUTE @@ -2701,11 +3239,15 @@ syn keyword cmakeKWfile contained \ 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 @@ -2721,7 +3263,10 @@ syn keyword cmakeKWfile contained \ RESULT_VARIABLE \ RPATH \ RUNPATH + \ RUNTIME_DEPENDENCY_SET \ SCRIPT + \ SETGID + \ SETUID \ SHARED \ SHOW_PROGRESS \ SIZE @@ -2744,6 +3289,7 @@ syn keyword cmakeKWfile contained \ UNRESOLVED_DEPENDENCIES_VAR \ UPLOAD \ URL + \ USERPROFILE \ USERPWD \ USE_SOURCE_PERMISSIONS \ UTC @@ -2757,53 +3303,86 @@ syn keyword cmakeKWfile contained \ _FILENAMES syn keyword cmakeKWfind_file contained + \ 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 + \ BOTH + \ CATEGORY \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ \ DOC \ DVAR \ FALSE + \ FIND_XXX_REGISTRY_VIEW \ HINTS - \ INCLUDE + \ 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 \ ABI + \ BOTH \ BUNDLE + \ BYPASS_PROVIDER + \ CATEGORY \ CMAKE_DISABLE_FIND_PACKAGE_ \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ CMAKE_REQUIRE_FIND_PACKAGE_ \ COMPONENTS \ CONFIG \ CONFIGS @@ -2814,7 +3393,9 @@ syn keyword cmakeKWfind_package contained \ FALSE \ FIND_PACKAGE_VERSION_FORMAT \ FRAMEWORK + \ GLOBAL \ HINTS + \ HOST \ INCLUDE \ MODULE \ NAMES @@ -2822,6 +3403,7 @@ syn keyword cmakeKWfind_package contained \ 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 @@ -2831,8 +3413,10 @@ syn keyword cmakeKWfind_package contained \ 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 @@ -2861,60 +3445,92 @@ syn keyword cmakeKWfind_package contained \ 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 + \ 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 + \ 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 @@ -2957,17 +3573,19 @@ syn keyword cmakeKWget_filename_component contained \ NAME \ NAME_WE \ NAME_WLE - \ PATH \ PROGRAM \ PROGRAM_ARGS + \ QUERY \ REALPATH \ REAL_PATH + \ WINDOWS_REGISTRY syn keyword cmakeKWget_property contained \ BRIEF_DOCS \ DEFINED \ DIRECTORY \ FULL_DOCS + \ GENERATED \ GLOBAL \ INSTALL \ PROPERTY @@ -2980,6 +3598,7 @@ syn keyword cmakeKWget_property contained syn keyword cmakeKWget_source_file_property contained \ DIRECTORY + \ GENERATED \ INHERITED \ LOCATION \ TARGET_DIRECTORY @@ -2996,6 +3615,7 @@ syn keyword cmakeKWif contained \ CMAKE_MATCH_ \ CMP \ COMMAND + \ COMPARE \ DEFINED \ EQUAL \ EXISTS @@ -3015,6 +3635,7 @@ syn keyword cmakeKWif contained \ NOT \ OFF \ OR + \ PATH_EQUAL \ POLICY \ STREQUAL \ STRGREATER @@ -3059,11 +3680,14 @@ syn keyword cmakeKWinclude_guard contained syn keyword cmakeKWinstall contained \ AFTER \ AIX + \ ALL_COMPONENTS \ APT \ ARCHIVE \ BEFORE \ BUILD_TYPE \ BUNDLE + \ BUNDLE_EXECUTABLE + \ CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API \ CMAKE_INSTALL_BINDIR \ CMAKE_INSTALL_DATADIR \ CMAKE_INSTALL_DATAROOTDIR @@ -3074,6 +3698,7 @@ syn keyword cmakeKWinstall contained \ CMAKE_INSTALL_LOCALEDIR \ CMAKE_INSTALL_LOCALSTATEDIR \ CMAKE_INSTALL_MANDIR + \ CMAKE_INSTALL_MODE \ CMAKE_INSTALL_RUNSTATEDIR \ CMAKE_INSTALL_SBINDIR \ CMAKE_INSTALL_SHARESTATEDIR @@ -3082,6 +3707,8 @@ syn keyword cmakeKWinstall contained \ COMPONENT \ CONFIGURATIONS \ CVS + \ CXX_MODULES_BMI + \ CXX_MODULES_DIRECTORY \ DATA \ DATAROOT \ DBUILD_TYPE @@ -3094,6 +3721,7 @@ syn keyword cmakeKWinstall contained \ DOC \ ENABLE_EXPORTS \ EXCLUDE_FROM_ALL + \ EXECUTABLES \ EXPORT \ EXPORT_ANDROID_MK \ EXPORT_LINK_INTERFACE_LIBRARIES @@ -3101,14 +3729,18 @@ syn keyword cmakeKWinstall contained \ FILES \ FILES_MATCHING \ FILE_PERMISSIONS + \ FILE_SET \ FRAMEWORK + \ GET_RUNTIME_DEPENDENCIES \ GROUP_EXECUTE \ GROUP_READ \ GROUP_WRITE - \ IMPORTED_ + \ HEADERS + \ IMPORTED_RUNTIME_ARTIFACTS \ INCLUDES \ INFO \ INSTALL_PREFIX + \ INTERFACE \ INTERFACE_INCLUDE_DIRECTORIES \ LIBRARY \ LOCALE @@ -3128,18 +3760,24 @@ syn keyword cmakeKWinstall contained \ 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 - \ REGEX \ RENAME \ RESOURCE \ RPM \ RUNSTATE - \ RUNTIME + \ RUNTIME_DEPENDENCIES + \ RUNTIME_DEPENDENCY_SET \ SBIN \ SCRIPT \ SETGID @@ -3220,6 +3858,11 @@ syn keyword cmakeKWlist contained \ TOLOWER \ TOUPPER \ TRANSFORM + \ TRANSFORM_APPEND + \ TRANSFORM_GENEX_STRIP + \ TRANSFORM_REPLACE + \ TRANSFORM_STRIP + \ TRANSFORM_TOLOWER syn keyword cmakeKWload_cache contained \ EXCLUDE @@ -3257,10 +3900,15 @@ syn keyword cmakeKWmessage contained \ 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 @@ -3271,13 +3919,17 @@ syn keyword cmakeKWmessage contained syn keyword cmakeKWoption contained \ OFF - \ ON syn keyword cmakeKWproject contained \ ASM + \ ASM_MARMASM + \ ASM_MASM + \ ASM_NASM + \ ATT \ CMAKE_PROJECT_ \ CUDA \ DESCRIPTION + \ HIP \ HOMEPAGE_URL \ ISPC \ LANGUAGES @@ -3291,6 +3943,7 @@ syn keyword cmakeKWproject contained \ _DESCRIPTION \ _HOMEPAGE_URL \ _INCLUDE_BEFORE + \ _IS_TOP_LEVEL \ _SOURCE_DIR \ _VERSION \ _VERSION_MAJOR @@ -3310,6 +3963,11 @@ syn keyword cmakeKWremove contained syn keyword cmakeKWreturn contained \ DEFER + \ PARENT_SCOPE + \ PROPAGATE + \ SCOPE_FOR + \ VARIABLES + \ VERSION syn keyword cmakeKWseparate_arguments contained \ MSDN @@ -3325,10 +3983,13 @@ syn keyword cmakeKWset contained \ FORCE \ INTERNAL \ OFF + \ OLD \ ON \ PARENT_SCOPE + \ PROPAGATE \ STRING \ STRINGS + \ VAR syn keyword cmakeKWset_directory_properties contained \ DIRECTORY @@ -3338,9 +3999,11 @@ syn keyword cmakeKWset_property contained \ APPEND \ APPEND_STRING \ DIRECTORY + \ GENERATED \ GLOBAL \ INHERITED \ INSTALL + \ NAME \ PROPERTY \ SOURCE \ TARGET @@ -3350,17 +4013,17 @@ syn keyword cmakeKWset_property contained syn keyword cmakeKWset_source_files_properties contained \ DIRECTORY + \ GENERATED \ PROPERTIES \ SOURCE \ TARGET_DIRECTORY syn keyword cmakeKWset_target_properties contained \ PROPERTIES - \ TARGET syn keyword cmakeKWset_tests_properties contained + \ NAME \ PROPERTIES - \ TEST syn keyword cmakeKWsite_name contained \ HOSTNAME @@ -3392,9 +4055,9 @@ syn keyword cmakeKWstring contained \ GUID \ HASH \ HEX + \ ISO \ JOIN \ JSON - \ JSONLENGTH \ LENGTH \ LESS \ LESS_EQUAL @@ -3459,7 +4122,10 @@ syn keyword cmakeKWtarget_compile_features contained syn keyword cmakeKWtarget_compile_options contained \ ALIAS \ BEFORE + \ CMAKE_ + \ COMPILE_LANGUAGE \ COMPILE_OPTIONS + \ CONFIG \ IMPORTED \ INTERFACE \ INTERFACE_COMPILE_OPTIONS @@ -3467,8 +4133,11 @@ syn keyword cmakeKWtarget_compile_options contained \ PUBLIC \ SHELL \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ syn keyword cmakeKWtarget_include_directories contained + \ AFTER \ ALIAS \ BEFORE \ BUILD_INTERFACE @@ -3505,6 +4174,7 @@ syn keyword cmakeKWtarget_link_libraries contained \ IMPORTED_NO_SONAME \ INTERFACE \ INTERFACE_LINK_LIBRARIES + \ LINK_FLAGS \ LINK_INTERFACE_LIBRARIES \ LINK_INTERFACE_LIBRARIES_DEBUG \ LINK_INTERFACE_MULTIPLICITY @@ -3517,16 +4187,17 @@ syn keyword cmakeKWtarget_link_libraries contained \ 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 - \ GNU \ HOST_LINK \ IMPORTED \ INTERFACE @@ -3539,6 +4210,8 @@ syn keyword cmakeKWtarget_link_options contained \ SHELL \ STATIC_LIBRARY_OPTIONS \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ \ _LINKER_WRAPPER_FLAG \ _LINKER_WRAPPER_FLAG_SEP @@ -3563,15 +4236,46 @@ syn keyword cmakeKWtarget_precompile_headers contained syn keyword cmakeKWtarget_sources contained \ ALIAS + \ BASE_DIRS + \ BUILD_INTERFACE + \ CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API + \ 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 + \ BINARY_DIR \ CMAKE_FLAGS \ COMPILE_DEFINITIONS \ COPY_FILE @@ -3596,8 +4300,11 @@ syn keyword cmakeKWtry_compile contained \ LINK_DIRECTORIES \ LINK_LIBRARIES \ LINK_OPTIONS + \ LOG_DESCRIPTION \ MULTI \ NOT + \ NO_CACHE + \ NO_LOG \ OBJCXX_EXTENSIONS \ OBJCXX_STANDARD \ OBJCXX_STANDARD_REQUIRED @@ -3606,9 +4313,16 @@ syn keyword cmakeKWtry_compile contained \ 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 @@ -3621,18 +4335,28 @@ syn keyword cmakeKWtry_run contained \ CMAKE_FLAGS \ COMPILE_DEFINITIONS \ COMPILE_OUTPUT_VARIABLE - \ DLINK_LIBRARIES - \ DVAR + \ COPY_FILE + \ COPY_FILE_ERROR \ FAILED_TO_RUN \ FALSE - \ INCLUDE_DIRECTORIES - \ LINK_DIRECTORIES + \ 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 - \ TYPE - \ VALUE + \ WORKING_DIRECTORY + \ _EXTENSIONS + \ _STANDARD + \ _STANDARD_REQUIRED \ __TRYRUN_OUTPUT syn keyword cmakeKWunset contained @@ -3666,26 +4390,38 @@ syn keyword cmakeKWwrite_file contained syn keyword cmakeGeneratorExpressions contained - \ AND + \ ABSOLUTE_PATH + \ ACTION + \ AIX \ ANGLE + \ APPEND \ ARCHIVE_OUTPUT_NAME \ ARCHIVE_OUTPUT_NAME_ + \ ASCENDING \ BAR \ BOOL \ BUILD_INTERFACE - \ CMAKE_ - \ COMMA - \ COMMAND + \ 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 @@ -3700,70 +4436,148 @@ syn keyword cmakeGeneratorExpressions contained \ 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 - \ GNU + \ 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 \ HOST_LINK \ IF \ IGNORE + \ IMPORTED_LOCATION \ IMPORT_PREFIX \ IMPORT_SUFFIX \ INCLUDE_DIRECTORIES + \ INSENSITIVE + \ INSERT \ INSTALL_INTERFACE \ INSTALL_NAME_DIR \ INSTALL_PREFIX - \ INTERFACE + \ 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 @@ -3772,12 +4586,30 @@ syn keyword cmakeGeneratorExpressions contained \ 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 @@ -3786,16 +4618,34 @@ syn keyword cmakeGeneratorExpressions contained \ 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 \ VERSION_GREATER_EQUAL \ VERSION_LESS \ VERSION_LESS_EQUAL + \ WHOLE_ARCHIVE + \ WRONG + \ _LINK_GROUP_USING_ + \ _LINK_LIBRARY_USING_ \ _POSTFIX + \ _SUPPORTED syn case ignore @@ -3812,8 +4662,10 @@ syn keyword cmakeCommand \ add_subdirectory \ add_test \ aux_source_directory + \ block \ break \ build_command + \ cmake_file_api \ cmake_host_system_information \ cmake_language \ cmake_minimum_required @@ -3839,6 +4691,7 @@ syn keyword cmakeCommand \ define_property \ enable_language \ enable_testing + \ endblock \ endfunction \ endmacro \ execute_process @@ -3962,6 +4815,7 @@ 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 @@ -3973,7 +4827,9 @@ 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 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 diff --git a/syntax/common.vim b/syntax/common.vim index 62f7a374c..95b55d72c 100644 --- a/syntax/common.vim +++ b/syntax/common.vim @@ -3,11 +3,8 @@ if polyglot#init#is_disabled(expand(':p'), 'typescript', 'syntax/common.v endif " Define the default highlighting. -" For version 5.8 and later: only when an item doesn't have highlighting yet -let did_typescript_hilink = 1 syntax sync fromstart -command -nargs=+ HiLink hi def link "Dollar sign is permitted anywhere in an identifier setlocal iskeyword-=$ @@ -25,15 +22,15 @@ syntax match typescriptLabel /[a-zA-Z_$]\k*:/he=e-1 contains=ty syntax region typescriptBlock matchgroup=typescriptBraces start=/{/ end=/}/ contains=@typescriptStatement,@typescriptComments fold -runtime syntax/basic/identifiers.vim -runtime syntax/basic/literal.vim -runtime syntax/basic/object.vim +runtime syntax/ts-common/identifiers.vim +runtime syntax/ts-common/literal.vim +runtime syntax/ts-common/object.vim -runtime syntax/basic/symbols.vim -" runtime syntax/basic/reserved.vim -runtime syntax/basic/keyword.vim -runtime syntax/basic/doc.vim -runtime syntax/basic/type.vim +runtime syntax/ts-common/symbols.vim +" runtime syntax/ts-common/reserved.vim +runtime syntax/ts-common/keyword.vim +runtime syntax/ts-common/doc.vim +runtime syntax/ts-common/type.vim " extension if get(g:, 'yats_host_keyword', 1) @@ -41,136 +38,133 @@ if get(g:, 'yats_host_keyword', 1) endif " patch -runtime syntax/basic/patch.vim -runtime syntax/basic/members.vim -runtime syntax/basic/class.vim -runtime syntax/basic/cluster.vim -runtime syntax/basic/function.vim -runtime syntax/basic/decorator.vim - -if exists("did_typescript_hilink") - HiLink typescriptReserved Error - - HiLink typescriptEndColons Exception - HiLink typescriptSymbols Normal - HiLink typescriptBraces Function - HiLink typescriptParens Normal - HiLink typescriptComment Comment - HiLink typescriptLineComment Comment - HiLink typescriptDocComment Comment - HiLink typescriptCommentTodo Todo - HiLink typescriptMagicComment SpecialComment - HiLink typescriptRef Include - HiLink typescriptDocNotation SpecialComment - HiLink typescriptDocTags SpecialComment - HiLink typescriptDocNGParam typescriptDocParam - HiLink typescriptDocParam Function - HiLink typescriptDocNumParam Function - HiLink typescriptDocEventRef Function - HiLink typescriptDocNamedParamType Type - HiLink typescriptDocParamName Type - HiLink typescriptDocParamType Type - HiLink typescriptString String - HiLink typescriptSpecial Special - HiLink typescriptStringLiteralType String - HiLink typescriptTemplateLiteralType String - HiLink typescriptStringMember String - HiLink typescriptTemplate String - HiLink typescriptEventString String - HiLink typescriptDestructureString String - HiLink typescriptASCII Special - HiLink typescriptTemplateSB Label - HiLink typescriptRegexpString String - HiLink typescriptGlobal Constant - HiLink typescriptTestGlobal Function - HiLink typescriptPrototype Type - HiLink typescriptConditional Conditional - HiLink typescriptConditionalElse Conditional - HiLink typescriptCase Conditional - HiLink typescriptDefault typescriptCase - HiLink typescriptBranch Conditional - HiLink typescriptIdentifier Structure - HiLink typescriptVariable Identifier - HiLink typescriptDestructureVariable PreProc - HiLink typescriptEnumKeyword Identifier - HiLink typescriptRepeat Repeat - HiLink typescriptForOperator Repeat - HiLink typescriptStatementKeyword Statement - HiLink typescriptMessage Keyword - HiLink typescriptOperator Identifier - HiLink typescriptKeywordOp Identifier - HiLink typescriptCastKeyword Special - HiLink typescriptType Type - HiLink typescriptNull Boolean - HiLink typescriptNumber Number - HiLink typescriptBoolean Boolean - HiLink typescriptObjectLabel typescriptLabel - HiLink typescriptDestructureLabel Function - HiLink typescriptLabel Label - HiLink typescriptTupleLable Label - HiLink typescriptStringProperty String - HiLink typescriptImport Special - HiLink typescriptImportType Special - HiLink typescriptAmbientDeclaration Special - HiLink typescriptExport Special - HiLink typescriptExportType Special - HiLink typescriptModule Special - HiLink typescriptTry Special - HiLink typescriptExceptions Special - - HiLink typescriptMember Function - HiLink typescriptMethodAccessor Operator - - HiLink typescriptAsyncFuncKeyword Keyword - HiLink typescriptObjectAsyncKeyword Keyword - HiLink typescriptAsyncFor Keyword - HiLink typescriptFuncKeyword Keyword - HiLink typescriptAsyncFunc Keyword - HiLink typescriptArrowFunc Type - HiLink typescriptFuncName Function - HiLink typescriptFuncArg PreProc - HiLink typescriptArrowFuncArg PreProc - HiLink typescriptFuncComma Operator - - HiLink typescriptClassKeyword Keyword - HiLink typescriptClassExtends Keyword - " HiLink typescriptClassName Function - HiLink typescriptAbstract Special - " HiLink typescriptClassHeritage Function - " HiLink typescriptInterfaceHeritage Function - HiLink typescriptClassStatic StorageClass - HiLink typescriptReadonlyModifier Keyword - HiLink typescriptInterfaceKeyword Keyword - HiLink typescriptInterfaceExtends Keyword - HiLink typescriptInterfaceName Function - - HiLink shellbang Comment - - HiLink typescriptTypeParameter Identifier - HiLink typescriptConstraint Keyword - HiLink typescriptPredefinedType Type - HiLink typescriptReadonlyArrayKeyword Keyword - HiLink typescriptUnion Operator - HiLink typescriptFuncTypeArrow Function - HiLink typescriptConstructorType Function - HiLink typescriptTypeQuery Keyword - HiLink typescriptAccessibilityModifier Keyword - HiLink typescriptOptionalMark PreProc - HiLink typescriptFuncType Special - HiLink typescriptMappedIn Special - HiLink typescriptCall PreProc - HiLink typescriptParamImpl PreProc - HiLink typescriptConstructSignature Identifier - HiLink typescriptAliasDeclaration Identifier - HiLink typescriptAliasKeyword Keyword - HiLink typescriptUserDefinedType Keyword - HiLink typescriptTypeReference Identifier - HiLink typescriptConstructor Keyword - HiLink typescriptDecorator Special - HiLink typescriptAssertType Keyword - - highlight link typeScript NONE - - delcommand HiLink - unlet did_typescript_hilink -endif +runtime syntax/ts-common/patch.vim +runtime syntax/ts-common/members.vim +runtime syntax/ts-common/class.vim +runtime syntax/ts-common/cluster.vim +runtime syntax/ts-common/function.vim +runtime syntax/ts-common/decorator.vim + +hi def link typescriptReserved Error + +hi def link typescriptEndColons Exception +hi def link typescriptSymbols Normal +hi def link typescriptBraces Function +hi def link typescriptParens Normal +hi def link typescriptComment Comment +hi def link typescriptLineComment Comment +hi def link typescriptDocComment Comment +hi def link typescriptCommentTodo Todo +hi def link typescriptMagicComment SpecialComment +hi def link typescriptRef Include +hi def link typescriptDocNotation SpecialComment +hi def link typescriptDocTags SpecialComment +hi def link typescriptDocNGParam typescriptDocParam +hi def link typescriptDocParam Function +hi def link typescriptDocNumParam Function +hi def link typescriptDocEventRef Function +hi def link typescriptDocNamedParamType Type +hi def link typescriptDocParamName Type +hi def link typescriptDocParamType Type +hi def link typescriptString String +hi def link typescriptSpecial Special +hi def link typescriptStringLiteralType String +hi def link typescriptTemplateLiteralType String +hi def link typescriptStringMember String +hi def link typescriptTemplate String +hi def link typescriptEventString String +hi def link typescriptDestructureString String +hi def link typescriptASCII Special +hi def link typescriptTemplateSB Label +hi def link typescriptRegexpString String +hi def link typescriptGlobal Constant +hi def link typescriptTestGlobal Function +hi def link typescriptPrototype Type +hi def link typescriptConditional Conditional +hi def link typescriptConditionalElse Conditional +hi def link typescriptCase Conditional +hi def link typescriptDefault typescriptCase +hi def link typescriptBranch Conditional +hi def link typescriptIdentifier Structure +hi def link typescriptVariable Identifier +hi def link typescriptUsing Identifier +hi def link typescriptDestructureVariable PreProc +hi def link typescriptEnumKeyword Identifier +hi def link typescriptRepeat Repeat +hi def link typescriptForOperator Repeat +hi def link typescriptStatementKeyword Statement +hi def link typescriptMessage Keyword +hi def link typescriptOperator Identifier +hi def link typescriptKeywordOp Identifier +hi def link typescriptCastKeyword Special +hi def link typescriptType Type +hi def link typescriptNull Boolean +hi def link typescriptNumber Number +hi def link typescriptBoolean Boolean +hi def link typescriptObjectLabel typescriptLabel +hi def link typescriptDestructureLabel Function +hi def link typescriptLabel Label +hi def link typescriptTupleLable Label +hi def link typescriptStringProperty String +hi def link typescriptImport Special +hi def link typescriptImportType Special +hi def link typescriptAmbientDeclaration Special +hi def link typescriptExport Special +hi def link typescriptExportType Special +hi def link typescriptModule Special +hi def link typescriptTry Special +hi def link typescriptExceptions Special + +hi def link typescriptMember Function +hi def link typescriptMethodAccessor Operator + +hi def link typescriptAsyncFuncKeyword Keyword +hi def link typescriptObjectAsyncKeyword Keyword +hi def link typescriptAsyncFor Keyword +hi def link typescriptFuncKeyword Keyword +hi def link typescriptAsyncFunc Keyword +hi def link typescriptArrowFunc Type +hi def link typescriptFuncName Function +hi def link typescriptFuncCallArg PreProc +hi def link typescriptArrowFuncArg PreProc +hi def link typescriptFuncComma Operator + +hi def link typescriptClassKeyword Keyword +hi def link typescriptClassExtends Keyword +" hi def link typescriptClassName Function +hi def link typescriptAbstract Special +" hi def link typescriptClassHeritage Function +" hi def link typescriptInterfaceHeritage Function +hi def link typescriptClassStatic StorageClass +hi def link typescriptReadonlyModifier Keyword +hi def link typescriptInterfaceKeyword Keyword +hi def link typescriptInterfaceExtends Keyword +hi def link typescriptInterfaceName Function + +hi def link shellbang Comment + +hi def link typescriptTypeParameter Identifier +hi def link typescriptConstraint Keyword +hi def link typescriptPredefinedType Type +hi def link typescriptReadonlyArrayKeyword Keyword +hi def link typescriptUnion Operator +hi def link typescriptFuncTypeArrow Function +hi def link typescriptConstructorType Function +hi def link typescriptTypeQuery Keyword +hi def link typescriptAccessibilityModifier Keyword +hi def link typescriptAutoAccessor Keyword +hi def link typescriptOptionalMark PreProc +hi def link typescriptFuncType Special +hi def link typescriptMappedIn Special +hi def link typescriptCall PreProc +hi def link typescriptParamImpl PreProc +hi def link typescriptConstructSignature Identifier +hi def link typescriptAliasDeclaration Identifier +hi def link typescriptAliasKeyword Keyword +hi def link typescriptUserDefinedType Keyword +hi def link typescriptTypeReference Identifier +hi def link typescriptConstructor Keyword +hi def link typescriptDecorator Special +hi def link typescriptAssertType Keyword + +hi def link typeScript NONE diff --git a/syntax/crystal.vim b/syntax/crystal.vim index ebac0b235..290a6b793 100644 --- a/syntax/crystal.vim +++ b/syntax/crystal.vim @@ -84,7 +84,7 @@ endif " Operators if exists('g:crystal_operators') syn match crystalOperator "[~!^&|*/%+-]\|<=>\|<=\|\%(<\|\<\%(class\|struct\)\s\+\u\w*\s*\)\@>\|>=\|=\@1\|\*\*\|\.\.\.\|\.\.\|::" - syn match crystalOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!=\|//" + syn match crystalOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|\^=\|<<=\|>>=\|&+=\|&-=\|&\*=\|!\~\|!=\|//" syn region crystalBracketOperator matchgroup=crystalOperator start="\%(\w[?!]\=\|[]})]\)\@2<=\[" end="]" contains=TOP endif diff --git a/syntax/cucumber.vim b/syntax/cucumber.vim index 20edd2d99..5db4127e2 100644 --- a/syntax/cucumber.vim +++ b/syntax/cucumber.vim @@ -18,60 +18,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\+') @@ -87,16 +111,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 @@ -104,12 +130,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' @@ -127,6 +154,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/syntax/dart.vim b/syntax/dart.vim index b91d7a688..45f117cad 100644 --- a/syntax/dart.vim +++ b/syntax/dart.vim @@ -23,7 +23,7 @@ syntax sync fromstart syntax case match " keyword definitions -syntax keyword dartConditional if else switch +syntax keyword dartConditional if else switch when syntax keyword dartRepeat do while for syntax keyword dartBoolean true false syntax keyword dartConstant null @@ -32,7 +32,8 @@ syntax keyword dartOperator new is as in syntax match dartOperator "+=\=\|-=\=\|*=\=\|/=\=\|%=\=\|\~/=\=\|<<=\=\|>>=\=\|[<>]=\=\|===\=\|\!==\=\|&=\=\|\^=\=\||=\=\|||\|&&\|\[\]=\=\|=>\|!\|\~\|?\|:" syntax keyword dartCoreType void var dynamic syntax keyword dartStatement return -syntax keyword dartStorageClass static abstract final const factory late +syntax keyword dartStorageClass static abstract final const factory late base + \ interface sealed macro syntax keyword dartExceptions throw rethrow try on catch finally syntax keyword dartAssert assert syntax keyword dartClassDecl extends with implements diff --git a/syntax/dune.vim b/syntax/dune.vim index c42ce81ea..e78aa5f44 100644 --- a/syntax/dune.vim +++ b/syntax/dune.vim @@ -8,6 +8,7 @@ endif " Anton Kochkov " URL: https://github.com/ocaml/vim-ocaml " Last Change: +" 2023 Nov 24 - Add end-of-line strings (Samuel Hym) " 2019 Feb 27 - Add newer keywords to the syntax (Simon Cruanes) " 2018 May 8 - Check current_syntax (Kawahara Satoru) " 2018 Mar 29 - Extend jbuild syntax with more keywords (Petter A. Urkedal) @@ -42,6 +43,8 @@ syn keyword lispFunc ignore-stdout ignore-stderr ignore-outputs syn keyword lispFunc with-stdout-to with-stderr-to with-outputs-to syn keyword lispFunc write-file system bash +syn region lispString start=+"\\[>|]+ end=+$+ contains=@Spell + syn cluster lispBaseListCluster add=duneVar syn match duneVar '\${[@<^]}' containedin=lispSymbol syn match duneVar '\${\k\+\(:\k\+\)\?}' containedin=lispSymbol diff --git a/syntax/elixir.vim b/syntax/elixir.vim index 6570ff5e1..c9057f8c2 100644 --- a/syntax/elixir.vim +++ b/syntax/elixir.vim @@ -92,15 +92,15 @@ syn match elixirString "\(\w\)\@\| syn region elixirBlock matchgroup=elixirBlockDefinition start="\:\@!" end="\" contains=ALLBUT,@elixirNotTop fold syn region elixirAnonymousFunction matchgroup=elixirBlockDefinition start="\" end="\" contains=ALLBUT,@elixirNotTop fold -syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirAtom,elixirPseudoVariable,elixirAlias,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirAtomInterpolated,elixirRegex,elixirString,elixirStringDelimiter,elixirRegexDelimiter,elixirInterpolationDelimiter,elixirSigil,elixirAnonymousFunction,elixirComment,elixirCharList,elixirCharListDelimiter +syn region elixirArguments start="(" end=")" contained contains=elixirOperator,elixirAtom,elixirMap,elixirStruct,elixirTuple,elixirPseudoVariable,elixirAlias,elixirBoolean,elixirVariable,elixirUnusedVariable,elixirNumber,elixirDocString,elixirAtomInterpolated,elixirRegex,elixirString,elixirStringDelimiter,elixirRegexDelimiter,elixirInterpolationDelimiter,elixirSigil,elixirAnonymousFunction,elixirComment,elixirCharList,elixirCharListDelimiter syn match elixirDelimEscape "\\[(<{\[)>}\]/\"'|]" transparent display contained contains=NONE -syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u\z(/\|\"\|'\||\)" end="\z1" skip="\\\\\|\\\z1" contains=elixirDelimEscape fold -syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u{" end="}" skip="\\\\\|\\}" contains=elixirDelimEscape fold -syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u<" end=">" skip="\\\\\|\\>" contains=elixirDelimEscape fold -syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u\[" end="\]" skip="\\\\\|\\\]" contains=elixirDelimEscape fold -syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u(" end=")" skip="\\\\\|\\)" contains=elixirDelimEscape fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u\+\z(/\|\"\|'\||\)" end="\z1" skip="\\\\\|\\\z1" contains=elixirDelimEscape fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u\+{" end="}" skip="\\\\\|\\}" contains=elixirDelimEscape fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u\+<" end=">" skip="\\\\\|\\>" contains=elixirDelimEscape fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u\+\[" end="\]" skip="\\\\\|\\\]" contains=elixirDelimEscape fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\u\+(" end=")" skip="\\\\\|\\)" contains=elixirDelimEscape fold syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\l\z(/\|\"\|'\||\)" end="\z1" skip="\\\\\|\\\z1" fold syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\l{" end="}" skip="\\\\\|\\}" contains=@elixirStringContained,elixirRegexEscapePunctuation fold @@ -110,19 +110,47 @@ syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\l(" syn region elixirSigil matchgroup=elixirSigilDelimiter start="\~\l\/" end="\/" skip="\\\\\|\\\/" contains=@elixirStringContained,elixirRegexEscapePunctuation fold " Sigils surrounded with heredoc -syn region elixirSigil matchgroup=elixirSigilDelimiter start=+\~\a\z("""\)+ end=+^\s*\z1+ skip=+\\"+ fold -syn region elixirSigil matchgroup=elixirSigilDelimiter start=+\~\a\z('''\)+ end=+^\s*\z1+ skip=+\\'+ fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start=+\~\u\+\z("""\)+ end=+^\s*\z1+ skip=+\\"+ fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start=+\~\u\z('''\)+ end=+^\s*\z1+ skip=+\\'+ fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start=+\~\l\z("""\)+ end=+^\s*\z1+ skip=+\\"+ fold +syn region elixirSigil matchgroup=elixirSigilDelimiter start=+\~\l\z('''\)+ end=+^\s*\z1+ skip=+\\'+ fold - -" LiveView Sigils surrounded with ~L""" +" LiveView-specific sigils for embedded templates syntax include @HTML syntax/html.vim unlet b:current_syntax -syntax region elixirLiveViewSigil matchgroup=elixirSigilDelimiter keepend start=+\~L\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold -syntax region elixirSurfaceSigil matchgroup=elixirSigilDelimiter keepend start=+\~H\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold +syntax region elixirHeexSigil matchgroup=elixirSigilDelimiter keepend start=+\~H\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold syntax region elixirSurfaceSigil matchgroup=elixirSigilDelimiter keepend start=+\~F\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold +syntax region elixirLiveViewSigil matchgroup=elixirSigilDelimiter keepend start=+\~L\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold syntax region elixirPhoenixESigil matchgroup=elixirSigilDelimiter keepend start=+\~E\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold syntax region elixirPhoenixeSigil matchgroup=elixirSigilDelimiter keepend start=+\~e\z("""\)+ end=+^\s*\z1+ skip=+\\"+ contains=@HTML fold +syn cluster elixirTemplateSigils contains=elixirLiveViewSigil,elixirHeexSigil,elixirSurfaceSigil,elixirPhoenixESigil,elixirPhoenixeSigil + +syn region heexComponent matchgroup=eelixirDelimiter start="<\.[a-z_]\+" end="%\@" contains=ALLBUT,@elixirNotTop keepend +syn region eelixirExpression matchgroup=eelixirDelimiter start="<%" end="%\@" contains=ALLBUT,@elixirNotTop containedin=@elixirTemplateSigils keepend +syn region eelixirExpression matchgroup=eelixirDelimiter start="<%=" end="%\@" contains=ALLBUT,@elixirNotTop containedin=@elixirTemplateSigils keepend +syn region eelixirQuote matchgroup=eelixirDelimiter start="<%%" end="%\@" contains=ALLBUT,@elixirNotTop containedin=@elixirTemplateSigils keepend +syn region heexComment matchgroup=eelixirDelimiter start="<%!--" end="%\@