0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

Updated runtime files and translations.

This commit is contained in:
Bram Moolenaar 2013-06-01 14:50:56 +02:00
parent 3737fc1c30
commit 543b7ef700
64 changed files with 5463 additions and 953 deletions

View File

@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin. " Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com> " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2012 Jun 30 " Last Change: 2013 May 31
" "
" Additional contributors: " Additional contributors:
" "
@ -401,13 +401,13 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, '</head>') call add(html, '</head>')
let body_line_num = len(html) let body_line_num = len(html)
if !empty(s:settings.prevent_copy) if !empty(s:settings.prevent_copy)
call add(html, "<body onload='FixCharWidth();'>") call add(html, "<body onload='FixCharWidth(); JumpToLine();'>")
call add(html, "<!-- hidden divs used by javascript to get the width of a char -->") call add(html, "<!-- hidden divs used by javascript to get the width of a char -->")
call add(html, "<div id='oneCharWidth'>0</div>") call add(html, "<div id='oneCharWidth'>0</div>")
call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>") call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>")
call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>") call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>")
else else
call add(html, '<body>') call add(html, '<body onload="JumpToLine();">')
endif endif
call add(html, "<table border='1' width='100%' id='vimCodeElement'>") call add(html, "<table border='1' width='100%' id='vimCodeElement'>")
@ -503,6 +503,11 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
call add(html, s:body_end_line) call add(html, s:body_end_line)
call add(html, '</html>') call add(html, '</html>')
" The generated HTML is admittedly ugly and takes a LONG time to fold.
" Make sure the user doesn't do syntax folding when loading a generated file,
" using a modeline.
call add(html, '<!-- vim: set foldmethod=manual : -->')
let i = 1 let i = 1
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html") let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
" Find an unused file name if current file name is already in use " Find an unused file name if current file name is already in use
@ -539,14 +544,12 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
" add required javascript in reverse order so we can just call append again " add required javascript in reverse order so we can just call append again
" and again without adjusting {{{ " and again without adjusting {{{
" insert script closing tag if any javascript is needed " insert script closing tag
if s:settings.dynamic_folds || !empty(s:settings.prevent_copy)
call append(style_start, [ call append(style_start, [
\ '', \ '',
\ s:settings.use_xhtml ? '//]]>' : '-->', \ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>" \ "</script>"
\ ]) \ ])
endif
" insert script which corrects the size of small input elements in " insert script which corrects the size of small input elements in
" prevent_copy mode. See 2html.vim for details on why this is needed and how " prevent_copy mode. See 2html.vim for details on why this is needed and how
@ -572,6 +575,55 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ '}' \ '}'
\ ]) \ ])
endif endif
"
" insert javascript to get IDs from line numbers, and to open a fold before
" jumping to any lines contained therein
call append(style_start, [
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ " * we corrected the raw number to a line ID.",
\ " */",
\ " if (lineElem) {",
\ " lineElem.scrollIntoView(true);",
\ " }",
\ " return true;",
\ "}",
\ "if ('onhashchange' in window) {",
\ " window.onhashchange = JumpToLine;",
\ "}"
\ ])
if s:settings.dynamic_folds
call append(style_start, [
\ "",
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
\ " var node = lineElem;",
\ " while (node && node.id != 'vimCodeElement')",
\ " {",
\ " if (node.className == 'closed-fold')",
\ " {",
\ " /* toggle open the fold ID (remove window ID) */",
\ " toggleFold(node.id.substr(4));",
\ " }",
\ " node = node.parentNode;",
\ " }",
\ ])
endif
call append(style_start, [
\ "",
\ "/* function to open any folds containing a jumped-to line before jumping to it */",
\ "function JumpToLine()",
\ "{",
\ " var lineNum;",
\ " lineNum = window.location.hash;",
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
\ "",
\ " if (lineNum.indexOf('L') == -1) {",
\ " lineNum = 'L'+lineNum;",
\ " }",
\ " if (lineNum.indexOf('W') == -1) {",
\ " lineNum = 'W1'+lineNum;",
\ " }",
\ " lineElem = document.getElementById(lineNum);"
\ ])
" Insert javascript to toggle matching folds open and closed in all windows, " Insert javascript to toggle matching folds open and closed in all windows,
" if dynamic folding is active. " if dynamic folding is active.
@ -596,12 +648,11 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
\ ]) \ ])
endif endif
" insert script tag if any javascript is needed " insert script tag; javascript is always needed for the line number
if s:settings.dynamic_folds || s:settings.prevent_copy != "" " normalization for URL hashes
call append(style_start, [ call append(style_start, [
\ "<script type='text/javascript'>", \ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"]) \ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
endif "}}}
" Insert styles from all the generated html documents and additional styles " Insert styles from all the generated html documents and additional styles
" for the table-based layout of the side-by-side diff. The diff should take " for the table-based layout of the side-by-side diff. The diff should take

View File

@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4 " vim: tw=0 ts=4 sw=4
" Vim color file " Vim color file
" Maintainer: Ron Aaron <ron@ronware.org> " Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2006 Dec 10 " Last Change: 2013 May 23
hi clear hi clear
set background=dark set background=dark
@ -43,6 +43,8 @@ hi MatchParen term=reverse ctermfg=blue guibg=Blue
hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
hi link IncSearch Visual hi link IncSearch Visual
hi link String Constant hi link String Constant
hi link Character Constant hi link Character Constant

View File

@ -2,7 +2,7 @@
" vim: tw=0 ts=4 sw=4 " vim: tw=0 ts=4 sw=4
" Vim color file " Vim color file
" Maintainer: Ron Aaron <ron@ronware.org> " Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2003 May 02 " Last Change: 2013 May 24
set background=dark set background=dark
hi clear hi clear
@ -11,7 +11,7 @@ if exists("syntax_on")
endif endif
let g:colors_name = "ron" let g:colors_name = "ron"
hi Normal guifg=cyan guibg=black hi Normal guifg=cyan guibg=black
hi NonText guifg=brown hi NonText guifg=yellow guibg=#303030
hi comment guifg=green hi comment guifg=green
hi constant guifg=cyan gui=bold hi constant guifg=cyan gui=bold
hi identifier guifg=cyan gui=NONE hi identifier guifg=cyan gui=NONE
@ -24,10 +24,11 @@ hi WarningMsg guifg=Black guibg=Green
hi Error guibg=Red hi Error guibg=Red
hi Todo guifg=Black guibg=orange hi Todo guifg=Black guibg=orange
hi Cursor guibg=#60a060 guifg=#00ff00 hi Cursor guibg=#60a060 guifg=#00ff00
hi Search guibg=lightslateblue hi Search guibg=darkgray guifg=black gui=bold
hi IncSearch gui=NONE guibg=steelblue hi IncSearch gui=NONE guibg=steelblue
hi LineNr guifg=darkgrey hi LineNr guifg=darkgrey
hi title guifg=darkgrey hi title guifg=darkgrey
hi ShowMarksHL ctermfg=cyan ctermbg=lightblue cterm=bold guifg=yellow guibg=black gui=bold
hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue
hi StatusLine gui=bold guifg=cyan guibg=blue hi StatusLine gui=bold guifg=cyan guibg=blue
hi label guifg=gold2 hi label guifg=gold2
@ -41,3 +42,4 @@ hi DiffDelete guibg=coral
hi Folded guibg=gray30 hi Folded guibg=gray30
hi FoldColumn guibg=gray30 guifg=white hi FoldColumn guibg=gray30 guifg=white
hi cIf0 guifg=gray hi cIf0 guifg=gray
hi diffOnly guifg=red gui=bold

23
runtime/compiler/haml.vim Normal file
View File

@ -0,0 +1,23 @@
if exists("current_compiler")
finish
endif
let current_compiler = "haml"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=haml\ -c
CompilerSet errorformat=
\Haml\ %trror\ on\ line\ %l:\ %m,
\Syntax\ %trror\ on\ line\ %l:\ %m,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

25
runtime/compiler/sass.vim Normal file
View File

@ -0,0 +1,25 @@
if exists("current_compiler")
finish
endif
let current_compiler = "sass"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=sass\ -c
CompilerSet errorformat=
\%f:%l:%m\ (Sass::Syntax%trror),
\%ESyntax\ %trror:%m,
\%C%\\s%\\+on\ line\ %l\ of\ %f,
\%Z%.%#,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2:

View File

@ -1,4 +1,4 @@
.TH EVIM 1 "16 février 2002 February 16" .TH EVIM 1 "16 février 2002"
.SH NAME .SH NAME
evim \- « Easy Vim », édite un fichier avec Vim sans utiliser les modes evim \- « Easy Vim », édite un fichier avec Vim sans utiliser les modes
.SH SYNOPSIS .SH SYNOPSIS
@ -54,4 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
.SH TRADUCTION .SH TRADUCTION
Cette page de manuel a été traduite David Blanchet. Cette page de manuel a été traduite David Blanchet.
<david.blanchet@free.fr> 2005-03-26. <david.blanchet@free.fr> 2005-03-26.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com> Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@ -1,4 +1,4 @@
.TH EVIM 1 "16 février 2002 February 16" .TH EVIM 1 "16 février 2002"
.SH NAME .SH NAME
evim \- « Easy Vim », édite un fichier avec Vim sans utiliser les modes evim \- « Easy Vim », édite un fichier avec Vim sans utiliser les modes
.SH SYNOPSIS .SH SYNOPSIS
@ -54,4 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
.SH TRADUCTION .SH TRADUCTION
Cette page de manuel a été traduite David Blanchet. Cette page de manuel a été traduite David Blanchet.
<david.blanchet@free.fr> 2005-03-26. <david.blanchet@free.fr> 2005-03-26.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com> Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.3. Last change: 2011 Jun 19 *filetype.txt* For Vim version 7.3. Last change: 2013 May 25
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -603,7 +603,7 @@ Since the text for this plugin is rather long it has been put in a separate
file: |ft_sql.txt|. file: |ft_sql.txt|.
TEX *ft-tex-plugin* TEX *ft-tex-plugin* *g:tex_flavor*
If the first line of a *.tex file has the form > If the first line of a *.tex file has the form >
%&<format> %&<format>

View File

@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.3. Last change: 2013 May 21 *if_pyth.txt* For Vim version 7.3. Last change: 2013 May 25
VIM REFERENCE MANUAL by Paul Moore VIM REFERENCE MANUAL by Paul Moore

View File

@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2013 May 17 *options.txt* For Vim version 7.3. Last change: 2013 May 23
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -5516,7 +5516,7 @@ A jump table for the options with a short description can be found at |Q_op|.
matches will be highlighted. This is used to avoid that Vim hangs matches will be highlighted. This is used to avoid that Vim hangs
when using a very complicated pattern. when using a very complicated pattern.
*'regexpengine''* *'re'* *'regexpengine'* *'re'*
'regexpengine' 're' number (default 0) 'regexpengine' 're' number (default 0)
global global
{not in Vi} {not in Vi}
@ -7521,7 +7521,7 @@ A jump table for the options with a short description can be found at |Q_op|.
given, no further entry is used. given, no further entry is used.
See |undo-persistence|. See |undo-persistence|.
*'undofile'* *'udf'* *'undofile'* *'noundofile'* *'udf'* *'noudf'*
'undofile' 'udf' boolean (default off) 'undofile' 'udf' boolean (default off)
local to buffer local to buffer
{not in Vi} {not in Vi}

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.3. Last change: 2013 May 17 *pattern.txt* For Vim version 7.3. Last change: 2013 May 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -698,6 +698,7 @@ overview.
For speed it's often much better to avoid this multi. Try using "\zs" For speed it's often much better to avoid this multi. Try using "\zs"
instead |/\zs|. To match the same as the above example: instead |/\zs|. To match the same as the above example:
an\_s\+\zsfile an\_s\+\zsfile
At least set a limit for the look-behind, see below.
"\@<=" and "\@<!" check for matches just before what follows. "\@<=" and "\@<!" check for matches just before what follows.
Theoretically these matches could start anywhere before this position. Theoretically these matches could start anywhere before this position.
@ -710,6 +711,18 @@ overview.
Example matches ~ Example matches ~
\1\@<=,\([a-z]\+\) ",abc" in "abc,abc" \1\@<=,\([a-z]\+\) ",abc" in "abc,abc"
\@123<=
Like "\@<=" but only look back 123 bytes. This avoids trying lots
of matches that are known to fail and make executing the pattern very
slow. Example, check if there is a "<" just before "span":
/<\@1<=span
This will try matching "<" only one byte before "span", which is the
only place that works anyway.
After crossing a line boundary, the limit is relative to the end of
the line. Thus the characters at the start of the line with the match
are not counted (this is just to keep it simple).
The number zero is the same as no limit.
*/\@<!* */\@<!*
\@<! Matches with zero width if the preceding atom does NOT match just \@<! Matches with zero width if the preceding atom does NOT match just
before what follows. Thus this matches if there is no position in the before what follows. Thus this matches if there is no position in the
@ -719,11 +732,16 @@ overview.
The match with the preceding atom is made to end just before the match The match with the preceding atom is made to end just before the match
with what follows, thus an atom that ends in ".*" will work. with what follows, thus an atom that ends in ".*" will work.
Warning: This can be slow (because many positions need to be checked Warning: This can be slow (because many positions need to be checked
for a match). for a match). Use a limit if you can, see below.
Example matches ~ Example matches ~
\(foo\)\@<!bar any "bar" that's not in "foobar" \(foo\)\@<!bar any "bar" that's not in "foobar"
\(\/\/.*\)\@<!in "in" which is not after "//" \(\/\/.*\)\@<!in "in" which is not after "//"
\@123<!
Like "\@<!" but only look back 123 bytes. This avoids trying lots of
matches that are known to fail and make executing the pattern very
slow.
*/\@>* */\@>*
\@> Matches the preceding atom like matching a whole pattern. {not in Vi} \@> Matches the preceding atom like matching a whole pattern. {not in Vi}
Like "(?>pattern)" in Perl. Like "(?>pattern)" in Perl.
@ -1193,6 +1211,8 @@ When "\Z" appears anywhere in the pattern, composing characters are ignored.
Thus only the base characters need to match, the composing characters may be Thus only the base characters need to match, the composing characters may be
different and the number of composing characters may differ. Only relevant different and the number of composing characters may differ. Only relevant
when 'encoding' is "utf-8". when 'encoding' is "utf-8".
Exception: If the pattern starts with one or more composing characters, these
must match.
When a composing character appears at the start of the pattern of after an When a composing character appears at the start of the pattern of after an
item that doesn't include the composing character, a match is found at any item that doesn't include the composing character, a match is found at any
@ -1202,8 +1222,20 @@ When using a dot and a composing character, this works the same as the
composing character by itself, except that it doesn't matter what comes before composing character by itself, except that it doesn't matter what comes before
this. this.
The order of composing characters matters, even though changing the order The order of composing characters does not matter. Also, the text may have
doesn't change what a character looks like. This may change in the future. more composing characters than the pattern, it still matches. But all
composing characters in the pattern must be found in the text.
Suppose B is a base character and x and y are composing characters:
pattern text match ~
Bxy Bxy yes (perfect match)
Bxy Byx yes (order ignored)
Bxy By no (x missing)
Bxy Bx no (y missing)
Bx Bx yes (perfect mach)
Bx By no (x missing)
Bx Bxy yes (extra y ignored)
Bx Byx yes (extra y ignored)
============================================================================== ==============================================================================
9. Compare with Perl patterns *perl-patterns* 9. Compare with Perl patterns *perl-patterns*

View File

@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.3. Last change: 2013 May 20 *starting.txt* For Vim version 7.3. Last change: 2013 May 29
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -439,7 +439,9 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
will wait for the edit session to finish (e.g., mail or will wait for the edit session to finish (e.g., mail or
readnews). See |amiga-window|. readnews). See |amiga-window|.
MS-Windows: This option is not always supported. MS-Windows: This option is not supported. However, when
running Vim with an installed vim.bat or gvim.bat file it
works.
{not in Vi} {not in Vi}

View File

@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2013 Apr 05 *syntax.txt* For Vim version 7.3. Last change: 2013 May 31
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -381,7 +381,11 @@ This is not a syntax file itself, but a script that converts the current
window into HTML. Vim opens a new window in which it builds the HTML file. window into HTML. Vim opens a new window in which it builds the HTML file.
After you save the resulting file, you can view it with any browser. The After you save the resulting file, you can view it with any browser. The
colors should be exactly the same as you see them in Vim. colors should be exactly the same as you see them in Vim. You can jump to
specific lines by adding (for example) #L123 or #123 to the end of the URL in
your browser's address bar (#123 only with javascript support). And with
|g:html_dynamic_folds| enabled, you can show or hide the text that is folded
in Vim.
You are not supposed to set the 'filetype' or 'syntax' option to "2html"! You are not supposed to set the 'filetype' or 'syntax' option to "2html"!
Source the script to convert the current file: > Source the script to convert the current file: >
@ -424,7 +428,11 @@ and last line to be converted. Example, using the last set Visual area: >
|g:html_diff_one_file| is set, :TOhtml will convert |g:html_diff_one_file| is set, :TOhtml will convert
all windows which are part of the diff in the current all windows which are part of the diff in the current
tab and place them side-by-side in a <table> element tab and place them side-by-side in a <table> element
in the generated HTML. in the generated HTML. When this happens you can jump
to lines in specific windows with (for example) #W1L42
for line 42 in the first diffed window, or #W3L87 for
line 87 in the third. Omitting the window ID will
default to the first window if javascript is enabled.
Examples: > Examples: >
@ -1240,7 +1248,7 @@ to your startup file.
ERLANG *erlang.vim* *ft-erlang-syntax* ERLANG *erlang.vim* *ft-erlang-syntax*
Erlang is a functional programming language developed by Ericsson. Files with Erlang is a functional programming language developed by Ericsson. Files with
the following extentions are recognized as Erlang files: erl, hrl, yaws. the following extensions are recognized as Erlang files: erl, hrl, yaws.
The BIFs (built-in functions) are highlighted by default. To disable this, The BIFs (built-in functions) are highlighted by default. To disable this,
put the following line in your vimrc: > put the following line in your vimrc: >
@ -2286,7 +2294,7 @@ For highlighting parent error ] or ): >
let php_parent_error_close = 1 let php_parent_error_close = 1
For skipping an php end tag, if there exists an open ( or [ without a closing For skipping a php end tag, if there exists an open ( or [ without a closing
one: > one: >
let php_parent_error_open = 1 let php_parent_error_open = 1

View File

@ -657,6 +657,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'nottybuiltin' options.txt /*'nottybuiltin'* 'nottybuiltin' options.txt /*'nottybuiltin'*
'nottyfast' options.txt /*'nottyfast'* 'nottyfast' options.txt /*'nottyfast'*
'notx' options.txt /*'notx'* 'notx' options.txt /*'notx'*
'noudf' options.txt /*'noudf'*
'noundofile' options.txt /*'noundofile'*
'novb' options.txt /*'novb'* 'novb' options.txt /*'novb'*
'novice' vi_diff.txt /*'novice'* 'novice' vi_diff.txt /*'novice'*
'novisualbell' options.txt /*'novisualbell'* 'novisualbell' options.txt /*'novisualbell'*
@ -740,7 +742,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'readonly' options.txt /*'readonly'* 'readonly' options.txt /*'readonly'*
'redraw' vi_diff.txt /*'redraw'* 'redraw' vi_diff.txt /*'redraw'*
'redrawtime' options.txt /*'redrawtime'* 'redrawtime' options.txt /*'redrawtime'*
'regexpengine'' options.txt /*'regexpengine''* 'regexpengine' options.txt /*'regexpengine'*
'relativenumber' options.txt /*'relativenumber'* 'relativenumber' options.txt /*'relativenumber'*
'remap' options.txt /*'remap'* 'remap' options.txt /*'remap'*
'report' options.txt /*'report'* 'report' options.txt /*'report'*
@ -5992,6 +5994,7 @@ g:tar_secure pi_tar.txt /*g:tar_secure*
g:tar_writeoptions pi_tar.txt /*g:tar_writeoptions* g:tar_writeoptions pi_tar.txt /*g:tar_writeoptions*
g:tex_conceal syntax.txt /*g:tex_conceal* g:tex_conceal syntax.txt /*g:tex_conceal*
g:tex_fast syntax.txt /*g:tex_fast* g:tex_fast syntax.txt /*g:tex_fast*
g:tex_flavor filetype.txt /*g:tex_flavor*
g:tex_isk syntax.txt /*g:tex_isk* g:tex_isk syntax.txt /*g:tex_isk*
g:var eval.txt /*g:var* g:var eval.txt /*g:var*
g:vimball_home pi_vimball.txt /*g:vimball_home* g:vimball_home pi_vimball.txt /*g:vimball_home*
@ -7342,7 +7345,12 @@ put-Visual-mode change.txt /*put-Visual-mode*
py3eval() eval.txt /*py3eval()* py3eval() eval.txt /*py3eval()*
pyeval() eval.txt /*pyeval()* pyeval() eval.txt /*pyeval()*
python if_pyth.txt /*python* python if_pyth.txt /*python*
python-.locked if_pyth.txt /*python-.locked*
python-Dictionary if_pyth.txt /*python-Dictionary*
python-Function if_pyth.txt /*python-Function*
python-List if_pyth.txt /*python-List*
python-bindeval if_pyth.txt /*python-bindeval* python-bindeval if_pyth.txt /*python-bindeval*
python-bindeval-objects if_pyth.txt /*python-bindeval-objects*
python-buffer if_pyth.txt /*python-buffer* python-buffer if_pyth.txt /*python-buffer*
python-buffers if_pyth.txt /*python-buffers* python-buffers if_pyth.txt /*python-buffers*
python-command if_pyth.txt /*python-command* python-command if_pyth.txt /*python-command*

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2013 May 21 *todo.txt* For Vim version 7.3. Last change: 2013 Jun 01
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@ -34,15 +34,14 @@ not be repeated below, unless there is extra information.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
Rename src/Makefile and create a new one like toplevel Makefile that creates
auto/config.mk when it's not there? (Ben Schmidt, 2011 Feb 11)
--- Python interface --- Python interface
Python: thread with refactoring patches. (ZyX, May 19, 16:46 and later) Patch from ZyX, May 30: Fix some possible memory problems
9
10 Check: docs for .valid patch by ZyX, May 30
11 Correction by Roland Eggner, May 31.
Tests are disabled because they fail.
Configure doesn't find Python 3 on Ubuntu 13.04. (Ken Takata, Apr 13) Configure doesn't find Python 3 on Ubuntu 13.04. (Ken Takata, Apr 13)
@ -50,9 +49,7 @@ Python SystemExit exception is not handled properly. Patch to catch the
exception and give an error. (Yasuhiro Matsumoto) exception and give an error. (Yasuhiro Matsumoto)
Does not work, tests fail. Does not work, tests fail.
Patch to print the result of a :python command. (Maxim Philippov Patch to complete after :py3. (Taro Muraoka, 2013 May 31)
<philippovmi@gmail.com>, 2012 Aug 16) Update Aug 17.
Patch no longer applies.
":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye) ":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye)
Patch to make os.chdir() handle side effects. (Xavier de Gaye, 2013 May 17) Patch to make os.chdir() handle side effects. (Xavier de Gaye, 2013 May 17)
@ -71,7 +68,8 @@ Win32: The Python interface only works with one version of Python, selected at
compile time. Can this be made to work with version 2.1 and 2.2 dynamically? compile time. Can this be made to work with version 2.1 and 2.2 dynamically?
Python: Be able to define a Python function that can be called directly from Python: Be able to define a Python function that can be called directly from
Vim script. Requires converting the arguments and return value. Vim script. Requires converting the arguments and return value, like with
vim.bindeval().
--- runtime files --- runtime files
@ -84,66 +82,60 @@ Claudio didn't respond yet.
--- Fast regexp engine --- Fast regexp engine
Duplicate condition in line 1094. (Ken Takata) Should be 'r'? Error in HTML highlighting. (Hiroshi Shirosaki)
Multi-byte problem? Marc Weber Tests for \{-} : Requires trying to start at every position?
echo matchlist('1', '\%#=1\o{\?Ä\Z') If so, rename nfa_has_backref to nfa_dup_states and re-use it for this.
echo matchlist('1', '\%#=2\o{\?Ä\Z')
Difference in matching this pattern: (Marc Weber) Allow "^*" as a literal "*".
echo matchlist("t", '\%#=1ú\Z')
echo matchlist("t", '\%#=2ú\Z')
Difference in matching this pattern: Need more testing for \1 back references.
echo matchlist('google', '\%#=1\<go*\|go')
echo matchlist('google', '\%#=2\<go*\|go')
Difference in matching this pattern: (Marc Weber) Profiling:
echo matchlist("\na", '\%#=1\_F') ./vim -s ~/vim/test/loop.vim
echo matchlist("\na", '\%#=0\_F') ./vim -s ~/vim/test/xml.vim (Fix: Uses the old engine, see
echo matchlist("\na", '\%#=2\_F') bt_regexp_debug.log)
Need \@<=
NFA engine could not handle "[<]\@<=[^ /!?<>"']\+"
NFA engine could not handle "<!--\_.\{-}-->"
Don't set curbuf, use reg_buf. setting cpo_lit and cpo_bsl can be slow. Make them global.
Estimation of number of items is wrong, can be much larger.
When running out of space, retry with more space?
nfa_regcomp() should not use nstate_max but the actual number of states for
allocating the prog?
Get example files for many languages. Compare syntax highlighting with old and Get example files for many languages. Compare syntax highlighting with old and
new regexp, find regexp constructs where NFA does not work correctly. new regexp, find regexp constructs where NFA does not work correctly.
source ~/vim/regexp/runold.vim to update the "old" files. source ~/vim/regexp/runold.vim to update the "old" files.
source ~/vim/regexp/runnew.vim to update the "new" files source ~/vim/regexp/runnew.vim to update the "new" files
source ~/vim/regexp/diff.vim to find differences source ~/vim/regexp/diff.vim to find differences
Diffs in these files:
- csh02: line 2, "13" is not highlighted after -misc-fixed-bold-r-normal- More test files from the src/pkg/regexp/testdata directory in the Go repo.
as cshNumber
- csh02: line 7, similar problem.
- tst28.tex line 8 \alpha in texStatement instead of texGreek
It's very slow compared to the old engine... It's very slow compared to the old engine...
Performance tests: Performance tests:
- ~/vim/text/FeiqCfg.xml (file from Netjune)
- ~/vim/text/edl.svg (also XML)
- glts has five tests. (May 25)
- ~/vim/test/veryslow.js display last line (file from Daniel Fetchinson) - ~/vim/test/veryslow.js display last line (file from Daniel Fetchinson)
- ~/vim/test/slowsearch - ~/vim/test/slowsearch
- ~/vim/test/rgb.vim - ~/vim/test/rgb.vim
- ~/vim/text/FeiqCfg.xml (file from Netjune)
- ~/vim/text/edl.svg (also XML)
- search for a.*e*exn in the vim executable. Go to last line to use - search for a.*e*exn in the vim executable. Go to last line to use
'hlsearch'. 'hlsearch'.
- Slow combination of folding and PHP syntax highlighting. Script to - Slow combination of folding and PHP syntax highlighting. Script to
reproduce it. Caused by "syntax sync fromstart" in combination with patch reproduce it. Caused by "syntax sync fromstart" in combination with patch
7.2.274. (Christian Brabandt, 2010 May 27) Generally, folding with 7.2.274. (Christian Brabandt, 2010 May 27) Generally, folding with
'foldmethod' set to "syntax" is slow. Do profiling to find out why. 'foldmethod' set to "syntax" is slow. Do profiling to find out why.
- Does not use any of the optimizations, such as required start pattern. - It does not use any of the optimizations, such as required start pattern.
- When lists are empty in nfa_regmatch() and match is true, it keeps looping - When lists are empty in nfa_regmatch() and match is true, it keeps looping
without doing anything. without doing anything.
"\ze" is currently disabled for NFA, can this be fixed? Does not work (yet) with NFA:
- \z() \z1 .. "\z9": Previously matched text in syn HL.
"\_[0-9]\?\>" does not match at end of line, disabled. - ~: previous substitute pattern. Requires recursive compilation?
- \%u, \%x, \%o, \%d followed by a composing character
Items with \%u, \%x, \%o, \%d do not work with the new engine. - \%V Visual
- \%[abc]
- \%' mark
- \@< match before zero-width
- \@> match whole pattern
--- bug fixes --- bug fixes
@ -153,6 +145,8 @@ Patch to avoid wrong error message for 1.0[0]. (Yasuhiro Matsumoto, 2013 May
Patch for if_lua. (Luis Carvalho, 2012 Aug 26, update Aug 29, another Aug 30, Patch for if_lua. (Luis Carvalho, 2012 Aug 26, update Aug 29, another Aug 30,
then Sep 1, reminder Oct 14) then Sep 1, reminder Oct 14)
Patch for if_perl. (Ike Devolder, May 27)
Patch to check if 'foldexpr' sets did_emsg. (Christian Brabandt, 2013 Mar 20) Patch to check if 'foldexpr' sets did_emsg. (Christian Brabandt, 2013 Mar 20)
Patch for 'backupcopy' default behavior for symlinks on Windows. (David Pope, Patch for 'backupcopy' default behavior for symlinks on Windows. (David Pope,
@ -193,6 +187,9 @@ Another patch for MingW, 2012 Dec 29.
Bug in completion menu. (Olivier Teuliere, 2013 Feb 15) Bug in completion menu. (Olivier Teuliere, 2013 Feb 15)
Patch by Christian Brabandt, Feb 16. Patch by Christian Brabandt, Feb 16.
Issue 134: pasting in visual selection in empty buffer.
Patch by Christian Brabandt, 2013 May 22.
'cursorline' is drawn incorrectly in diff mode. Patch by Christian Brabandt, 'cursorline' is drawn incorrectly in diff mode. Patch by Christian Brabandt,
2012 Apr 2. 2012 Apr 2.
@ -202,6 +199,9 @@ handle the out-of-memory and set them to sane values? (jimmywang, 2013 May 17)
InsertEnter doesn't prevent the cursor from moving when it goes to another InsertEnter doesn't prevent the cursor from moving when it goes to another
line. line.
":diffoff" does not restore options from before starting diff mode.
Patch by Christian Brabandt, 2013 May 26.
--- slightly incompatible changes --- slightly incompatible changes
Patch to load ~/.vim/vimrc when ~/.vimrc isn't found. (Lech Lorens, 2013 Apr Patch to load ~/.vim/vimrc when ~/.vimrc isn't found. (Lech Lorens, 2013 Apr
@ -216,6 +216,7 @@ the global mapping matches. It is probably better to let the local mapping
win and not wait. (discussion with Andy Wokula, 2013 Jan 30) win and not wait. (discussion with Andy Wokula, 2013 Jan 30)
Patch by Michael Henry, 2013 Jan 30, update Feb 15. Patch by Michael Henry, 2013 Jan 30, update Feb 15.
Patch to store absolute path for cscope. (Christian Brabandt, 2013 May 31)
---- Fixes to be included before 7.4 above, less important stuff below ---- ---- Fixes to be included before 7.4 above, less important stuff below ----
@ -248,6 +249,10 @@ Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5) Stocker, 2012 Jan 5)
Patch to support expression argument to sort() instead of a function name.
Yasuhiro Matsumoto, 2013 May 31.
Or should we add a more general mechanism, like lambda functions?
Problem caused by patch 7.3.638: window->open does not update window Problem caused by patch 7.3.638: window->open does not update window
correctly. Issue 91. correctly. Issue 91.
@ -262,15 +267,15 @@ Patch to invert characters differently in GTK. (Yukihiro Nakadaira, 2013 May
Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5) Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
May 17: with winlist() and tabpagelist(). May 17: with winlist() and tabpagelist().
May 19: with local variables. May 19: with local variables.
May 28: with options
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
functions. (Christian Brabandt, 2013 May 8, update May 21)
Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
28) With tests: Oct 9. 28) With tests: Oct 9.
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
functions. (Christian Brabandt, 2013 May 8, update May 21)
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14) Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
Second one. Second one. Update May 22.
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec) Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
@ -323,6 +328,10 @@ Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)
Patch to use directX to draw text on Windows. Adds the 'renderoptions' Patch to use directX to draw text on Windows. Adds the 'renderoptions'
option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3, May 14) option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3, May 14)
Patch to add 'completeselect' option. Specifies how to select a candidate in
insert completion. (Shougo, 2013 May 29)
Update to add to existing 'completeopt'. 2013 May 30
Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17) Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)
b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
@ -408,6 +417,7 @@ And one for gui_x11.txt.
Version for latest MacVim: Tobia Conforto, 2009 Nov 23 Version for latest MacVim: Tobia Conforto, 2009 Nov 23
More recent version: https://retracile.net/wiki/VimBreakIndent More recent version: https://retracile.net/wiki/VimBreakIndent
Posted to vim-dev by Taylor Hedberg, 2011 Nov 25 Posted to vim-dev by Taylor Hedberg, 2011 Nov 25
Update by Taylor Hedberg, 2013 May 30.
":cd" doesn't work when current directory path contains "**". ":cd" doesn't work when current directory path contains "**".
finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10) finddir() has the same problem. (Yukihiro Nakadaira, 2012 Jan 10)
@ -1174,6 +1184,14 @@ Oct 19) Check for "col" being "MAXCOL" separately?
Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23) Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23)
Works OK when 'cmdheight' is 2. Works OK when 'cmdheight' is 2.
8 Use a mechanism similar to omni completion to figure out the kind of tab
for CTRL-] and jump to the appropriate matching tag (if there are
several).
Alternative: be able to define a function that takes the tag name and uses
taglist() to find the right location. With indication of using CTRL-] so
that the context can be taken into account. (Robert Webb)
Patch by Christian Brabandt, 2013 May 31.
Test54 should not use shell commands. Make it portable. Test54 should not use shell commands. Make it portable.
The utf class table is missing some entries: The utf class table is missing some entries:
@ -3659,12 +3677,6 @@ Tags:
make the filename or the whole option use |wildcards| globing, better make the filename or the whole option use |wildcards| globing, better
would be to merge the 2 kinds of globing. originally (Erik Falor, 2008 would be to merge the 2 kinds of globing. originally (Erik Falor, 2008
April 18), updated (Ian Kelling, 2008 July 4) April 18), updated (Ian Kelling, 2008 July 4)
8 Use a mechanism similar to omni completion to figure out the kind of tab
for CTRL-] and jump to the appropriate matching tag (if there are
several).
Alternative: be able to define a function that takes the tag name and uses
taglist() to find the right location. With indication of using CTRL-] so
that the context can be taken into account. (Robert Webb)
7 Can CTRL-] (jump to tag) include a following "." and "->" to restrict the 7 Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
number of possible matches? Check tags file for an item that has members. number of possible matches? Check tags file for an item that has members.
(Flemming Madsen) (Flemming Madsen)

View File

@ -1,11 +1,11 @@
.\" Traduction Lundi 7 août 2000 par Richard Hitier .\" Traduction lundi 7 août 2000 par Richard Hitier
.\" (richard.hitier@dial.oleane.com) .\" (richard.hitier@dial.oleane.com)
.\" Mise à jour de la traduction par David Blanchet .\" Mise à jour de la traduction par David Blanchet
.\" (david.blanchet@free.fr) 2006-06-10 .\" (david.blanchet@free.fr) 2006-06-10
.\" Mise à jour de la traduction par Dominique Pellé .\" Mise à jour de la traduction par Dominique Pellé
.\" (dominique.pelle@gmail.com) 2008-11-29 .\" (dominique.pelle@gmail.com) 2013-05-10
.\" .\"
.TH VIM 1 "22 Février 2002" .TH VIM 1 "22 février 2002"
.SH NOM .SH NOM
vim \- Vi IMproved, éditeur de texte pour programmeurs vim \- Vi IMproved, éditeur de texte pour programmeurs
.SH SYNOPSIS .SH SYNOPSIS
@ -269,7 +269,7 @@ quitte.
Si Si
.B Vim .B Vim
a été compilé avec le support de la fonctionnalité RIGHTLEFT pour l'édition de a été compilé avec le support de la fonctionnalité RIGHTLEFT pour l'édition de
fichiers de droite à gauche et les claviers hébreu, cette option lance fichiers de droite à gauche et les claviers hébreux, cette option lance
.B Vim .B Vim
en mode Hébreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées. en mode Hébreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées.
Sinon, un message d'erreur est émis et Sinon, un message d'erreur est émis et
@ -435,7 +435,7 @@ Mode restreint. Fonctionne comme si l'ex
\-\- \-\-
Délimite la fin des options. Délimite la fin des options.
Les arguments qui suivent seront considérés comme des noms de fichiers. Les arguments qui suivent seront considérés comme des noms de fichiers.
Cela permet d'éditer des fichier débutant par un '\-'. Cela permet d'éditer des fichiers débutant par un '\-'.
.TP .TP
\-\-echo\-wid \-\-echo\-wid
IHM graphique GTK uniquement : retourne la Window ID sur stdout. IHM graphique GTK uniquement : retourne la Window ID sur stdout.
@ -586,4 +586,4 @@ Cette page de manuel a
.br .br
Cette page de manuel a été mise à jour par David Blanchet. Cette page de manuel a été mise à jour par David Blanchet.
<david.blanchet@free.fr> 2006-04-10. <david.blanchet@free.fr> 2006-04-10.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com> Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@ -1,11 +1,11 @@
.\" Traduction Lundi 7 août 2000 par Richard Hitier .\" Traduction lundi 7 août 2000 par Richard Hitier
.\" (richard.hitier@dial.oleane.com) .\" (richard.hitier@dial.oleane.com)
.\" Mise à jour de la traduction par David Blanchet .\" Mise à jour de la traduction par David Blanchet
.\" (david.blanchet@free.fr) 2006-06-10 .\" (david.blanchet@free.fr) 2006-06-10
.\" Mise à jour de la traduction par Dominique Pellé .\" Mise à jour de la traduction par Dominique Pellé
.\" (dominique.pelle@gmail.com) 2008-11-29 .\" (dominique.pelle@gmail.com) 2013-05-10
.\" .\"
.TH VIM 1 "22 Février 2002" .TH VIM 1 "22 février 2002"
.SH NOM .SH NOM
vim \- Vi IMproved, éditeur de texte pour programmeurs vim \- Vi IMproved, éditeur de texte pour programmeurs
.SH SYNOPSIS .SH SYNOPSIS
@ -269,7 +269,7 @@ quitte.
Si Si
.B Vim .B Vim
a été compilé avec le support de la fonctionnalité RIGHTLEFT pour l'édition de a été compilé avec le support de la fonctionnalité RIGHTLEFT pour l'édition de
fichiers de droite à gauche et les claviers hébreu, cette option lance fichiers de droite à gauche et les claviers hébreux, cette option lance
.B Vim .B Vim
en mode Hébreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées. en mode Hébreu, c.-à-d. avec les options 'hkmap' et 'rightleft' activées.
Sinon, un message d'erreur est émis et Sinon, un message d'erreur est émis et
@ -435,7 +435,7 @@ Mode restreint. Fonctionne comme si l'exécutable commençait par la lettre 'r'.
\-\- \-\-
Délimite la fin des options. Délimite la fin des options.
Les arguments qui suivent seront considérés comme des noms de fichiers. Les arguments qui suivent seront considérés comme des noms de fichiers.
Cela permet d'éditer des fichier débutant par un '\-'. Cela permet d'éditer des fichiers débutant par un '\-'.
.TP .TP
\-\-echo\-wid \-\-echo\-wid
IHM graphique GTK uniquement : retourne la Window ID sur stdout. IHM graphique GTK uniquement : retourne la Window ID sur stdout.
@ -586,4 +586,4 @@ Cette page de manuel a été traduite par Richard Hitier.
.br .br
Cette page de manuel a été mise à jour par David Blanchet. Cette page de manuel a été mise à jour par David Blanchet.
<david.blanchet@free.fr> 2006-04-10. <david.blanchet@free.fr> 2006-04-10.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com> Mise à jour par Dominique Pellé <dominique.pelle@gmail.com> 2013-05-10

View File

@ -159,7 +159,7 @@ fichier n'est pas adressable, seuls les vides sont autoris
comblés par des octets nuls. comblés par des octets nuls.
.PP .PP
.I xxd \-r .I xxd \-r
ne génère aucune erreur lors de l'analyse. Le problème sont passés ne génère aucune erreur lors de l'analyse. Les problèmes sont passés
silencieusement. silencieusement.
.PP .PP
Lors de l'édition de la représentation hexadécimale, veuillez noter que Lors de l'édition de la représentation hexadécimale, veuillez noter que
@ -307,7 +307,7 @@ Convertir le fichier de l'exemple pr
000fffc: 0000 0000 40 ....A 000fffc: 0000 0000 40 ....A
.PP .PP
Créer un fichier d'un octet, contenant seulement le caractère 'A'. Créer un fichier d'un octet, contenant seulement le caractère 'A'.
Les nombres après '\-r \-s' s'ajoutent au numéros de lignes trouvées dans le Le nombre après '\-r \-s' s'ajoute aux numéros de lignes trouvées dans le
fichier ; les octets initiaux sont supprimés. fichier ; les octets initiaux sont supprimés.
.br .br
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR \fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR
@ -393,4 +393,4 @@ Modifications mineures par Bram Moolenaar.
.SH TRADUCTION .SH TRADUCTION
Cette page de manuel a été traduite par David Blanchet Cette page de manuel a été traduite par David Blanchet
<david.blanchet@free.fr> 2004-12-24. <david.blanchet@free.fr> 2004-12-24.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com> Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@ -159,7 +159,7 @@ fichier n'est pas adressable, seuls les vides sont autorisés, et ils seront
comblés par des octets nuls. comblés par des octets nuls.
.PP .PP
.I xxd \-r .I xxd \-r
ne génère aucune erreur lors de l'analyse. Le problème sont passés ne génère aucune erreur lors de l'analyse. Les problèmes sont passés
silencieusement. silencieusement.
.PP .PP
Lors de l'édition de la représentation hexadécimale, veuillez noter que Lors de l'édition de la représentation hexadécimale, veuillez noter que
@ -307,7 +307,7 @@ Convertir le fichier de l'exemple précédent avec la fonctionnalité "autoskip"
000fffc: 0000 0000 40 ....A 000fffc: 0000 0000 40 ....A
.PP .PP
Créer un fichier d'un octet, contenant seulement le caractère 'A'. Créer un fichier d'un octet, contenant seulement le caractère 'A'.
Les nombres après '\-r \-s' s'ajoutent au numéros de lignes trouvées dans le Le nombre après '\-r \-s' s'ajoute aux numéros de lignes trouvées dans le
fichier ; les octets initiaux sont supprimés. fichier ; les octets initiaux sont supprimés.
.br .br
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR \fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> fichier\fR
@ -393,4 +393,4 @@ Modifications mineures par Bram Moolenaar.
.SH TRADUCTION .SH TRADUCTION
Cette page de manuel a été traduite par David Blanchet Cette page de manuel a été traduite par David Blanchet
<david.blanchet@free.fr> 2004-12-24. <david.blanchet@free.fr> 2004-12-24.
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com> Mise à jour 2013-05-10, Dominique Pellé <dominique.pelle@gmail.com>

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2013 May 15 " Last Change: 2013 Jun 01
" Listen very carefully, I will say this only once " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")
@ -757,6 +757,7 @@ au BufNewFile,BufRead *.git/MERGE_MSG setf gitcommit
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
au BufNewFile,BufRead *.git/modules/**/COMMIT_EDITMSG setf gitcommit au BufNewFile,BufRead *.git/modules/**/COMMIT_EDITMSG setf gitcommit
au BufNewFile,BufRead *.git/modules/**/config setf gitconfig au BufNewFile,BufRead *.git/modules/**/config setf gitconfig
au BufNewFile,BufRead */.config/git/config setf gitconfig
au BufNewFile,BufRead git-rebase-todo setf gitrebase au BufNewFile,BufRead git-rebase-todo setf gitrebase
au BufNewFile,BufRead .msg.[0-9]* au BufNewFile,BufRead .msg.[0-9]*
\ if getline(1) =~ '^From.*# This line is ignored.$' | \ if getline(1) =~ '^From.*# This line is ignored.$' |
@ -1101,7 +1102,7 @@ au BufNewFile,BufRead *.mv,*.mpl,*.mws setf maple
au BufNewFile,BufRead *.map setf map au BufNewFile,BufRead *.map setf map
" Markdown " Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,README.md setf markdown au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,README.md setf markdown
" Mason " Mason
au BufNewFile,BufRead *.mason,*.mhtml setf mason au BufNewFile,BufRead *.mason,*.mhtml setf mason

View File

@ -1,7 +1,7 @@
" Vim filetype plugin " Vim filetype plugin
" Language: Cucumber " Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 Aug 09 " Last Change: 2013 Jun 01
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if (exists("b:did_ftplugin")) if (exists("b:did_ftplugin"))
@ -9,6 +9,9 @@ if (exists("b:did_ftplugin"))
endif endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1
let s:keepcpo= &cpo
set cpo&vim
setlocal formatoptions-=t formatoptions+=croql setlocal formatoptions-=t formatoptions+=croql
setlocal comments=:# commentstring=#\ %s setlocal comments=:# commentstring=#\ %s
setlocal omnifunc=CucumberComplete setlocal omnifunc=CucumberComplete
@ -18,11 +21,27 @@ let b:undo_ftplugin = "setl fo< com< cms< ofu<"
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??') let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps") if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
nmap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR> nnoremap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
nmap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR> nnoremap <silent><buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
nmap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR> nnoremap <silent><buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
nmap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR> nnoremap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
let b:undo_ftplugin .= "| sil! iunmap! <C-]>| sil! iunmap! <C-W>]| sil! iunmap! <C-W><C-]>| sil! iunmap! <C-W>}" nnoremap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<CR>
nnoremap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
nnoremap <silent><buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
nnoremap <silent><buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
let b:undo_ftplugin .=
\ "|sil! nunmap <buffer> <C-]>" .
\ "|sil! nunmap <buffer> [<C-D>" .
\ "|sil! nunmap <buffer> ]<C-D>" .
\ "|sil! nunmap <buffer> <C-W>]" .
\ "|sil! nunmap <buffer> <C-W><C-]>" .
\ "|sil! nunmap <buffer> <C-W>d" .
\ "|sil! nunmap <buffer> <C-W><C-D>" .
\ "|sil! nunmap <buffer> <C-W>}" .
\ "|sil! nunmap <buffer> [d" .
\ "|sil! nunmap <buffer> ]d"
endif endif
function! s:jump(command,count) function! s:jump(command,count)
@ -38,7 +57,7 @@ function! s:jump(command,count)
endfunction endfunction
function! s:allsteps() function! s:allsteps()
let step_pattern = '\C^\s*\K\k*\>\s*\zs\S.\{-\}\ze\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)' let step_pattern = '\C^\s*\K\k*\>\s*(\=\s*\zs\S.\{-\}\ze\s*)\=\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
let steps = [] let steps = []
for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n") for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n")
let lines = readfile(file) let lines = readfile(file)
@ -55,7 +74,7 @@ function! s:allsteps()
endfunction endfunction
function! s:steps(lnum) function! s:steps(lnum)
let c = indent(a:lnum) + 1 let c = match(getline(a:lnum), '\S') + 1
while synIDattr(synID(a:lnum,c,1),'name') !~# '^$\|Region$' while synIDattr(synID(a:lnum,c,1),'name') !~# '^$\|Region$'
let c = c + 1 let c = c + 1
endwhile endwhile
@ -129,4 +148,7 @@ function! CucumberComplete(findstart,base) abort
return sort(steps) return sort(steps)
endfunction endfunction
let &cpo = s:keepcpo
unlet s:keepcpo
" vim:set sts=2 sw=2: " vim:set sts=2 sw=2:

View File

@ -1,6 +1,7 @@
" Vim filetype plugin " Vim filetype plugin
" Language: generic git output " Language: generic git output
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2013 May 30
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if (exists("b:did_ftplugin")) if (exists("b:did_ftplugin"))

View File

@ -1,7 +1,7 @@
" Vim filetype plugin " Vim filetype plugin
" Language: git commit file " Language: git commit file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2012 April 7 " Last Change: 2013 May 30
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if (exists("b:did_ftplugin")) if (exists("b:did_ftplugin"))
@ -11,9 +11,9 @@ endif
runtime! ftplugin/git.vim runtime! ftplugin/git.vim
let b:did_ftplugin = 1 let b:did_ftplugin = 1
setlocal nomodeline setlocal nomodeline tabstop=8 formatoptions-=croq formatoptions+=tl
let b:undo_ftplugin = 'setl modeline<' let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions<'
if &textwidth == 0 if &textwidth == 0
" make sure that log messages play nice with git-log on standard terminals " make sure that log messages play nice with git-log on standard terminals

View File

@ -0,0 +1,32 @@
" Language: gprof
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2012 May 20
" When cursor is on one line of the gprof call graph,
" calling this function jumps to this function in the call graph.
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin=1
fun! <SID>GprofJumpToFunctionIndex()
let l:line = getline('.')
if l:line =~ '[\d\+\]$'
" We're in a line in the call graph.
norm $y%
call search('^' . escape(@", '[]'), 'sw')
norm zz
elseif l:line =~ '^\(\s\+[0-9\.]\+\)\{3}\s\+'
" We're in line in the flat profile.
norm 55|y$
call search('^\[\d\+\].*\d\s\+' . escape(@", '[]*.'), 'sW')
norm zz
endif
endfun
" Pressing <C-]> on a line in the gprof flat profile or in
" the call graph, jumps to the corresponding function inside
" the flat profile.
map <silent> <C-]> :call <SID>GprofJumpToFunctionIndex()<CR>
" vim:sw=2 fdm=indent

View File

@ -1,7 +1,7 @@
" Vim filetype plugin " Vim filetype plugin
" Language: Haml " Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2012 Mar 11 " Last Change: 2013 Jun 01
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
@ -18,6 +18,7 @@ let s:match_words = ""
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
unlet! b:did_ftplugin unlet! b:did_ftplugin
set matchpairs-=<:>
" Override our defaults if these were set by an included ftplugin. " Override our defaults if these were set by an included ftplugin.
if exists("b:undo_ftplugin") if exists("b:undo_ftplugin")

View File

@ -1,17 +1,16 @@
" Vim filetype plugin " Vim filetype plugin
" Language: Markdown " Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2011 Dec 14 " Last Change: 2013 May 30
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
finish finish
endif endif
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
unlet! b:did_ftplugin
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
setlocal formatoptions+=tcqln setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+ setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
if exists('b:undo_ftplugin') if exists('b:undo_ftplugin')

View File

@ -1,8 +1,9 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Perl " Language: Perl
" Maintainer: Andy Lester <andy@petdance.com> " Maintainer: vim-perl <vim-perl@googlegroups.com>
" URL: http://github.com/petdance/vim-perl " Homepage: http://github.com/vim-perl/vim-perl
" Last Change: 2012 Mar 11 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-11
if exists("b:did_ftplugin") | finish | endif if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1 let b:did_ftplugin = 1
@ -12,7 +13,8 @@ let b:did_ftplugin = 1
let s:save_cpo = &cpo let s:save_cpo = &cpo
set cpo-=C set cpo-=C
setlocal formatoptions+=crq setlocal formatoptions-=t
setlocal formatoptions+=crqol
setlocal keywordprg=perldoc\ -f setlocal keywordprg=perldoc\ -f
setlocal comments=:# setlocal comments=:#
@ -29,7 +31,7 @@ endif
" Provided by Ned Konz <ned at bike-nomad dot com> " Provided by Ned Konz <ned at bike-nomad dot com>
"--------------------------------------------- "---------------------------------------------
setlocal include=\\<\\(use\\\|require\\)\\> setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.pm','') setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_] setlocal define=[^A-Za-z_]
" The following line changes a global variable but is necessary to make " The following line changes a global variable but is necessary to make
@ -38,7 +40,7 @@ setlocal define=[^A-Za-z_]
" problem for you, add an after/ftplugin/perl.vim file that contains " problem for you, add an after/ftplugin/perl.vim file that contains
" set isfname-=: " set isfname-=:
set isfname+=: set isfname+=:
"setlocal iskeyword=48-57,_,A-Z,a-z,: set iskeyword+=:
" Set this once, globally. " Set this once, globally.
if !exists("perlpath") if !exists("perlpath")
@ -60,13 +62,27 @@ if !exists("perlpath")
endif endif
endif endif
" Append perlpath to the existing path value, if it is set. Since we don't
" use += to do it because of the commas in perlpath, we have to handle the
" global / local settings, too.
if &l:path == ""
if &g:path == ""
let &l:path=perlpath let &l:path=perlpath
else
let &l:path=&g:path.",".perlpath
endif
else
let &l:path=&l:path.",".perlpath
endif
"--------------------------------------------- "---------------------------------------------
" Undo the stuff we changed. " Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" . let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
\ " | unlet! b:browsefilter" \ " | unlet! b:browsefilter"
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
" Restore the saved compatibility options. " Restore the saved compatibility options.
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo

View File

@ -1,8 +1,9 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: Perl 6 " Language: Perl 6
" Maintainer: Andy Lester <andy@petdance.com> " Maintainer: vim-perl <vim-perl@googlegroups.com>
" URL: http://github.com/petdance/vim-perl/tree/master " Homepage: http://github.com/vim-perl/vim-perl
" Last Change: 2012 Mar 11 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-11
" Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com> " Contributors: Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" "
" Based on ftplugin/perl.vim by Dan Sharp <dwsharp at hotmail dot com> " Based on ftplugin/perl.vim by Dan Sharp <dwsharp at hotmail dot com>
@ -15,7 +16,10 @@ let b:did_ftplugin = 1
let s:save_cpo = &cpo let s:save_cpo = &cpo
set cpo-=C set cpo-=C
setlocal formatoptions+=crq setlocal formatoptions-=t
setlocal formatoptions+=crqol
setlocal keywordprg=p6doc
setlocal comments=:# setlocal comments=:#
setlocal commentstring=#%s setlocal commentstring=#%s
@ -39,6 +43,30 @@ setlocal define=[^A-Za-z_]
" after/ftplugin/perl6.vim file that contains " after/ftplugin/perl6.vim file that contains
" set isfname-=: " set isfname-=:
set isfname+=: set isfname+=:
setlocal iskeyword=48-57,_,A-Z,a-z,:,-
" Set this once, globally.
if !exists("perlpath")
if executable("perl6")
try
if &shellxquote != '"'
let perlpath = system('perl6 -e "@*INC.join(q/,/).say"')
else
let perlpath = system("perl6 -e '@*INC.join(q/,/).say'")
endif
let perlpath = substitute(perlpath,',.$',',,','')
catch /E145:/
let perlpath = ".,,"
endtry
else
" If we can't call perl to get its path, just default to using the
" current directory and the directory of the current file.
let perlpath = ".,,"
endif
endif
let &l:path=perlpath
"---------------------------------------------
" Undo the stuff we changed. " Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk<" . let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk<" .

View File

@ -1,7 +1,8 @@
" Vim filetype plugin file " Vim filetype plugin file
" Language: XS (Perl extension interface language) " Language: XS (Perl extension interface language)
" Maintainer: Andy Lester <andy@petdance.com> " Maintainer: vim-perl <vim-perl@googlegroups.com>
" URL: http://github.com/petdance/vim-perl " Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2009-08-14 " Last Change: 2009-08-14
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer

View File

@ -1,7 +1,7 @@
" Vim indent file " Vim indent file
" Language: Cucumber " Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 May 21 " Last Change: 2013 May 30
if exists("b:did_indent") if exists("b:did_indent")
finish finish
@ -12,6 +12,8 @@ setlocal autoindent
setlocal indentexpr=GetCucumberIndent() setlocal indentexpr=GetCucumberIndent()
setlocal indentkeys=o,O,*<Return>,<:>,0<Bar>,0#,=,!^F setlocal indentkeys=o,O,*<Return>,<:>,0<Bar>,0#,=,!^F
let b:undo_indent = 'setl ai< inde< indk<'
" Only define the function once. " Only define the function once.
if exists("*GetCucumberIndent") if exists("*GetCucumberIndent")
finish finish
@ -24,35 +26,47 @@ endfunction
function! GetCucumberIndent() function! GetCucumberIndent()
let line = getline(prevnonblank(v:lnum-1)) let line = getline(prevnonblank(v:lnum-1))
let cline = getline(v:lnum) let cline = getline(v:lnum)
let nline = getline(nextnonblank(v:lnum+1))
let syn = s:syn(prevnonblank(v:lnum-1)) let syn = s:syn(prevnonblank(v:lnum-1))
let csyn = s:syn(v:lnum) let csyn = s:syn(v:lnum)
let nsyn = s:syn(nextnonblank(v:lnum+1))
if csyn ==# 'cucumberFeature' || cline =~# '^\s*Feature:' if csyn ==# 'cucumberFeature' || cline =~# '^\s*Feature:'
" feature heading
return 0 return 0
elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):' elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):'
" examples heading
return 2 * &sw return 2 * &sw
elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):' elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
" background, scenario or outline heading
return &sw return &sw
elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:' elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:'
" line after feature heading
return &sw return &sw
elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):' elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):'
" line after examples heading
return 3 * &sw return 3 * &sw
elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):' elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
" line after background, scenario or outline heading
return 2 * &sw return 2 * &sw
elseif cline =~# '^\s*@' && (s:syn(nextnonblank(v:lnum+1)) == 'cucumberFeature' || getline(nextnonblank(v:lnum+1)) =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0) elseif cline =~# '^\s*[@#]' && (nsyn == 'cucumberFeature' || nline =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0)
" tag or comment before a feature heading
return 0 return 0
elseif line =~# '^\s*@' elseif cline =~# '^\s*@'
" other tags
return &sw return &sw
elseif cline =~# '^\s*|' && line =~# '^\s*|' elseif cline =~# '^\s*[#|]' && line =~# '^\s*|'
" mid-table
" preserve indent
return indent(prevnonblank(v:lnum-1)) return indent(prevnonblank(v:lnum-1))
elseif cline =~# '^\s*|' && line =~# '^\s*[^|#]' elseif cline =~# '^\s*|' && line =~# '^\s*[^|]'
" first line of a table, relative indent
return indent(prevnonblank(v:lnum-1)) + &sw return indent(prevnonblank(v:lnum-1)) + &sw
elseif cline =~# '^\s*[^|# \t]' && line =~# '^\s*|' elseif cline =~# '^\s*[^|]' && line =~# '^\s*|'
" line after a table, relative unindent
return indent(prevnonblank(v:lnum-1)) - &sw return indent(prevnonblank(v:lnum-1)) - &sw
elseif cline =~# '^\s*$' && line =~# '^\s*|' elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && (nsyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || nline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):')
let in = indent(prevnonblank(v:lnum-1)) " comments on scenarios
return in == indent(v:lnum) ? in : in - &sw return &sw
elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && getline(v:lnum+1) =~# '\S'
return indent(getline(v:lnum+1))
endif endif
return indent(prevnonblank(v:lnum-1)) return indent(prevnonblank(v:lnum-1))
endfunction endfunction

View File

@ -1,7 +1,7 @@
" Vim indent file " Vim indent file
" Language: git config file " Language: git config file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2012 April 7 " Last Change: 2013 May 30
if exists("b:did_indent") if exists("b:did_indent")
finish finish

View File

@ -1,7 +1,7 @@
" Vim indent file " Vim indent file
" Language: Haml " Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 May 21 " Last Change: 2013 May 30
if exists("b:did_indent") if exists("b:did_indent")
finish finish
@ -23,7 +23,7 @@ let s:attributes = '\%({.\{-\}}\|\[.\{-\}\]\)'
let s:tag = '\%([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*' let s:tag = '\%([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*'
if !exists('g:haml_self_closing_tags') if !exists('g:haml_self_closing_tags')
let g:haml_self_closing_tags = 'meta|link|img|hr|br' let g:haml_self_closing_tags = 'base|link|meta|br|hr|img|input'
endif endif
function! GetHamlIndent() function! GetHamlIndent()

View File

@ -1,7 +1,7 @@
" Vim indent file " Vim indent file
" Language: Liquid " Language: Liquid
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2012 May 07 " Last Change: 2013 May 30
if exists('b:did_indent') if exists('b:did_indent')
finish finish

View File

@ -1,8 +1,9 @@
" Vim indent file " Vim indent file
" Language: Perl 5 " Language: Perl 5
" Author: Andy Lester <andy@petdance.com> " Maintainer: vim-perl <vim-perl@googlegroups.com>
" URL: http://github.com/petdance/vim-perl/tree/master " Homepage: http://github.com/vim-perl/vim-perl
" Last Change: June 3, 2009 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: May 12, 2013
" Suggestions and improvements by : " Suggestions and improvements by :
" Aaron J. Sherman (use syntax for hints) " Aaron J. Sherman (use syntax for hints)
@ -34,15 +35,10 @@ if !b:indent_use_syntax
setlocal indentkeys+=0=EO setlocal indentkeys+=0=EO
endif endif
" Only define the function once.
if exists("*GetPerlIndent")
finish
endif
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo-=C set cpo-=C
function GetPerlIndent() function! GetPerlIndent()
" Get the line to be indented " Get the line to be indented
let cline = getline(v:lnum) let cline = getline(v:lnum)
@ -52,7 +48,7 @@ function GetPerlIndent()
return 0 return 0
endif endif
" Don't reindent coments on first column " Don't reindent comments on first column
if cline =~ '^#.' if cline =~ '^#.'
return 0 return 0
endif endif
@ -124,7 +120,12 @@ function GetPerlIndent()
" Indent blocks enclosed by {}, (), or [] " Indent blocks enclosed by {}, (), or []
if b:indent_use_syntax if b:indent_use_syntax
" Find a real opening brace " Find a real opening brace
let bracepos = match(line, '[(){}\[\]]', matchend(line, '^\s*[)}\]]')) " NOTE: Unlike Perl character classes, we do NOT need to escape the
" closing brackets with a backslash. Doing so just puts a backslash
" in the character class and causes sorrow. Instead, put the closing
" bracket as the first character in the class.
let braceclass = '[][(){}]'
let bracepos = match(line, braceclass, matchend(line, '^\s*[])}]'))
while bracepos != -1 while bracepos != -1
let synid = synIDattr(synID(lnum, bracepos + 1, 0), "name") let synid = synIDattr(synID(lnum, bracepos + 1, 0), "name")
" If the brace is highlighted in one of those groups, indent it. " If the brace is highlighted in one of those groups, indent it.
@ -133,7 +134,7 @@ function GetPerlIndent()
\ || synid == "perlMatchStartEnd" \ || synid == "perlMatchStartEnd"
\ || synid == "perlHereDoc" \ || synid == "perlHereDoc"
\ || synid =~ "^perlFiledescStatement" \ || synid =~ "^perlFiledescStatement"
\ || synid =~ '^perl\(Sub\|Block\)Fold' \ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let brace = strpart(line, bracepos, 1) let brace = strpart(line, bracepos, 1)
if brace == '(' || brace == '{' || brace == '[' if brace == '(' || brace == '{' || brace == '['
let ind = ind + &sw let ind = ind + &sw
@ -141,22 +142,22 @@ function GetPerlIndent()
let ind = ind - &sw let ind = ind - &sw
endif endif
endif endif
let bracepos = match(line, '[(){}\[\]]', bracepos + 1) let bracepos = match(line, braceclass, bracepos + 1)
endwhile endwhile
let bracepos = matchend(cline, '^\s*[)}\]]') let bracepos = matchend(cline, '^\s*[])}]')
if bracepos != -1 if bracepos != -1
let synid = synIDattr(synID(v:lnum, bracepos, 0), "name") let synid = synIDattr(synID(v:lnum, bracepos, 0), "name")
if synid == "" if synid == ""
\ || synid == "perlMatchStartEnd" \ || synid == "perlMatchStartEnd"
\ || synid =~ '^perl\(Sub\|Block\)Fold' \ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
let ind = ind - &sw let ind = ind - &sw
endif endif
endif endif
else else
if line =~ '[{\[(]\s*\(#[^)}\]]*\)\=$' if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
let ind = ind + &sw let ind = ind + &sw
endif endif
if cline =~ '^\s*[)}\]]' if cline =~ '^\s*[])}]'
let ind = ind - &sw let ind = ind - &sw
endif endif
endif endif

View File

@ -1,12 +1,13 @@
" Vim indent file " Vim indent file
" Language: Perl 6 " Language: Perl 6
" Maintainer: Andy Lester <andy@petdance.com> " Maintainer: vim-perl <vim-perl@googlegroups.com>
" URL: http://github.com/petdance/vim-perl/tree/master " Homepage: http://github.com/vim-perl/vim-perl
" Last Change: 2009-07-04 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-12
" Contributors: Andy Lester <andy@petdance.com> " Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com> " Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" "
" Adapted from Perl indent file by Rafael Garcia-Suarez <rgarciasuarez@free.fr> " Adapted from indent/perl.vim by Rafael Garcia-Suarez <rgarciasuarez@free.fr>
" Suggestions and improvements by : " Suggestions and improvements by :
" Aaron J. Sherman (use syntax for hints) " Aaron J. Sherman (use syntax for hints)
@ -46,15 +47,10 @@ if !b:indent_use_syntax
setlocal indentkeys+=0=EO setlocal indentkeys+=0=EO
endif endif
" Only define the function once.
if exists("*GetPerl6Indent")
finish
endif
let s:cpo_save = &cpo let s:cpo_save = &cpo
set cpo-=C set cpo-=C
function GetPerl6Indent() function! GetPerl6Indent()
" Get the line to be indented " Get the line to be indented
let cline = getline(v:lnum) let cline = getline(v:lnum)

View File

@ -1,7 +1,7 @@
" Vim indent file " Vim indent file
" Language: Sass " Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Last Change: 2010 May 21 " Last Change: 2013 May 30
if exists("b:did_indent") if exists("b:did_indent")
finish finish
@ -17,7 +17,8 @@ if exists("*GetSassIndent")
finish finish
endif endif
let s:property = '^\s*:\|^\s*[[:alnum:]-]\+\%(:\|\s*=\)' let s:property = '^\s*:\|^\s*[[:alnum:]#{}-]\+\%(:\|\s*=\)'
let s:extend = '^\s*\%(@extend\|@include\|+\)'
function! GetSassIndent() function! GetSassIndent()
let lnum = prevnonblank(v:lnum-1) let lnum = prevnonblank(v:lnum-1)
@ -27,7 +28,7 @@ function! GetSassIndent()
let line = substitute(line,'^\s\+','','') let line = substitute(line,'^\s\+','','')
let indent = indent(lnum) let indent = indent(lnum)
let cindent = indent(v:lnum) let cindent = indent(v:lnum)
if line !~ s:property && cline =~ s:property if line !~ s:property && line !~ s:extend && cline =~ s:property
return indent + &sw return indent + &sw
"elseif line =~ s:property && cline !~ s:property "elseif line =~ s:property && cline !~ s:property
"return indent - &sw "return indent - &sw

View File

@ -1,24 +1,37 @@
" Vim plugin for converting a syntax highlighted file to HTML. " Vim plugin for converting a syntax highlighted file to HTML.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com> " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2012 Jul 12 " Last Change: 2013 May 31
" "
" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and " The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
" $VIMRUNTIME/syntax/2html.vim " $VIMRUNTIME/syntax/2html.vim
" "
" TODO: {{{ " TODO: {{{
" * Options for generating the CSS in external style sheets. New :TOcss
" command to convert the current color scheme into a (mostly) generic CSS
" stylesheet which can be re-used. Alternate stylesheet support? Good start
" by Erik Falor
" ( https://groups.google.com/d/topic/vim_use/7XTmC4D22dU/discussion ).
" * Add optional argument to :TOhtml command to specify mode (gui, cterm,
" term) to use for the styling. Suggestion by "nacitar".
" * Add way to override or specify which RGB colors map to the color numbers
" in cterm. Get better defaults than just guessing? Suggestion by "nacitar".
" * Disable filetype detection until after all processing is done.
" * Add option for not generating the hyperlink on stuff that looks like a
" URL? Or just color the link to fit with the colorscheme (and only special
" when hovering)?
" * Bug: Opera does not allow printing more than one page if uncopyable
" regions is turned on. Possible solution: Add normal text line numbers with
" display:none, set to display:inline for print style sheets, and hide
" <input> elements for print, to allow Opera printing multiple pages (and
" other uncopyable areas?). May need to make the new text invisible to IE
" with conditional comments to prevent copying it, IE for some reason likes
" to copy hidden text. Other browsers too?
" * Bug: still a 1px gap throughout the fold column when html_prevent_copy is " * Bug: still a 1px gap throughout the fold column when html_prevent_copy is
" "fn" in some browsers. Specifically, in Chromium on Ubuntu (but not Chrome " "fn" in some browsers. Specifically, in Chromium on Ubuntu (but not Chrome
" on Windows). Perhaps it is font related? " on Windows). Perhaps it is font related?
" * Bug: still some gaps in the fold column when html_prevent_copy contains " * Bug: still some gaps in the fold column when html_prevent_copy contains
" 'd' and showing the whole diff (observed in multiple browsers). Only gaps " 'd' and showing the whole diff (observed in multiple browsers). Only gaps
" on diff lines though. " on diff lines though.
" * anchors on each line so you can do file.html#1234 to get to line 1234
" * add a modeline to the generated html to set nofoldenable or fdm=manual
" because syntax folding takes a terribly long time to work with the weird
" formatting the script does.
" * Options for generating the CSS in external style sheets. New :TOcss
" command to convert the current color scheme into a (mostly) generic CSS
" stylesheet which can be re-used. Alternate stylesheet support?
" * Undercurl support via CSS3, with fallback to dotted or something: " * Undercurl support via CSS3, with fallback to dotted or something:
" https://groups.google.com/d/topic/vim_use/BzXA6He1pHg/discussion " https://groups.google.com/d/topic/vim_use/BzXA6He1pHg/discussion
" * Redo updates for modified default foldtext (v11) when/if the patch is " * Redo updates for modified default foldtext (v11) when/if the patch is
@ -26,10 +39,7 @@
" * Test case +diff_one_file-dynamic_folds+expand_tabs-hover_unfold " * Test case +diff_one_file-dynamic_folds+expand_tabs-hover_unfold
" +ignore_conceal-ignore_folding+no_foldcolumn+no_pre+no_progress " +ignore_conceal-ignore_folding+no_foldcolumn+no_pre+no_progress
" +number_lines-pre_wrap-use_css+use_xhtml+whole_filler.xhtml " +number_lines-pre_wrap-use_css+use_xhtml+whole_filler.xhtml
" does not show the whole diff filler as it is supposed to. " does not show the whole diff filler as it is supposed to?
" * Add option for not generating the hyperlink on stuff that looks like a
" URL? Or just color the link to fit with the colorscheme (and only special
" when hovering)?
" * Bug: when 'isprint' is wrong for the current encoding, will generate " * Bug: when 'isprint' is wrong for the current encoding, will generate
" invalid content. Can/should anything be done about this? Maybe a separate " invalid content. Can/should anything be done about this? Maybe a separate
" plugin to correct 'isprint' based on encoding? " plugin to correct 'isprint' based on encoding?
@ -43,7 +53,6 @@
" - listchars support " - listchars support
" - full-line background highlight " - full-line background highlight
" - other? " - other?
" * Explicitly trigger IE8+ Standards Mode? Doesn't seem necessary yet.
" * Make it so deleted lines in a diff don't create side-scrolling (get it " * Make it so deleted lines in a diff don't create side-scrolling (get it
" free with full-line background highlight above). " free with full-line background highlight above).
" * Restore open/closed folds and cursor position after processing each file " * Restore open/closed folds and cursor position after processing each file
@ -58,12 +67,23 @@
if exists('g:loaded_2html_plugin') if exists('g:loaded_2html_plugin')
finish finish
endif endif
let g:loaded_2html_plugin = 'vim7.3_v12' let g:loaded_2html_plugin = 'vim7.3_v13'
" "
" Changelog: {{{ " Changelog: {{{
" "
" 7.3_v12 (this version): Fix modeline mangling to also work for when multiple " 7.3_v13 (this version): Keep foldmethod at manual in the generated file and
" insert modeline to set it to manual.
" Fix bug: diff mode with 2 unsaved buffers creates a
" duplicate of one buffer instead of including both.
" Add anchors to each line so you can put '#L123'
" or '#123' at the end of the URL to jump to line 123
" (idea by Andy Spencer). Add javascript to open folds
" to show the anchor being jumped to if it is hidden.
" Fix XML validation error: &nsbp; not part of XML.
" Allow TOhtml to chain together with other commands
" using |.
" 7.3_v12 (9910cbff5f16): Fix modeline mangling to also work for when multiple
" highlight groups make up the start-of-modeline text. " highlight groups make up the start-of-modeline text.
" Improve render time of page with uncopyable regions " Improve render time of page with uncopyable regions
" by not using one-input-per-char. Change name of " by not using one-input-per-char. Change name of
@ -143,7 +163,7 @@ let g:loaded_2html_plugin = 'vim7.3_v12'
" - this plugin was not already loaded " - this plugin was not already loaded
" - user commands are available. {{{ " - user commands are available. {{{
if !&cp && !exists(":TOhtml") && has("user_commands") if !&cp && !exists(":TOhtml") && has("user_commands")
command -range=% TOhtml :call tohtml#Convert2HTML(<line1>, <line2>) command -range=% -bar TOhtml :call tohtml#Convert2HTML(<line1>, <line2>)
endif "}}} endif "}}}
" Make sure any patches will probably use consistent indent " Make sure any patches will probably use consistent indent

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types in scripts " Vim support file to detect file types in scripts
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2012 Aug 30 " Last change: 2013 May 24
" This file is called by an autocommand for every file that has just been " This file is called by an autocommand for every file that has just been
" loaded into a buffer. It checks if the type of file can be recognized by " loaded into a buffer. It checks if the type of file can be recognized by
@ -327,6 +327,12 @@ else
elseif s:line1 =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$' elseif s:line1 =~ '^\(commit\|tree\|object\) \x\{40\}\>\|^tag \S\+$'
set ft=git set ft=git
" Gprof (gnu profiler)
elseif s:line1 == 'Flat profile:'
\ && s:line2 == ''
\ && s:line3 =~ '^Each sample counts as .* seconds.$'
set ft=gprof
" CVS diff " CVS diff
else else
let s:lnum = 1 let s:lnum = 1

View File

@ -1,6 +1,6 @@
" Vim syntax support file " Vim syntax support file
" Maintainer: Ben Fritz <fritzophrenic@gmail.com> " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
" Last Change: 2012 Jun 30 " Last Change: 2013 May 31
" "
" Additional contributors: " Additional contributors:
" "
@ -214,17 +214,21 @@ endif
if !s:settings.use_css if !s:settings.use_css
" Return opening HTML tag for given highlight id " Return opening HTML tag for given highlight id
function! s:HtmlOpening(id) function! s:HtmlOpening(id, extra_attrs)
let a = "" let a = ""
if synIDattr(a:id, "inverse") if synIDattr(a:id, "inverse")
" For inverse, we always must set both colors (and exchange them) " For inverse, we always must set both colors (and exchange them)
let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm)) let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
let a = a . '<span style="background-color: ' . ( x != "" ? x : s:fgc ) . '">' let a = a . '<span '.a:extra_attrs.'style="background-color: ' . ( x != "" ? x : s:fgc ) . '">'
let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm)) let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
let a = a . '<font color="' . ( x != "" ? x : s:bgc ) . '">' let a = a . '<font color="' . ( x != "" ? x : s:bgc ) . '">'
else else
let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm)) let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
if x != "" | let a = a . '<span style="background-color: ' . x . '">' | endif if x != ""
let a = a . '<span '.a:extra_attrs.'style="background-color: ' . x . '">'
elseif !empty(a:extra_attrs)
let a = a . '<span '.a:extra_attrs.'>'
endif
let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm)) let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
if x != "" | let a = a . '<font color="' . x . '">' | endif if x != "" | let a = a . '<font color="' . x . '">' | endif
endif endif
@ -235,7 +239,7 @@ if !s:settings.use_css
endfun endfun
" Return closing HTML tag for given highlight id " Return closing HTML tag for given highlight id
function! s:HtmlClosing(id) function! s:HtmlClosing(id, has_extra_attrs)
let a = "" let a = ""
if synIDattr(a:id, "underline") | let a = a . "</u>" | endif if synIDattr(a:id, "underline") | let a = a . "</u>" | endif
if synIDattr(a:id, "italic") | let a = a . "</i>" | endif if synIDattr(a:id, "italic") | let a = a . "</i>" | endif
@ -246,7 +250,7 @@ if !s:settings.use_css
let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm)) let x = s:HtmlColor(synIDattr(a:id, "fg#", s:whatterm))
if x != "" | let a = a . '</font>' | endif if x != "" | let a = a . '</font>' | endif
let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm)) let x = s:HtmlColor(synIDattr(a:id, "bg#", s:whatterm))
if x != "" | let a = a . '</span>' | endif if x != "" || a:has_extra_attrs | let a = a . '</span>' | endif
endif endif
return a return a
endfun endfun
@ -265,7 +269,7 @@ if s:settings.use_css
" first, get the style names we need " first, get the style names we need
let wrapperfunc_lines = [ let wrapperfunc_lines = [
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, text, make_unselectable, unformatted)', \ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, make_unselectable, unformatted)',
\ '', \ '',
\ ' let l:style_name = synIDattr(a:style_id, "name", s:whatterm)' \ ' let l:style_name = synIDattr(a:style_id, "name", s:whatterm)'
\ ] \ ]
@ -308,7 +312,7 @@ if s:settings.use_css
let wrapperfunc_lines += [ let wrapperfunc_lines += [
\ '', \ '',
\ ' if l:saved_style == ""' \ ' if l:saved_style == "" && empty(a:extra_attrs)'
\ ] \ ]
if &diff if &diff
let wrapperfunc_lines += [ let wrapperfunc_lines += [
@ -340,7 +344,7 @@ if s:settings.use_css
\ : "") \ : "")
if s:settings.prevent_copy == "" if s:settings.prevent_copy == ""
let wrapperfunc_lines += [ let wrapperfunc_lines += [
\ ' return "<span class=\"" . l:style_name .'.diffstyle.'"\">".a:text."</span>"' \ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'.diffstyle.'"\">".a:text."</span>"'
\ ] \ ]
else else
@ -362,7 +366,7 @@ if s:settings.use_css
" uses the number of unique codepoints for its limit. " uses the number of unique codepoints for its limit.
let wrapperfunc_lines += [ let wrapperfunc_lines += [
\ ' if a:make_unselectable', \ ' if a:make_unselectable',
\ ' return "<span class=\"" . l:style_name .'.diffstyle.'"\">'. \ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'.diffstyle.'"\">'.
\ '<input'.s:unselInputType.' class=\"" . l:style_name .'.diffstyle.'"\"'. \ '<input'.s:unselInputType.' class=\"" . l:style_name .'.diffstyle.'"\"'.
\ ' value=\"".substitute(a:unformatted,''\s\+$'',"","")."\"'. \ ' value=\"".substitute(a:unformatted,''\s\+$'',"","")."\"'.
\ ' onselect=''this.blur(); return false;'''. \ ' onselect=''this.blur(); return false;'''.
@ -372,17 +376,9 @@ if s:settings.use_css
\ ' size=\"".strwidth(a:unformatted)."\"'. \ ' size=\"".strwidth(a:unformatted)."\"'.
\ (s:settings.use_xhtml ? '/' : '').'></span>"', \ (s:settings.use_xhtml ? '/' : '').'></span>"',
\ ' else', \ ' else',
\ ' return "<span class=\"" . l:style_name .'. diffstyle .'"\">".a:text."</span>"' \ ' return "<span ".a:extra_attrs."class=\"" . l:style_name .'. diffstyle .'"\">".a:text."</span>"'
\ ] \ ]
endif endif
" close off tag for non-empty primary style
if s:settings.prevent_copy == ""
let wrapperfunc_lines[-1] .=
\ ' "\">".a:text."</span>"'
else
let wrapperfunc_lines[-1] .=
\ ' "\">".a:text."</span>"'
endif
let wrapperfunc_lines += [ let wrapperfunc_lines += [
\ ' endif', \ ' endif',
\ 'endfun' \ 'endfun'
@ -394,16 +390,16 @@ else
" no styles exist. " no styles exist.
if &diff if &diff
let wrapperfunc_lines = [ let wrapperfunc_lines = [
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, text, unusedarg, unusedarg2)', \ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2)',
\ ' return s:HtmlOpening(a:style_id).(a:diff_style_id <= 0 ? "" :'. \ ' return s:HtmlOpening(a:style_id, a:extra_attrs).(a:diff_style_id <= 0 ? "" :'.
\ 's:HtmlOpening(a:diff_style_id)).a:text.'. \ 's:HtmlOpening(a:diff_style_id, "")).a:text.'.
\ '(a:diff_style_id <= 0 ? "" : s:HtmlClosing(a:diff_style_id)).s:HtmlClosing(a:style_id)', \ '(a:diff_style_id <= 0 ? "" : s:HtmlClosing(a:diff_style_id, 0)).s:HtmlClosing(a:style_id, !empty(a:extra_attrs))',
\ 'endfun' \ 'endfun'
\ ] \ ]
else else
let wrapperfunc_lines = [ let wrapperfunc_lines = [
\ 'function! s:BuildStyleWrapper(style_id, diff_style_id, text, unusedarg, unusedarg2)', \ 'function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2)',
\ ' return s:HtmlOpening(a:style_id).a:text.s:HtmlClosing(a:style_id)', \ ' return s:HtmlOpening(a:style_id, a:extra_attrs).a:text.s:HtmlClosing(a:style_id, !empty(a:extra_attrs))',
\ 'endfun' \ 'endfun'
\ ] \ ]
endif endif
@ -418,7 +414,7 @@ let s:diff_mode = &diff
" unprintable characters expanded and double spaces replaced as necessary. " unprintable characters expanded and double spaces replaced as necessary.
" "
" TODO: eliminate unneeded logic like done for BuildStyleWrapper " TODO: eliminate unneeded logic like done for BuildStyleWrapper
function! s:HtmlFormat(text, style_id, diff_style_id, make_unselectable) function! s:HtmlFormat(text, style_id, diff_style_id, extra_attrs, make_unselectable)
" Replace unprintable characters " Replace unprintable characters
let unformatted = strtrans(a:text) let unformatted = strtrans(a:text)
@ -447,27 +443,45 @@ function! s:HtmlFormat(text, style_id, diff_style_id, make_unselectable)
endif endif
" Enclose in the correct format " Enclose in the correct format
return s:BuildStyleWrapper(a:style_id, a:diff_style_id, formatted, a:make_unselectable, unformatted) return s:BuildStyleWrapper(a:style_id, a:diff_style_id, a:extra_attrs, formatted, a:make_unselectable, unformatted)
endfun endfun
" set up functions to call HtmlFormat in certain ways based on whether the " set up functions to call HtmlFormat in certain ways based on whether the
" element is supposed to be unselectable or not " element is supposed to be unselectable or not
if s:settings.prevent_copy =~# 'n' if s:settings.prevent_copy =~# 'n'
function! s:HtmlFormat_n(text, style_id, diff_style_id) if s:settings.number_lines
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 1) function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
if a:lnr > 0
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.'" ', 1)
else
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
endif
endfun endfun
else else
function! s:HtmlFormat_n(text, style_id, diff_style_id) " if lines are not being numbered the only reason this function gets called
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 0) " is to put the line IDs on each line; "text" will be emtpy but lnr will
" always be non-zero, however we don't want to use the <input> because that
" won't work as nice for empty text
function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.'" ', 0)
endfun
endif
else
function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr)
if a:lnr > 0
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'.(exists('g:html_diff_win_num') ? 'W'.g:html_diff_win_num : "").'L'.a:lnr.'" ', 0)
else
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
endif
endfun endfun
endif endif
if s:settings.prevent_copy =~# 'd' if s:settings.prevent_copy =~# 'd'
function! s:HtmlFormat_d(text, style_id, diff_style_id) function! s:HtmlFormat_d(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 1) return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
endfun endfun
else else
function! s:HtmlFormat_d(text, style_id, diff_style_id) function! s:HtmlFormat_d(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 0) return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
endfun endfun
endif endif
if s:settings.prevent_copy =~# 'f' if s:settings.prevent_copy =~# 'f'
@ -501,7 +515,7 @@ else
\ "</a>" \ "</a>"
endfun endfun
function! s:FoldColumn_fill() function! s:FoldColumn_fill()
return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, 0) return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, "", 0)
endfun endfun
endif endif
if s:settings.prevent_copy =~# 't' if s:settings.prevent_copy =~# 't'
@ -512,17 +526,17 @@ if s:settings.prevent_copy =~# 't'
" substitute later? " substitute later?
if s:settings.dynamic_folds if s:settings.dynamic_folds
function! s:HtmlFormat_t(text, style_id, diff_style_id) function! s:HtmlFormat_t(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 1) . return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) .
\ s:HtmlFormat("", a:style_id, 0, 0) \ s:HtmlFormat("", a:style_id, 0, "", 0)
endfun endfun
else else
function! s:HtmlFormat_t(text, style_id, diff_style_id) function! s:HtmlFormat_t(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 1) return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1)
endfun endfun
endif endif
else else
function! s:HtmlFormat_t(text, style_id, diff_style_id) function! s:HtmlFormat_t(text, style_id, diff_style_id)
return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 0) return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0)
endfun endfun
endif endif
@ -607,7 +621,11 @@ endif
let s:orgbufnr = winbufnr(0) let s:orgbufnr = winbufnr(0)
let s:origwin_stl = &l:stl let s:origwin_stl = &l:stl
if expand("%") == "" if expand("%") == ""
if exists('g:html_diff_win_num')
exec 'new Untitled_win'.g:html_diff_win_num.'.'.(s:settings.use_xhtml ? 'x' : '').'html'
else
exec 'new Untitled.'.(s:settings.use_xhtml ? 'x' : '').'html' exec 'new Untitled.'.(s:settings.use_xhtml ? 'x' : '').'html'
endif
else else
exec 'new %.'.(s:settings.use_xhtml ? 'x' : '').'html' exec 'new %.'.(s:settings.use_xhtml ? 'x' : '').'html'
endif endif
@ -625,7 +643,6 @@ setlocal winfixheight
let s:newwin_stl = &l:stl let s:newwin_stl = &l:stl
" on the new window, set the least time-consuming fold method " on the new window, set the least time-consuming fold method
let s:old_fdm = &foldmethod
let s:old_fen = &foldenable let s:old_fen = &foldenable
setlocal foldmethod=manual setlocal foldmethod=manual
setlocal nofoldenable setlocal nofoldenable
@ -671,7 +688,7 @@ let s:LeadingSpace = ' '
let s:HtmlEndline = '' let s:HtmlEndline = ''
if s:settings.no_pre if s:settings.no_pre
let s:HtmlEndline = '<br' . s:tag_close let s:HtmlEndline = '<br' . s:tag_close
let s:LeadingSpace = '&nbsp;' let s:LeadingSpace = s:settings.use_xhtml ? '&#160;' : '&nbsp;'
let s:HtmlSpace = '\' . s:LeadingSpace let s:HtmlSpace = '\' . s:LeadingSpace
endif endif
@ -774,13 +791,12 @@ if s:settings.use_css
endif endif
endif endif
" insert script tag if any javascript is needed " insert script tag; javascript is always needed for the line number
if s:settings.dynamic_folds || s:settings.prevent_copy != "" " normalization for URL hashes
call extend(s:lines, [ call extend(s:lines, [
\ "", \ "",
\ "<script type='text/javascript'>", \ "<script type='text/javascript'>",
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"]) \ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
endif
" insert javascript to toggle folds open and closed " insert javascript to toggle folds open and closed
if s:settings.dynamic_folds if s:settings.dynamic_folds
@ -802,6 +818,51 @@ if s:settings.dynamic_folds
\ ]) \ ])
endif endif
" insert javascript to get IDs from line numbers, and to open a fold before
" jumping to any lines contained therein
call extend(s:lines, [
\ "",
\ "/* function to open any folds containing a jumped-to line before jumping to it */",
\ "function JumpToLine()",
\ "{",
\ " var lineNum;",
\ " lineNum = window.location.hash;",
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
\ "",
\ " if (lineNum.indexOf('L') == -1) {",
\ " lineNum = 'L'+lineNum;",
\ " }",
\ " lineElem = document.getElementById(lineNum);"
\ ])
if s:settings.dynamic_folds
call extend(s:lines, [
\ "",
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
\ " var node = lineElem;",
\ " while (node && node.id != 'vimCodeElement')",
\ " {",
\ " if (node.className == 'closed-fold')",
\ " {",
\ " node.className = 'open-fold';",
\ " }",
\ " node = node.parentNode;",
\ " }",
\ ])
endif
call extend(s:lines, [
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
\ " * we corrected the raw number to a line ID.",
\ " */",
\ " if (lineElem) {",
\ " lineElem.scrollIntoView(true);",
\ " }",
\ " return true;",
\ "}",
\ "if ('onhashchange' in window) {",
\ " window.onhashchange = JumpToLine;",
\ "}"
\ ])
" Small text columns like the foldcolumn and line number column need a weird " Small text columns like the foldcolumn and line number column need a weird
" hack to work around Webkit's and (in versions prior to 9) IE's lack of support " hack to work around Webkit's and (in versions prior to 9) IE's lack of support
" for the 'ch' unit without messing up Opera, which also doesn't support it but " for the 'ch' unit without messing up Opera, which also doesn't support it but
@ -861,26 +922,24 @@ if !empty(s:settings.prevent_copy)
\ ]) \ ])
endif endif
" insert script closing tag if any javascript is needed " insert script closing tag
if s:settings.dynamic_folds || s:settings.prevent_copy != ""
call extend(s:lines, [ call extend(s:lines, [
\ '', \ '',
\ s:settings.use_xhtml ? '//]]>' : '-->', \ s:settings.use_xhtml ? '//]]>' : '-->',
\ "</script>" \ "</script>"
\ ]) \ ])
endif
call extend(s:lines, ["</head>"]) call extend(s:lines, ["</head>"])
if !empty(s:settings.prevent_copy) if !empty(s:settings.prevent_copy)
call extend(s:lines, call extend(s:lines,
\ ["<body onload='FixCharWidth();'>", \ ["<body onload='FixCharWidth(); JumpToLine();'>",
\ "<!-- hidden divs used by javascript to get the width of a char -->", \ "<!-- hidden divs used by javascript to get the width of a char -->",
\ "<div id='oneCharWidth'>0</div>", \ "<div id='oneCharWidth'>0</div>",
\ "<div id='oneInputWidth'><input size='1' value='0'".s:tag_close."</div>", \ "<div id='oneInputWidth'><input size='1' value='0'".s:tag_close."</div>",
\ "<div id='oneEmWidth' style='width: 1em;'></div>" \ "<div id='oneEmWidth' style='width: 1em;'></div>"
\ ]) \ ])
else else
call extend(s:lines, ["<body>"]) call extend(s:lines, ["<body onload='JumpToLine();'>"])
endif endif
if s:settings.no_pre if s:settings.no_pre
" if we're not using CSS we use a font tag which can't have a div inside " if we're not using CSS we use a font tag which can't have a div inside
@ -1242,7 +1301,7 @@ while s:lnum <= s:end
if s:settings.number_lines if s:settings.number_lines
" Indent if line numbering is on. Indent gets style of line number " Indent if line numbering is on. Indent gets style of line number
" column. " column.
let s:new = s:HtmlFormat_n(repeat(' ', s:margin), s:LINENR_ID, 0) . s:new let s:new = s:HtmlFormat_n(repeat(' ', s:margin), s:LINENR_ID, 0, 0) . s:new
endif endif
if s:settings.dynamic_folds && !s:settings.no_foldcolumn && s:foldcolumn > 0 if s:settings.dynamic_folds && !s:settings.no_foldcolumn && s:foldcolumn > 0
" Indent for foldcolumn if there is one. Assume it's empty, there should " Indent for foldcolumn if there is one. Assume it's empty, there should
@ -1274,7 +1333,7 @@ while s:lnum <= s:end
endif endif
" put numcol in a separate group for sake of unselectable text " put numcol in a separate group for sake of unselectable text
let s:new = (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0): "") . s:HtmlFormat_t(s:new, s:FOLDED_ID, 0) let s:new = (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, s:lnum): "") . s:HtmlFormat_t(s:new, s:FOLDED_ID, 0)
" Skip to the end of the fold " Skip to the end of the fold
let s:new_lnum = foldclosedend(s:lnum) let s:new_lnum = foldclosedend(s:lnum)
@ -1355,7 +1414,7 @@ while s:lnum <= s:end
" Add fold text, moving the span ending to the next line so collapsing " Add fold text, moving the span ending to the next line so collapsing
" of folds works correctly. " of folds works correctly.
" Put numcol in a separate group for sake of unselectable text. " Put numcol in a separate group for sake of unselectable text.
let s:new = s:new . (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0) : "") . substitute(s:HtmlFormat_t(foldtextresult(s:lnum), s:FOLDED_ID, 0), '</span>', s:HtmlEndline.'\n\0', '') let s:new = s:new . (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, 0) : "") . substitute(s:HtmlFormat_t(foldtextresult(s:lnum), s:FOLDED_ID, 0), '</span>', s:HtmlEndline.'\n\0', '')
let s:new = s:new . "<span class='fulltext'>" let s:new = s:new . "<span class='fulltext'>"
" open the fold now that we have the fold text to allow retrieval of " open the fold now that we have the fold text to allow retrieval of
@ -1389,7 +1448,9 @@ while s:lnum <= s:end
" Now continue with the unfolded line text " Now continue with the unfolded line text
if s:settings.number_lines if s:settings.number_lines
let s:new = s:new . s:HtmlFormat_n(s:numcol, s:LINENR_ID, 0) let s:new = s:new . s:HtmlFormat_n(s:numcol, s:LINENR_ID, 0, s:lnum)
else
let s:new = s:new . s:HtmlFormat_n("", s:LINENR_ID, 0, s:lnum)
endif endif
" Get the diff attribute, if any. " Get the diff attribute, if any.
@ -1479,7 +1540,7 @@ while s:lnum <= s:end
" Output the text with the same synID, with class set to the highlight ID " Output the text with the same synID, with class set to the highlight ID
" name, unless it has been concealed completely. " name, unless it has been concealed completely.
if strlen(s:expandedtab) > 0 if strlen(s:expandedtab) > 0
let s:new = s:new . s:HtmlFormat(s:expandedtab, s:id, s:diff_id, 0) let s:new = s:new . s:HtmlFormat(s:expandedtab, s:id, s:diff_id, "", 0)
endif endif
endwhile endwhile
endif endif
@ -1531,6 +1592,11 @@ unlet s:lines
" stripped from the final output. " stripped from the final output.
%s!\v(%(^|\s+)%(vim?|ex)):!\1\&#0058;!ge %s!\v(%(^|\s+)%(vim?|ex)):!\1\&#0058;!ge
" The generated HTML is admittedly ugly and takes a LONG time to fold.
" Make sure the user doesn't do syntax folding when loading a generated file,
" using a modeline.
call append(line('$'), "<!-- vim: set foldmethod=manual : -->")
" Now, when we finally know which, we define the colors and styles " Now, when we finally know which, we define the colors and styles
if s:settings.use_css if s:settings.use_css
1;/<style type="text/+1 1;/<style type="text/+1
@ -1616,7 +1682,7 @@ if s:settings.use_css
endif endif
endif endif
else else
execute '%s:<body>:<body bgcolor="' . s:bgc . '" text="' . s:fgc . '">\r<font face="'. s:htmlfont .'">' execute '%s:<body\([^>]*\):<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"\1>\r<font face="'. s:htmlfont .'"'
endif endif
" Gather attributes for all other classes. Do diff first so that normal " Gather attributes for all other classes. Do diff first so that normal
@ -1652,8 +1718,10 @@ endif
%s:\s\+$::e %s:\s\+$::e
" Restore old settings (new window first) " Restore old settings (new window first)
"
" Don't bother restoring foldmethod in case it was syntax because the markup is
" so weirdly formatted it can take a LONG time.
let &l:foldenable = s:old_fen let &l:foldenable = s:old_fen
let &l:foldmethod = s:old_fdm
let &report = s:old_report let &report = s:old_report
let &title = s:old_title let &title = s:old_title
let &icon = s:old_icon let &icon = s:old_icon
@ -1684,7 +1752,7 @@ let &ls=s:ls
" Save a little bit of memory (worth doing?) " Save a little bit of memory (worth doing?)
unlet s:htmlfont s:whitespace unlet s:htmlfont s:whitespace
unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search
unlet s:old_magic s:old_more s:old_fdm s:old_fen s:old_winheight unlet s:old_magic s:old_more s:old_fen s:old_winheight
unlet! s:old_isprint unlet! s:old_isprint
unlet s:whatterm s:stylelist s:diffstylelist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight unlet s:whatterm s:stylelist s:diffstylelist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight
unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo s:diff_mode unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo s:diff_mode

View File

@ -21,7 +21,7 @@ syn keyword cTodo contained TODO FIXME XXX
" It's easy to accidentally add a space after a backslash that was intended " It's easy to accidentally add a space after a backslash that was intended
" for line continuation. Some compilers allow it, which makes it " for line continuation. Some compilers allow it, which makes it
" unpredicatable and should be avoided. " unpredictable and should be avoided.
syn match cBadContinuation contained "\\\s\+$" syn match cBadContinuation contained "\\\s\+$"
" cCommentGroup allows adding matches for special things in comments " cCommentGroup allows adding matches for special things in comments
@ -341,12 +341,12 @@ syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip
syn match cPreConditMatch display "^\s*\(%:\|#\)\s*\(else\|endif\)\>" syn match cPreConditMatch display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
if !exists("c_no_if0") if !exists("c_no_if0")
syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip
syn region cCppOutWrapper start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse fold syn region cCppOutWrapper start="^\s*\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold
syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse
if !exists("c_no_if0_fold") if !exists("c_no_if0_fold")
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip fold syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold
else else
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
endif endif
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
syn region cCppInWrapper start="^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold syn region cCppInWrapper start="^\s*\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
@ -356,7 +356,7 @@ if !exists("c_no_if0")
else else
syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
endif endif
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
syn region cCppOutSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip syn region cCppOutSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
endif endif

View File

@ -2,7 +2,7 @@
" Language: Cucumber " Language: Cucumber
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.feature " Filenames: *.feature
" Last Change: 2012 Apr 30 " Last Change: 2013 May 30
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@ -14,50 +14,60 @@ syn case match
syn sync minlines=20 syn sync minlines=20
let g:cucumber_languages = { let g:cucumber_languages = {
\"en": {"and": "And\\>", "background": "Background\\>", "but": "But\\>", "examples": "Scenarios\\>\\|Examples\\>", "feature": "Feature\\>", "given": "Given\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Outline\\>", "then": "Then\\>", "when": "When\\>"}, \"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\\>"}, \"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\\>"}, \"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\\>"}, \"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": "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\\>"}, \"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\\>"}, \"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\\>"}, \"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\\>"}, \"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-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": "N\\>", "background": "Background\\>", "but": "Cept\\>", "examples": "Cobber\\>", "feature": "Crikey\\>", "given": "Ya know how\\>", "scenario": "Mate\\>", "scenario_outline": "Blokes\\>", "then": "Ya gotta\\>", "when": "When\\>"}, \"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-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\\>"}, \"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\\>"}, \"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": "Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esquema del escenario\\>", "then": "Entonces\\>", "when": "Cuando\\>"}, \"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\\>"}, \"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\\>"}, \"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": "Etant donn\\%u00e9\\>\\|Soit\\>", "scenario": "Sc\\%u00e9nario\\>", "scenario_outline": "Plan du sc\\%u00e9nario\\>\\|Plan du Sc\\%u00e9nario\\>", "then": "Alors\\>", "when": "Lorsqu'\\|Lorsque\\>\\|Quand\\>"}, \"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\\>"}, \"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\\>"}, \"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": "Ha\\>", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\>", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat\\>", "then": "Akkor\\>", "when": "Majd\\>"}, \"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\\>"}, \"id": {"and": "Dan\\>", "background": "Dasar\\>", "but": "Tapi\\>", "examples": "Contoh\\>", "feature": "Fitur\\>", "given": "Dengan\\>", "scenario": "Skenario\\>", "scenario_outline": "Skenario konsep\\>", "then": "Maka\\>", "when": "Ketika\\>"},
\"it": {"and": "E\\>", "background": "Contesto\\>", "but": "Ma\\>", "examples": "Esempi\\>", "feature": "Funzionalit\\%u00e0\\>", "given": "Dato\\>", "scenario": "Scenario\\>", "scenario_outline": "Schema dello scenario\\>", "then": "Allora\\>", "when": "Quando\\>"}, \"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"}, \"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"}, \"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\\>"}, \"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\\>"}, \"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\\>"}, \"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\\>"}, \"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\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"}, \"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\\>", "background": "Za\\%u0142o\\%u017cenia\\>", "but": "Ale\\>", "examples": "Przyk\\%u0142ady\\>", "feature": "W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\>", "given": "Zak\\%u0142adaj\\%u0105c\\>", "scenario": "Scenariusz\\>", "scenario_outline": "Szablon scenariusza\\>", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>"}, \"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": "Contexto\\>", "but": "Mas\\>", "examples": "Exemplos\\>", "feature": "Funcionalidade\\>", "given": "Dado\\>", "scenario": "Cen\\%u00e1rio\\>\\|Cenario\\>", "scenario_outline": "Esquema do Cen\\%u00e1rio\\>\\|Esquema do Cenario\\>", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"}, \"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": "Si\\>", "background": "Conditii\\>", "but": "Dar\\>", "examples": "Exemplele\\>", "feature": "Functionalitate\\>", "given": "Daca\\>", "scenario": "Scenariu\\>", "scenario_outline": "Scenariul de sablon\\>", "then": "Atunci\\>", "when": "Cand\\>"}, \"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\\>"},
\"ro-RO": {"and": "\\%u0218i\\>", "background": "Condi\\%u0163ii\\>", "but": "Dar\\>", "examples": "Exemplele\\>", "feature": "Func\\%u021bionalitate\\>", "given": "Dac\\%u0103\\>", "scenario": "Scenariu\\>", "scenario_outline": "Scenariul de \\%u015fablon\\>", "then": "Atunci\\>", "when": "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": "\\%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\\>"},
\"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u0417\\%u043d\\%u0430\\%u0447\\%u0435\\%u043d\\%u0438\\%u044f\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>\\|\\%u0424\\%u0438\\%u0447\\%u0430\\>", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>", "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\\>", "when": "\\%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\\>"},
\"sk": {"and": "A\\>", "background": "Pozadie\\>", "but": "Ale\\>", "examples": "Pr\\%u00edklady\\>", "feature": "Po\\%u017eiadavka\\>", "given": "Pokia\\%u013e\\>", "scenario": "Scen\\%u00e1r\\>", "scenario_outline": "N\\%u00e1\\%u010drt Scen\\%u00e1ru\\>", "then": "Tak\\>", "when": "Ke\\%u010f\\>"},
\"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-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\\>"}, \"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\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"}, \"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\\>"}, \"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\\>"},
\"uk": {"and": "\\%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\\>", "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\\>", "when": "\\%u042f\\%u043a\\%u0449\\%u043e\\>"}, \"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\\>"}, \"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\\>"}, \"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", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982", "scenario": "\\%u573a\\%u666f\\>", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\>", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"}, \"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", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u8a2d", "scenario": "\\%u5834\\%u666f\\>\\|\\%u5287\\%u672c\\>", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\>\\|\\%u5287\\%u672c\\%u5927\\%u7db1\\>", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}} \"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"}}
function! s:pattern(key) function! s:pattern(key)
let language = matchstr(getline(1),'#\s*language:\s*\zs\S\+') let language = matchstr(getline(1),'#\s*language:\s*\zs\S\+')
@ -73,13 +83,15 @@ function! s:pattern(key)
endfunction endfunction
function! s:Add(name) function! s:Add(name)
let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","Comment","Table"],'"cucumber".a:name.v:val'),",") let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","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.'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.'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.'ButRegion matchgroup=cucumber'.a:name.'But start="\%(^\s*\)\@<='.s:pattern('but').'" end="$" contained'.next
exe 'syn match cucumber'.a:name.'Comment "\%(^\s*\)\@<=#.*" 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 '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.'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.'But cucumber'.a:name.'And'
exe 'hi def link cucumber'.a:name.'And cucumber'.a:name 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' exe 'syn cluster cucumberStepRegions add=cucumber'.a:name.'Region,cucumber'.a:name.'AndRegion,cucumber'.a:name.'ButRegion'
@ -99,9 +111,8 @@ exe 'syn match cucumberExamples "\%(^\s*\)\@<='.s:pattern('examples').':" nextgr
syn match cucumberPlaceholder "<[^<>]*>" contained containedin=@cucumberStepRegions syn match cucumberPlaceholder "<[^<>]*>" contained containedin=@cucumberStepRegions
syn match cucumberExampleTable "\%(^\s*\)\@<=|.*" contains=cucumberDelimiter syn match cucumberExampleTable "\%(^\s*\)\@<=|.*" contains=cucumberDelimiter
syn match cucumberDelimiter "|" contained syn match cucumberDelimiter "\\\@<!\%(\\\\\)*\zs|" contained
syn match cucumberTags "\%(^\s*\)\@<=\%(@[^@[:space:]]\+\s\+\)*@[^@[:space:]]\+\s*$" syn match cucumberTags "\%(^\s*\)\@<=\%(@[^@[:space:]]\+\s\+\)*@[^@[:space:]]\+\s*$" contains=@NoSpell
syn region cucumberString start=+\%(^\s*\)\@<="""+ end=+"""+
call s:Add('Then') call s:Add('Then')
call s:Add('When') call s:Add('When')

View File

@ -1,22 +1,23 @@
" Vim syntax file for the D programming language (version 1.053 and 2.047). " Vim syntax file for the D programming language (version 1.076 and 2.063).
" "
" Language: D " Language: D
" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com> " Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
" Last Change: 2012 Jan 11 " Last Change: 2013 May 21
" Version: 0.24 " Version: 0.25
" "
" Contributors: " Contributors:
" - Jason Mills <jasonmills@nf.sympatico.ca>: original Maintainer " - Jason Mills: original Maintainer
" - Kirk McDonald " - Kirk McDonald
" - Tim Keating " - Tim Keating
" - Frank Benoit " - Frank Benoit
" - Shougo Matsushita <Shougo.Matsu@gmail.com> " - Shougo Matsushita
" - Ellery Newcomer " - Ellery Newcomer
" - Steven N. Oliver " - Steven N. Oliver
" - Sohgo Takeuchi " - Sohgo Takeuchi
" - Robert Clipsham
" "
" Please submit bugs/comments/suggestions to the github repo: " Please submit bugs/comments/suggestions to the github repo:
" https://github.com/he-the-great/d.vim " https://github.com/JesseKPhillips/d.vim
" "
" Options: " Options:
" d_comment_strings - Set to highlight strings and numbers in comments. " d_comment_strings - Set to highlight strings and numbers in comments.
@ -40,7 +41,8 @@ let b:current_syntax = "d"
" Keyword definitions " Keyword definitions
" "
syn keyword dExternal import module syn keyword dExternal contained import module
syn keyword dAssert assert
syn keyword dConditional if else switch syn keyword dConditional if else switch
syn keyword dBranch goto break continue syn keyword dBranch goto break continue
syn keyword dRepeat while for do foreach foreach_reverse syn keyword dRepeat while for do foreach foreach_reverse
@ -48,6 +50,7 @@ syn keyword dBoolean true false
syn keyword dConstant null syn keyword dConstant null
syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__ syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__
syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__ syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
syn keyword dConstant __MODULE__ __FUNCTION__ __PRETTY_FUNCTION__
syn keyword dTypedef alias typedef syn keyword dTypedef alias typedef
syn keyword dStructure template interface class struct union syn keyword dStructure template interface class struct union
syn keyword dEnum enum syn keyword dEnum enum
@ -58,7 +61,7 @@ if exists("d_hl_operator_overload")
syn keyword dOpOverload opSub opSub_r opMul opDiv opDiv_r opMod syn keyword dOpOverload opSub opSub_r opMul opDiv opDiv_r opMod
syn keyword dOpOverload opMod_r opAnd opOr opXor opShl opShl_r opShr syn keyword dOpOverload opMod_r opAnd opOr opXor opShl opShl_r opShr
syn keyword dOpOverload opShr_r opUShr opUShr_r opCat syn keyword dOpOverload opShr_r opUShr opUShr_r opCat
syn keyword dOpOverload opCat_r opEquals opEquals opCmp syn keyword dOpOverload opCat_r opEquals opCmp
syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign
syn keyword dOpOverload opDivAssign opModAssign opAndAssign syn keyword dOpOverload opDivAssign opModAssign opAndAssign
syn keyword dOpOverload opOrAssign opXorAssign opShlAssign syn keyword dOpOverload opOrAssign opXorAssign opShlAssign
@ -73,7 +76,7 @@ if exists("d_hl_operator_overload")
endif endif
syn keyword dType byte ubyte short ushort int uint long ulong cent ucent syn keyword dType byte ubyte short ushort int uint long ulong cent ucent
syn keyword dType void bool bit syn keyword dType void bool Object
syn keyword dType float double real syn keyword dType float double real
syn keyword dType ushort int uint long ulong float syn keyword dType ushort int uint long ulong float
syn keyword dType char wchar dchar string wstring dstring syn keyword dType char wchar dchar string wstring dstring
@ -94,22 +97,31 @@ syn keyword dDebug deprecated unittest invariant
syn keyword dExceptions throw try catch finally syn keyword dExceptions throw try catch finally
syn keyword dScopeDecl public protected private export package syn keyword dScopeDecl public protected private export package
syn keyword dStatement debug return with syn keyword dStatement debug return with
syn keyword dStatement function delegate __ctfe mixin macro syn keyword dStatement function delegate __ctfe mixin macro __simd
syn keyword dStorageClass in out inout ref lazy body syn keyword dStatement in out body
syn keyword dStorageClass pure nothrow syn keyword dStorageClass contained in out scope
syn keyword dStorageClass inout ref lazy pure nothrow
syn keyword dStorageClass auto static override final abstract volatile syn keyword dStorageClass auto static override final abstract volatile
syn keyword dStorageClass __gshared __thread syn keyword dStorageClass __gshared __vector
syn keyword dStorageClass synchronized shared immutable const lazy syn keyword dStorageClass synchronized shared immutable const lazy
syn keyword dPragma pragma syn keyword dIdentifier _arguments _argptr __vptr __monitor
syn keyword dIdentifier _arguments _argptr __vptr __monitor _ctor _dtor syn keyword dIdentifier _ctor _dtor __argTypes __overloadset
syn keyword dScopeIdentifier contained exit success failure syn keyword dScopeIdentifier contained exit success failure
syn keyword dTraitsIdentifier contained isAbstractClass isArithmetic isAssociativeArray syn keyword dTraitsIdentifier contained isAbstractClass isArithmetic
syn keyword dTraitsIdentifier contained isFinalClass isFloating isIntegral isScalar syn keyword dTraitsIdentifier contained isAssociativeArray isFinalClass
syn keyword dTraitsIdentifier contained isStaticArray isUnsigned isVirtualFunction syn keyword dTraitsIdentifier contained isPOD isNested isFloating
syn keyword dTraitsIdentifier contained isAbstractFunction isFinalFunction isStaticFunction syn keyword dTraitsIdentifier contained isIntegral isScalar isStaticArray
syn keyword dTraitsIdentifier contained isRef isOut isLazy hasMember identifier getMember syn keyword dTraitsIdentifier contained isUnsigned isVirtualFunction
syn keyword dTraitsIdentifier contained getOverloads getVirtualFunctions parent compiles syn keyword dTraitsIdentifier contained isVirtualMethod isAbstractFunction
syn keyword dTraitsIdentifier contained classInstanceSize allMembers derivedMembers isSame syn keyword dTraitsIdentifier contained isFinalFunction isStaticFunction
syn keyword dTraitsIdentifier contained isRef isOut isLazy hasMember
syn keyword dTraitsIdentifier contained identifier getAttributes getMember
syn keyword dTraitsIdentifier contained getOverloads getProtection
syn keyword dTraitsIdentifier contained getVirtualFunctions
syn keyword dTraitsIdentifier contained getVirtualMethods parent
syn keyword dTraitsIdentifier contained classInstanceSize allMembers
syn keyword dTraitsIdentifier contained derivedMembers isSame compiles
syn keyword dPragmaIdentifier contained lib msg startaddress GNU_asm
syn keyword dExternIdentifier contained Windows Pascal Java System D syn keyword dExternIdentifier contained Windows Pascal Java System D
syn keyword dAttribute contained safe trusted system syn keyword dAttribute contained safe trusted system
syn keyword dAttribute contained property disable syn keyword dAttribute contained property disable
@ -124,6 +136,8 @@ syn keyword dVersionIdentifier contained D_InlineAsm_X86 D_InlineAsm_X86_64
syn keyword dVersionIdentifier contained D_Version2 D_Coverage D_Ddoc D_LP64 D_PIC syn keyword dVersionIdentifier contained D_Version2 D_Coverage D_Ddoc D_LP64 D_PIC
syn keyword dVersionIdentifier contained unittest none all syn keyword dVersionIdentifier contained unittest none all
syn cluster dComment contains=dNestedComment,dBlockComment,dLineComment
" Highlight the sharpbang " Highlight the sharpbang
syn match dSharpBang "\%^#!.*" display syn match dSharpBang "\%^#!.*" display
@ -131,45 +145,42 @@ syn match dSharpBang "\%^#!.*" display
syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute
" Version Identifiers " Version Identifiers
syn match dVersion "[^.]\<version\>"hs=s+1 nextgroup=dVersionInside syn match dVersion "\<version\>"
syn match dVersion "^\<version\>" nextgroup=dVersionInside syn match dVersion "\<version\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier
syn match dVersionInside "\s*([_a-zA-Z][_a-zA-Z0-9]*\>" transparent contained contains=dVersionIdentifier
" Scope StorageClass
syn match dStorageClass "\<scope\>"
" Traits Expression
syn match dStatement "\<__traits\>"
" Extern Modifier
syn match dExternal "\<extern\>"
" Scope Identifiers " Scope Identifiers
syn match dScope "\<scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier syn match dStatement "\<scope\>"
syn match dStatement "\<scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier
" Traits Identifiers " Traits Statement
syn match dTraits "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dTraitsIdentifier syn match dStatement "\<__traits\>"
syn match dStatement "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dTraitsIdentifier
" Pragma Statement
syn match dPragma "\<pragma\>"
syn match dPragma "\<pragma\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dPragmaIdentifier
" Necessary to highlight C++ in extern modifiers. " Necessary to highlight C++ in extern modifiers.
syn match dExternIdentifier "C\(++\)\?" contained syn match dExternIdentifier "C\(++\)\?" contained
" Extern Identifiers " Extern Identifiers
syn match dExternal "\<extern\>"
syn match dExtern "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier syn match dExtern "\<extern\s*([_a-zA-Z][_a-zA-Z0-9\+]*\>"he=s+6 contains=dExternIdentifier
" String is a statement and a module name. " Make import a region to prevent highlighting keywords
syn match dType "[^.]\<string\>"ms=s+1 syn region dImport start="import" end=";" contains=dExternal,@dComment
syn match dType "^\<string\>"
" Assert is a statement and a module name. " Make module a region to prevent highlighting keywords
syn match dAssert "[^.]\<assert\>"ms=s+1 syn region dImport start="module" end=";" contains=dExternal,@dComment
syn match dAssert "^\<assert\>"
" dTokens is used by the token string highlighting " dTokens is used by the token string highlighting
syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean
syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload
syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation,dEnum
" Create a match for parameter lists to identify storage class
syn region paramlist start="(" end=")" contains=@dTokens
" Labels " Labels
" "
@ -358,146 +369,192 @@ hi def link dLineComment Comment
hi def link dBlockComment Comment hi def link dBlockComment Comment
hi def link dNestedComment Comment hi def link dNestedComment Comment
hi def link dExternal Include hi def link dExternal Include
hi def link dPragma PreProc
hi def link dAnnotation PreProc hi def link dAnnotation PreProc
hi def link dSharpBang PreProc hi def link dSharpBang PreProc
hi def link dAttribute StorageClass hi def link dAttribute StorageClass
hi def link dIdentifier Identifier hi def link dIdentifier Identifier
hi def link dVersion dStatement hi def link dVersion dStatement
hi def link dVersionIdentifier Identifier hi def link dVersionIdentifier Identifier
hi def link dScope dStorageClass
hi def link dScopeIdentifier Identifier hi def link dScopeIdentifier Identifier
hi def link dTraits dStatement
hi def link dTraitsIdentifier Identifier hi def link dTraitsIdentifier Identifier
hi def link dPragma PreProc
hi def link dPragmaIdentifier Identifier
hi def link dExtern dExternal hi def link dExtern dExternal
hi def link dExternIdentifier Identifier hi def link dExternIdentifier Identifier
" Marks contents of the asm statment body as special " Marks contents of the asm statment body as special
syn match dAsmStatement "\<asm\>" syn match dAsmStatement "\<asm\>"
syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode,@dComment,DUserLabel
hi def link dAsmBody dUnicode hi def link dAsmBody dUnicode
hi def link dAsmStatement dStatement hi def link dAsmStatement dStatement
hi def link dAsmOpCode Identifier hi def link dAsmOpCode Identifier
syn keyword dAsmOpCode contained aaa aad aam aas adc syn keyword dAsmOpCode contained aaa aad aam aas
syn keyword dAsmOpCode contained add addpd addps addsd addss syn keyword dAsmOpCode contained add addpd addps addsd
syn keyword dAsmOpCode contained and andnpd andnps andpd andps syn keyword dAsmOpCode contained and andnpd andnps andpd
syn keyword dAsmOpCode contained arpl bound bsf bsr bswap syn keyword dAsmOpCode contained arpl bound bsf bsr
syn keyword dAsmOpCode contained bt btc btr bts call syn keyword dAsmOpCode contained bt btc btr bts
syn keyword dAsmOpCode contained cbw cdq clc cld clflush syn keyword dAsmOpCode contained call bswap andps addss
syn keyword dAsmOpCode contained cli clts cmc cmova cmovae syn keyword dAsmOpCode contained cbw cdq clc cld
syn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove cmovg syn keyword dAsmOpCode contained cli clts cmc cmova
syn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna cmovnae syn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove
syn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne cmovng syn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna
syn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno cmovnp syn keyword dAsmOpCode contained cmovnae cmovg cmovae clflush
syn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp cmovpe syn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne
syn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp cmppd syn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno
syn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd cmpss syn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp
syn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd comiss syn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp
syn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi syn keyword dAsmOpCode contained cmppd cmovpe cmovnp cmovng
syn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd syn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd
syn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd cvtsi2ss syn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd
syn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi cvttps2dq syn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq
syn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd cwde syn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq
syn keyword dAsmOpCode contained da daa das db dd syn keyword dAsmOpCode contained cvtps2pd cvtpd2pi comiss cmpss
syn keyword dAsmOpCode contained de dec df di div syn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd
syn keyword dAsmOpCode contained divpd divps divsd divss dl syn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi
syn keyword dAsmOpCode contained dq ds dt dw emms syn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd
syn keyword dAsmOpCode contained enter f2xm1 fabs fadd faddp syn keyword dAsmOpCode contained da daa das db
syn keyword dAsmOpCode contained fbld fbstp fchs fclex fcmovb syn keyword dAsmOpCode contained dd cwde cvttps2dq cvtsi2ss
syn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe fcmovne syn keyword dAsmOpCode contained de dec df di
syn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi fcomip syn keyword dAsmOpCode contained divpd divps divsd divss
syn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp fdisi syn keyword dAsmOpCode contained dq ds dt dw
syn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp feni syn keyword dAsmOpCode contained enter f2xm1 fabs fadd
syn keyword dAsmOpCode contained ffree fiadd ficom ficomp fidiv syn keyword dAsmOpCode contained faddp emms dl div
syn keyword dAsmOpCode contained fidivr fild fimul fincstp finit syn keyword dAsmOpCode contained fbld fbstp fchs fclex
syn keyword dAsmOpCode contained fist fistp fisub fisubr fld syn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe
syn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e fldl2t syn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi
syn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz fmul syn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp
syn keyword dAsmOpCode contained fmulp fnclex fndisi fneni fninit syn keyword dAsmOpCode contained fdisi fcomip fcmovne fcmovb
syn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv fnstsw syn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp
syn keyword dAsmOpCode contained fpatan fprem fprem1 fptan frndint syn keyword dAsmOpCode contained ffree fiadd ficom ficomp
syn keyword dAsmOpCode contained frstor fsave fscale fsetpm fsin syn keyword dAsmOpCode contained fidivr fild fimul fincstp
syn keyword dAsmOpCode contained fsincos fsqrt fst fstcw fstenv syn keyword dAsmOpCode contained fist fistp fisub fisubr
syn keyword dAsmOpCode contained fstp fstsw fsub fsubp fsubr syn keyword dAsmOpCode contained fld finit fidiv feni
syn keyword dAsmOpCode contained fsubrp ftst fucom fucomi fucomip syn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e
syn keyword dAsmOpCode contained fucomp fucompp fwait fxam fxch syn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz
syn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x fyl2xp1 syn keyword dAsmOpCode contained fmulp fnclex fndisi fneni
syn keyword dAsmOpCode contained hlt idiv imul in inc syn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv
syn keyword dAsmOpCode contained ins insb insd insw int syn keyword dAsmOpCode contained fnstsw fninit fmul fldl2t
syn keyword dAsmOpCode contained into invd invlpg iret iretd syn keyword dAsmOpCode contained fpatan fprem fprem1 fptan
syn keyword dAsmOpCode contained ja jae jb jbe jc syn keyword dAsmOpCode contained frstor fsave fscale fsetpm
syn keyword dAsmOpCode contained jcxz je jecxz jg jge syn keyword dAsmOpCode contained fsincos fsqrt fst fstcw
syn keyword dAsmOpCode contained jl jle jmp jna jnae syn keyword dAsmOpCode contained fstp fstsw fsub fsubp
syn keyword dAsmOpCode contained jnb jnbe jnc jne jng syn keyword dAsmOpCode contained fsubr fstenv fsin frndint
syn keyword dAsmOpCode contained jnge jnl jnle jno jnp syn keyword dAsmOpCode contained fsubrp ftst fucom fucomi
syn keyword dAsmOpCode contained jns jnz jo jp jpe syn keyword dAsmOpCode contained fucomp fucompp fwait fxam
syn keyword dAsmOpCode contained jpo js jz lahf lar syn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x
syn keyword dAsmOpCode contained ldmxcsr lds lea leave les syn keyword dAsmOpCode contained hlt idiv imul in
syn keyword dAsmOpCode contained lfence lfs lgdt lgs lidt syn keyword dAsmOpCode contained inc fyl2xp1 fxch fucomip
syn keyword dAsmOpCode contained lldt lmsw lock lods lodsb syn keyword dAsmOpCode contained ins insb insd insw
syn keyword dAsmOpCode contained lodsd lodsw loop loope loopne syn keyword dAsmOpCode contained into invd invlpg iret
syn keyword dAsmOpCode contained loopnz loopz lsl lss ltr syn keyword dAsmOpCode contained ja jae jb jbe
syn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps maxsd syn keyword dAsmOpCode contained jcxz je jecxz jg
syn keyword dAsmOpCode contained maxss mfence minpd minps minsd syn keyword dAsmOpCode contained jge jc iretd int
syn keyword dAsmOpCode contained minss mov movapd movaps movd syn keyword dAsmOpCode contained jl jle jmp jna
syn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps movhpd syn keyword dAsmOpCode contained jnb jnbe jnc jne
syn keyword dAsmOpCode contained movhps movlhps movlpd movlps movmskpd syn keyword dAsmOpCode contained jnge jnl jnle jno
syn keyword dAsmOpCode contained movmskps movntdq movnti movntpd movntps syn keyword dAsmOpCode contained jns jnz jo jp
syn keyword dAsmOpCode contained movntq movq movq2dq movs movsb syn keyword dAsmOpCode contained jpe jnp jng jnae
syn keyword dAsmOpCode contained movsd movss movsw movsx movupd syn keyword dAsmOpCode contained jpo js jz lahf
syn keyword dAsmOpCode contained movups movzx mul mulpd mulps syn keyword dAsmOpCode contained ldmxcsr lds lea leave
syn keyword dAsmOpCode contained mulsd mulss neg nop not syn keyword dAsmOpCode contained lfence lfs lgdt lgs
syn keyword dAsmOpCode contained or orpd orps out outs syn keyword dAsmOpCode contained lldt lmsw lock lods
syn keyword dAsmOpCode contained outsb outsd outsw packssdw packsswb syn keyword dAsmOpCode contained lodsb lidt les lar
syn keyword dAsmOpCode contained packuswb paddb paddd paddq paddsb syn keyword dAsmOpCode contained lodsd lodsw loop loope
syn keyword dAsmOpCode contained paddsw paddusb paddusw paddw pand syn keyword dAsmOpCode contained loopnz loopz lsl lss
syn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb pcmpeqd syn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps
syn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw pextrw syn keyword dAsmOpCode contained maxss mfence minpd minps
syn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub pminsw syn keyword dAsmOpCode contained minsd maxsd ltr loopne
syn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw pmullw syn keyword dAsmOpCode contained minss mov movapd movaps
syn keyword dAsmOpCode contained pmuludq pop popa popad popf syn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps
syn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0 prefetcht1 syn keyword dAsmOpCode contained movhps movlhps movlpd movlps
syn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw pshuflw syn keyword dAsmOpCode contained movmskps movntdq movnti movntpd
syn keyword dAsmOpCode contained pshufw pslld pslldq psllq psllw syn keyword dAsmOpCode contained movntps movmskpd movhpd movd
syn keyword dAsmOpCode contained psrad psraw psrld psrldq psrlq syn keyword dAsmOpCode contained movntq movq movq2dq movs
syn keyword dAsmOpCode contained psrlw psubb psubd psubq psubsb syn keyword dAsmOpCode contained movsd movss movsw movsx
syn keyword dAsmOpCode contained psubsw psubusb psubusw psubw punpckhbw syn keyword dAsmOpCode contained movups movzx mul mulpd
syn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw punpckldq syn keyword dAsmOpCode contained mulsd mulss neg nop
syn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha pushad syn keyword dAsmOpCode contained not mulps movupd movsb
syn keyword dAsmOpCode contained pushf pushfd pxor rcl rcpps syn keyword dAsmOpCode contained or orpd orps out
syn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc rdtsc syn keyword dAsmOpCode contained outsb outsd outsw packssdw
syn keyword dAsmOpCode contained rep repe repne repnz repz syn keyword dAsmOpCode contained packuswb paddb paddd paddq
syn keyword dAsmOpCode contained ret retf rol ror rsm syn keyword dAsmOpCode contained paddsw paddusb paddusw paddw
syn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal sar syn keyword dAsmOpCode contained pand paddsb packsswb outs
syn keyword dAsmOpCode contained sbb scas scasb scasd scasw syn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb
syn keyword dAsmOpCode contained seta setae setb setbe setc syn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw
syn keyword dAsmOpCode contained sete setg setge setl setle syn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub
syn keyword dAsmOpCode contained setna setnae setnb setnbe setnc syn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw
syn keyword dAsmOpCode contained setne setng setnge setnl setnle syn keyword dAsmOpCode contained pmullw pminsw pextrw pcmpeqd
syn keyword dAsmOpCode contained setno setnp setns setnz seto syn keyword dAsmOpCode contained pmuludq pop popa popad
syn keyword dAsmOpCode contained setp setpe setpo sets setz syn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0
syn keyword dAsmOpCode contained sfence sgdt shl shld shr syn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw
syn keyword dAsmOpCode contained shrd shufpd shufps sidt sldt syn keyword dAsmOpCode contained pshufw pslld pslldq psllq
syn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd sqrtss syn keyword dAsmOpCode contained psllw pshuflw prefetcht1 popf
syn keyword dAsmOpCode contained stc std sti stmxcsr stos syn keyword dAsmOpCode contained psrad psraw psrld psrldq
syn keyword dAsmOpCode contained stosb stosd stosw str sub syn keyword dAsmOpCode contained psrlw psubb psubd psubq
syn keyword dAsmOpCode contained subpd subps subsd subss sysenter syn keyword dAsmOpCode contained psubsw psubusb psubusw psubw
syn keyword dAsmOpCode contained sysexit test ucomisd ucomiss ud2 syn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw
syn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps verr syn keyword dAsmOpCode contained punpckldq punpckhbw psubsb psrlq
syn keyword dAsmOpCode contained verw wait wbinvd wrmsr xadd syn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha
syn keyword dAsmOpCode contained xchg xlat xlatb xor xorpd syn keyword dAsmOpCode contained pushf pushfd pxor rcl
syn keyword dAsmOpCode contained xorps syn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc
syn keyword dAsmOpCode contained addsubpd addsubps fisttp haddpd haddps syn keyword dAsmOpCode contained rep repe repne repnz
syn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor movddup syn keyword dAsmOpCode contained repz rdtsc rcpps pushad
syn keyword dAsmOpCode contained movshdup movsldup mwait syn keyword dAsmOpCode contained ret retf rol ror
syn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd pfcmpeq syn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal
syn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmin pfmul syn keyword dAsmOpCode contained sbb scas scasb scasd
syn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1 pfrcpit2 syn keyword dAsmOpCode contained seta setae setb setbe
syn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr pi2fd syn keyword dAsmOpCode contained setc scasw sar rsm
syn keyword dAsmOpCode contained pmulhrw pswapd syn keyword dAsmOpCode contained sete setg setge setl
syn keyword dAsmOpCode contained setna setnae setnb setnbe
syn keyword dAsmOpCode contained setne setng setnge setnl
syn keyword dAsmOpCode contained setno setnp setns setnz
syn keyword dAsmOpCode contained seto setnle setnc setle
syn keyword dAsmOpCode contained setp setpe setpo sets
syn keyword dAsmOpCode contained sfence sgdt shl shld
syn keyword dAsmOpCode contained shrd shufpd shufps sidt
syn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd
syn keyword dAsmOpCode contained sqrtss sldt shr setz
syn keyword dAsmOpCode contained stc std sti stmxcsr
syn keyword dAsmOpCode contained stosb stosd stosw str
syn keyword dAsmOpCode contained subpd subps subsd subss
syn keyword dAsmOpCode contained sysexit test ucomisd ucomiss
syn keyword dAsmOpCode contained ud2 sysenter sub stos
syn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps
syn keyword dAsmOpCode contained verw wbinvd wrmsr xadd
syn keyword dAsmOpCode contained xchg xlatb xor xorpd
syn keyword dAsmOpCode contained xorps pfrcpit1 pfmin movddup
syn keyword dAsmOpCode contained addsubpd addsubps fisttp haddps
syn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor
syn keyword dAsmOpCode contained haddpd xlat wait verr
syn keyword dAsmOpCode contained movshdup movsldup mwait pfcmpeq
syn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd
syn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmul
syn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1
syn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr
syn keyword dAsmOpCode contained pmulhrw pswapd syscall sysret
syn keyword dAsmOpCode contained vpmuldq xgetbv cmpxchg8b cmpxchg16b
syn keyword dAsmOpCode contained pabsb pabsd pabsw palignr
syn keyword dAsmOpCode contained phaddd phaddsw phaddw phsubd
syn keyword dAsmOpCode contained phsubsw phsubw pmaddubsw pmulhrsw
syn keyword dAsmOpCode contained pshufb psignb psignd psignw
syn keyword dAsmOpCode contained popfq pushfq blendpd blendps
syn keyword dAsmOpCode contained blendvpd blendvps extractps insertps
syn keyword dAsmOpCode contained movntdqa mpsadbw packusdw pblendvb
syn keyword dAsmOpCode contained pblendw pcmpeqq pextrb pextrd
syn keyword dAsmOpCode contained pextrq phminposuw pinsrb pinsrd
syn keyword dAsmOpCode contained pinsrq pmaxsb pmaxsd pmaxud
syn keyword dAsmOpCode contained pmaxuw pminsb pminsd pminud
syn keyword dAsmOpCode contained pminuw pmulld ptest roundpd
syn keyword dAsmOpCode contained roundps roundsd roundss pmuldq
syn keyword dAsmOpCode contained pmovsxbd pmovsxdq pmovzxbq pmovzxdq
syn keyword dAsmOpCode contained pmovsxbq pmovsxwd pmovzxbq pmovzxwd
syn keyword dAsmOpCode contained pmovsxbw pmovsxwq pmovzxbw pmovzxwq
syn keyword dAsmOpCode contained crc32 pcmpestri pcmpestrm pcmpgtq
syn keyword dAsmOpCode contained pcmpistri pcmpistrm popcnt pi2fd
syn keyword dAsmOpCode contained adc
let &cpo = s:cpo_save let &cpo = s:cpo_save
unlet s:cpo_save unlet s:cpo_save

View File

@ -2,7 +2,7 @@
" Language: git commit file " Language: git commit file
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.git/COMMIT_EDITMSG " Filenames: *.git/COMMIT_EDITMSG
" Last Change: 2012 April 7 " Last Change: 2013 May 30
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish

View File

@ -2,7 +2,7 @@
" Language: git rebase --interactive " Language: git rebase --interactive
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: git-rebase-todo " Filenames: git-rebase-todo
" Last Change: 2012 April 7 " Last Change: 2013 May 30
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish

69
runtime/syntax/gprof.vim Normal file
View File

@ -0,0 +1,69 @@
" Vim syntax file
" Language: Syntax for Gprof Output
" Maintainer: Dominique Pelle <dominique.pelle@gmail.com>
" Last Change: 2012 May 20
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
syn case match
syn sync minlines=100
" Flat profile
syn match gprofFlatProfileTitle
\ "^Flat profile:$"
syn region gprofFlatProfileHeader
\ start="^Each sample counts as.*"
\ end="^ time.*name\s*$"
syn region gprofFlatProfileTrailer
\ start="^\s*%\s\+the percentage of the total running time.*"
\ end="^\s*the gprof listing if it were to be printed\."
" Call graph
syn match gprofCallGraphTitle "Call graph (explanation follows)"
syn region gprofCallGraphHeader
\ start="^granularity: each sample hit covers.*"
\ end="^\s*index % time\s\+self\s\+children\s\+called\s\+name$"
syn match gprofCallGraphFunction "\s\+\(\d\+\.\d\+\s\+\)\{3}\([0-9+]\+\)\?\s\+[a-zA-Z_<].*\ze\["
syn match gprofCallGraphSeparator "^-\+$"
syn region gprofCallGraphTrailer
\ start="This table describes the call tree of the program"
\ end="^\s*the cycle.$"
" Index
syn region gprofIndex
\ start="^Index by function name$"
\ end="\%$"
syn match gprofIndexFunctionTitle "^Index by function name$"
syn match gprofNumbers "^\s\+[0-9 ./+]\+"
syn match gprofFunctionIndex "\[\d\+\]"
syn match gprofSpecial "<\(spontaneous\|cycle \d\+\)>"
hi def link gprofFlatProfileTitle Title
hi def link gprofFlatProfileHeader Comment
hi def link gprofFlatProfileFunction Number
hi def link gprofFlatProfileTrailer Comment
hi def link gprofCallGraphTitle Title
hi def link gprofCallGraphHeader Comment
hi def link gprofFlatProfileFunction Number
hi def link gprofCallGraphFunction Special
hi def link gprofCallGraphTrailer Comment
hi def link gprofCallGraphSeparator Label
hi def link gprofFunctionIndex Label
hi def link gprofSpecial SpecialKey
hi def link gprofNumbers Number
hi def link gprofIndexFunctionTitle Title
let b:current_syntax = "gprof"
let &cpo = s:keepcpo
unlet s:keepcpo

View File

@ -2,7 +2,7 @@
" Language: Liquid " Language: Liquid
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.liquid " Filenames: *.liquid
" Last Change: 2010 May 21 " Last Change: 2013 May 30
if exists('b:current_syntax') if exists('b:current_syntax')
finish finish
@ -71,8 +71,9 @@ endif
syn region liquidStatement matchgroup=liquidDelimiter start="{%" end="%}" contains=@liquidStatement containedin=ALLBUT,@liquidExempt keepend syn region liquidStatement matchgroup=liquidDelimiter start="{%" end="%}" contains=@liquidStatement containedin=ALLBUT,@liquidExempt keepend
syn region liquidExpression matchgroup=liquidDelimiter start="{{" end="}}" contains=@liquidExpression containedin=ALLBUT,@liquidExempt keepend syn region liquidExpression matchgroup=liquidDelimiter start="{{" end="}}" contains=@liquidExpression containedin=ALLBUT,@liquidExempt keepend
syn region liquidComment matchgroup=liquidDelimiter start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=liquidTodo,@Spell containedin=ALLBUT,@liquidExempt keepend syn region liquidComment matchgroup=liquidDelimiter start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=liquidTodo,@Spell containedin=ALLBUT,@liquidExempt keepend
syn region liquidRaw matchgroup=liquidDelimiter start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" contains=TOP,@liquidExempt containedin=ALLBUT,@liquidExempt keepend
syn cluster liquidExempt contains=liquidStatement,liquidExpression,liquidComment,@liquidStatement,liquidYamlHead syn cluster liquidExempt contains=liquidStatement,liquidExpression,liquidComment,liquidRaw,@liquidStatement,liquidYamlHead
syn cluster liquidStatement contains=liquidConditional,liquidRepeat,liquidKeyword,@liquidExpression syn cluster liquidStatement contains=liquidConditional,liquidRepeat,liquidKeyword,@liquidExpression
syn cluster liquidExpression contains=liquidOperator,liquidString,liquidNumber,liquidFloat,liquidBoolean,liquidNull,liquidEmpty,liquidPipe,liquidForloop syn cluster liquidExpression contains=liquidOperator,liquidString,liquidNumber,liquidFloat,liquidBoolean,liquidNull,liquidEmpty,liquidPipe,liquidForloop

View File

@ -2,50 +2,66 @@
" Language: Markdown " Language: Markdown
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.markdown " Filenames: *.markdown
" Last Change: 2010 May 21 " Last Change: 2013 May 30
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
endif endif
if !exists('main_syntax')
let main_syntax = 'markdown'
endif
runtime! syntax/html.vim runtime! syntax/html.vim
unlet! b:current_syntax unlet! b:current_syntax
if !exists('g:markdown_fenced_languages')
let g:markdown_fenced_languages = []
endif
for s:type in map(copy(g:markdown_fenced_languages),'matchstr(v:val,"[^=]*$")')
if s:type =~ '\.'
let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*')
endif
exe 'syn include @markdownHighlight'.substitute(s:type,'\.','','g').' syntax/'.matchstr(s:type,'[^.]*').'.vim'
unlet! b:current_syntax
endfor
unlet! s:type
syn sync minlines=10 syn sync minlines=10
syn case ignore syn case ignore
syn match markdownValid '[<>]\S\@!' syn match markdownValid '[<>]\c[a-z/$!]\@!'
syn match markdownValid '&\%(#\=\w*;\)\@!' syn match markdownValid '&\%(#\=\w*;\)\@!'
syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock,htmlSpecialChar
syn cluster markdownBlock contains=markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6,markdownBlockquote,markdownListMarker,markdownOrderedListMarker,markdownCodeBlock,markdownRule syn cluster markdownBlock contains=markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6,markdownBlockquote,markdownListMarker,markdownOrderedListMarker,markdownCodeBlock,markdownRule
syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop,markdownError
syn match markdownH1 ".\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule syn match markdownH1 "^.\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink
syn match markdownH2 ".\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule syn match markdownH2 "^.\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink
syn match markdownHeadingRule "^[=-]\+$" contained syn match markdownHeadingRule "^[=-]\+$" contained
syn region markdownH1 matchgroup=markdownHeadingDelimiter start="##\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained syn region markdownH1 matchgroup=markdownHeadingDelimiter start="##\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH2 matchgroup=markdownHeadingDelimiter start="###\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained syn region markdownH2 matchgroup=markdownHeadingDelimiter start="###\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH3 matchgroup=markdownHeadingDelimiter start="####\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained syn region markdownH3 matchgroup=markdownHeadingDelimiter start="####\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH4 matchgroup=markdownHeadingDelimiter start="#####\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained syn region markdownH4 matchgroup=markdownHeadingDelimiter start="#####\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH5 matchgroup=markdownHeadingDelimiter start="######\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained syn region markdownH5 matchgroup=markdownHeadingDelimiter start="######\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn region markdownH6 matchgroup=markdownHeadingDelimiter start="#######\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained syn region markdownH6 matchgroup=markdownHeadingDelimiter start="#######\@!" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained
syn match markdownBlockquote ">\s" contained nextgroup=@markdownBlock syn match markdownBlockquote ">\%(\s\|$\)" contained nextgroup=@markdownBlock
syn region markdownCodeBlock start=" \|\t" end="$" contained syn region markdownCodeBlock start=" \|\t" end="$" contained
" TODO: real nesting " TODO: real nesting
syn match markdownListMarker " \{0,4\}[-*+]\%(\s\+\S\)\@=" contained syn match markdownListMarker "\%(\t\| \{0,4\}\)[-*+]\%(\s\+\S\)\@=" contained
syn match markdownOrderedListMarker " \{0,4}\<\d\+\.\%(\s*\S\)\@=" contained syn match markdownOrderedListMarker "\%(\t\| \{0,4}\)\<\d\+\.\%(\s\+\S\)\@=" contained
syn match markdownRule "\* *\* *\*[ *]*$" contained syn match markdownRule "\* *\* *\*[ *]*$" contained
syn match markdownRule "- *- *-[ -]*$" contained syn match markdownRule "- *- *-[ -]*$" contained
syn match markdownLineBreak "\s\{2,\}$" syn match markdownLineBreak " \{2,\}$"
syn region markdownIdDeclaration matchgroup=markdownLinkDelimiter start="^ \{0,3\}!\=\[" end="\]:" oneline keepend nextgroup=markdownUrl skipwhite syn region markdownIdDeclaration matchgroup=markdownLinkDelimiter start="^ \{0,3\}!\=\[" end="\]:" oneline keepend nextgroup=markdownUrl skipwhite
syn match markdownUrl "\S\+" nextgroup=markdownUrlTitle skipwhite contained syn match markdownUrl "\S\+" nextgroup=markdownUrlTitle skipwhite contained
@ -61,14 +77,23 @@ syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+
syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart
syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart
syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart,markdownItalic
syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart,markdownItalic
syn region markdownBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart syn region markdownBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart
syn region markdownBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart syn region markdownBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" transparent keepend contains=markdownLineStart syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart
syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*```.*$" end="^\s*```\ze\s*$" keepend
if main_syntax ==# 'markdown'
for s:type in g:markdown_fenced_languages
exe 'syn region markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*```'.matchstr(s:type,'[^=]*').'\>.*$" end="^\s*```\ze\s*$" keepend contains=@markdownHighlight'.substitute(matchstr(s:type,'[^=]*$'),'\.','','g')
endfor
unlet! s:type
endif
syn match markdownEscape "\\[][\\`*_{}()#+.!-]" syn match markdownEscape "\\[][\\`*_{}()#+.!-]"
syn match markdownError "\w\@<=_\w\@="
hi def link markdownH1 htmlH1 hi def link markdownH1 htmlH1
hi def link markdownH2 htmlH2 hi def link markdownH2 htmlH2
@ -99,7 +124,11 @@ hi def link markdownBoldItalic htmlBoldItalic
hi def link markdownCodeDelimiter Delimiter hi def link markdownCodeDelimiter Delimiter
hi def link markdownEscape Special hi def link markdownEscape Special
hi def link markdownError Error
let b:current_syntax = "markdown" let b:current_syntax = "markdown"
if main_syntax ==# 'markdown'
unlet main_syntax
endif
" vim:set sw=2: " vim:set sw=2:

View File

@ -1,22 +1,24 @@
" Vim syntax file " Vim syntax file
" Language: Perl 5 " Language: Perl 5
" Maintainer: Andy Lester <andy@petdance.com> " Maintainer: vim-perl <vim-perl@googlegroups.com>
" URL: http://github.com/petdance/vim-perl/tree/master " Homepage: http://github.com/vim-perl/vim-perl/tree/master
" Last Change: 2010-08-10 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-11
" Contributors: Andy Lester <andy@petdance.com> " Contributors: Andy Lester <andy@petdance.com>
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com> " Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
" Lukas Mai <l.mai.web.de> " Lukas Mai <l.mai.web.de>
" Nick Hibma <nick@van-laarhoven.org> " Nick Hibma <nick@van-laarhoven.org>
" Sonia Heimann <niania@netsurf.org> " Sonia Heimann <niania@netsurf.org>
" Rob Hoelz <rob@hoelz.ro>
" and many others. " and many others.
" "
" Please download most recent version first before mailing " Please download the most recent version first, before mailing
" any comments. " any comments.
" "
" The following parameters are available for tuning the " The following parameters are available for tuning the
" perl syntax highlighting, with defaults given: " perl syntax highlighting, with defaults given:
" "
" unlet perl_include_pod " let perl_include_pod = 1
" unlet perl_no_scope_in_variables " unlet perl_no_scope_in_variables
" unlet perl_no_extended_vars " unlet perl_no_extended_vars
" unlet perl_string_as_statement " unlet perl_string_as_statement
@ -27,21 +29,29 @@
" unlet perl_fold_blocks " unlet perl_fold_blocks
" let perl_nofold_packages = 1 " let perl_nofold_packages = 1
" let perl_nofold_subs = 1 " let perl_nofold_subs = 1
" unlet perl_fold_anonymous_subs
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
endif endif
let s:cpo_save = &cpo
set cpo&vim
if exists('&regexpengine')
let s:regexpengine=&regexpengine
set regexpengine=1
endif
" POD starts with ^=<word> and ends with ^=cut " POD starts with ^=<word> and ends with ^=cut
if exists("perl_include_pod") if !exists("perl_include_pod") || perl_include_pod == 1
" Include a while extra syntax file " Include a while extra syntax file
syn include @Pod syntax/pod.vim syn include @Pod syntax/pod.vim
unlet b:current_syntax unlet b:current_syntax
if exists("perl_fold") if exists("perl_fold")
syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold extend
syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold extend
else else
syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend
syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend
@ -63,10 +73,13 @@ syn region perlGenericBlock matchgroup=perlGenericBlock start="{" end="}" conta
" All keywords " All keywords
" "
syn match perlConditional "\<\%(if\|elsif\|unless\|given\|when\|default\)\>" syn match perlConditional "\<\%(if\|elsif\|unless\|given\|when\|default\)\>"
syn match perlConditional "\<else\>" nextgroup=perlElseIfError skipwhite skipnl skipempty syn match perlConditional "\<else\%(\%(\_s\*if\>\)\|\>\)" contains=perlElseIfError skipwhite skipnl skipempty
syn match perlRepeat "\<\%(while\|for\%(each\)\=\|do\|until\|continue\)\>" syn match perlRepeat "\<\%(while\|for\%(each\)\=\|do\|until\|continue\)\>"
syn match perlOperator "\<\%(defined\|undef\|eq\|ne\|[gl][et]\|cmp\|not\|and\|or\|xor\|not\|bless\|ref\|do\)\>" syn match perlOperator "\<\%(defined\|undef\|eq\|ne\|[gl][et]\|cmp\|not\|and\|or\|xor\|not\|bless\|ref\|do\)\>"
syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>" " for some reason, adding this as the nextgroup for perlControl fixes BEGIN
" folding issues...
syn match perlFakeGroup "" contained
syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*" nextgroup=perlFakeGroup
syn match perlStatementStorage "\<\%(my\|our\|local\|state\)\>" syn match perlStatementStorage "\<\%(my\|our\|local\|state\)\>"
syn match perlStatementControl "\<\%(return\|last\|next\|redo\|goto\|break\)\>" syn match perlStatementControl "\<\%(return\|last\|next\|redo\|goto\|break\)\>"
@ -93,9 +106,9 @@ syn match perlStatementTime "\<\%(gmtime\|localtime\|time\)\>"
syn match perlStatementMisc "\<\%(warn\|formline\|reset\|scalar\|prototype\|lock\|tied\=\|untie\)\>" syn match perlStatementMisc "\<\%(warn\|formline\|reset\|scalar\|prototype\|lock\|tied\=\|untie\)\>"
syn keyword perlTodo TODO TBD FIXME XXX NOTE contained syn keyword perlTodo TODO TODO: TBD TBD: FIXME FIXME: XXX XXX: NOTE NOTE: contained
syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\<\%(map\|grep\|sort\|print\|system\|exec\)\>\s*{" end="}" contains=@perlTop,perlGenericBlock syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*{" end="}" contains=@perlTop,perlGenericBlock extend
syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!" syn match perlLabel "^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!"
@ -146,14 +159,14 @@ if !exists("perl_no_extended_vars")
syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained syn region perlArrow matchgroup=perlArrow start="->\s*\$*\I\i*\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contained
syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod contains=perlVarSimpleMemberName contained extend
syn match perlVarSimpleMemberName "\I\i*" contained syn match perlVarSimpleMemberName "\I\i*" contained
syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod extend
syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod syn match perlPackageConst "__PACKAGE__" nextgroup=perlMethod
syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod syn match perlMethod "->\$*\I\i*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod
endif endif
@ -168,13 +181,13 @@ syn match perlFiledescStatement "\u\w*" contained
" Special characters in strings and matches " Special characters in strings and matches
syn match perlSpecialString "\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend syn match perlSpecialString "\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend
syn match perlSpecialStringU2 "\\." extend contained transparent contains=NONE syn match perlSpecialStringU2 "\\." extend contained contains=NONE
syn match perlSpecialStringU "\\\\" contained syn match perlSpecialStringU "\\\\" contained
syn match perlSpecialMatch "\\[1-9]" contained extend syn match perlSpecialMatch "\\[1-9]" contained extend
syn match perlSpecialMatch "\\g\%(\d\+\|{\%(-\=\d\+\|\h\w*\)}\)" contained syn match perlSpecialMatch "\\g\%(\d\+\|{\%(-\=\d\+\|\h\w*\)}\)" contained
syn match perlSpecialMatch "\\k\%(<\h\w*>\|'\h\w*'\)" contained syn match perlSpecialMatch "\\k\%(<\h\w*>\|'\h\w*'\)" contained
syn match perlSpecialMatch "{\d\+\%(,\%(\d\+\)\=\)\=}" contained syn match perlSpecialMatch "{\d\+\%(,\%(\d\+\)\=\)\=}" contained
syn match perlSpecialMatch "\[[]-]\=[^\[\]]*[]-]\=\]" contained syn match perlSpecialMatch "\[[]-]\=[^\[\]]*[]-]\=\]" contained extend
syn match perlSpecialMatch "[+*()?.]" contained syn match perlSpecialMatch "[+*()?.]" contained
syn match perlSpecialMatch "(?[#:=!]" contained syn match perlSpecialMatch "(?[#:=!]" contained
syn match perlSpecialMatch "(?[impsx]*\%(-[imsx]\+\)\=)" contained syn match perlSpecialMatch "(?[impsx]*\%(-[imsx]\+\)\=)" contained
@ -186,10 +199,9 @@ syn match perlSpecialMatch "(\*\%(\%(PRUNE\|SKIP\|THEN\)\%(:[^)]*\)\=\|\%(MARK\
" "
" Highlight lines with only whitespace (only in blank delimited here documents) as errors " Highlight lines with only whitespace (only in blank delimited here documents) as errors
syn match perlNotEmptyLine "^\s\+$" contained syn match perlNotEmptyLine "^\s\+$" contained
" Highlight '} else if (...) {', it should be '} else { if (...) { ' or " Highlight "} else if (...) {", it should be "} else { if (...) { " or "} elsif (...) {"
" '} elsif (...) {'. syn match perlElseIfError "else\_s*if" containedin=perlConditional
syn match perlElseIfError "\s\+if" contained syn keyword perlElseIfError elseif containedin=perlConditional
syn keyword perlElseIfError elseif
" Variable interpolation " Variable interpolation
" "
@ -217,32 +229,32 @@ syn match perlString "\<\%(v\d\+\%(\.\d\+\)*\|\d\+\%(\.\d\+\)\{2,}\)\>" contain
syn match perlVStringV "\<v" contained syn match perlVStringV "\<v" contained
syn region perlParensSQ start=+(+ end=+)+ extend contained transparent contains=perlParensSQ,@perlInterpSQ keepend syn region perlParensSQ start=+(+ end=+)+ extend contained contains=perlParensSQ,@perlInterpSQ keepend
syn region perlBracketsSQ start=+\[+ end=+\]+ extend contained transparent contains=perlBracketsSQ,@perlInterpSQ keepend syn region perlBracketsSQ start=+\[+ end=+\]+ extend contained contains=perlBracketsSQ,@perlInterpSQ keepend
syn region perlBracesSQ start=+{+ end=+}+ extend contained transparent contains=perlBracesSQ,@perlInterpSQ keepend syn region perlBracesSQ start=+{+ end=+}+ extend contained contains=perlBracesSQ,@perlInterpSQ keepend
syn region perlAnglesSQ start=+<+ end=+>+ extend contained transparent contains=perlAnglesSQ,@perlInterpSQ keepend syn region perlAnglesSQ start=+<+ end=+>+ extend contained contains=perlAnglesSQ,@perlInterpSQ keepend
syn region perlParensDQ start=+(+ end=+)+ extend contained transparent contains=perlParensDQ,@perlInterpDQ keepend syn region perlParensDQ start=+(+ end=+)+ extend contained contains=perlParensDQ,@perlInterpDQ keepend
syn region perlBracketsDQ start=+\[+ end=+\]+ extend contained transparent contains=perlBracketsDQ,@perlInterpDQ keepend syn region perlBracketsDQ start=+\[+ end=+\]+ extend contained contains=perlBracketsDQ,@perlInterpDQ keepend
syn region perlBracesDQ start=+{+ end=+}+ extend contained transparent contains=perlBracesDQ,@perlInterpDQ keepend syn region perlBracesDQ start=+{+ end=+}+ extend contained contains=perlBracesDQ,@perlInterpDQ keepend
syn region perlAnglesDQ start=+<+ end=+>+ extend contained transparent contains=perlAnglesDQ,@perlInterpDQ keepend syn region perlAnglesDQ start=+<+ end=+>+ extend contained contains=perlAnglesDQ,@perlInterpDQ keepend
" Simple version of searches and matches " Simple version of searches and matches
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[cgimopsx]*+ contains=@perlInterpMatch keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)+ end=+\z1[msixpodualgc]*+ contains=@perlInterpMatch keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[cgimopsx]*+ contains=@perlInterpMatch keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m#+ end=+#[msixpodualgc]*+ contains=@perlInterpMatch keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[cgimopsx]*+ contains=@perlInterpSQ keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*'+ end=+'[msixpodualgc]*+ contains=@perlInterpSQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[cgimopsx]*+ contains=@perlInterpSlash keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[cgimopsx]*+ contains=@perlInterpMatch,perlParensDQ keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*(+ end=+)[msixpodualgc]*+ contains=@perlInterpMatch,perlParensDQ keepend
" A special case for m{}, m<> and m[] which allows for comments and extra whitespace in the pattern " A special case for m{}, m<> and m[] which allows for comments and extra whitespace in the pattern
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[cgimopsx]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*{+ end=+}[msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracesDQ
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[cgimopsx]*+ contains=@perlInterpMatch,perlAnglesDQ keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*<+ end=+>[msixpodualgc]*+ contains=@perlInterpMatch,perlAnglesDQ keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][cgimopsx]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*\[+ end=+\][msixpodualgc]*+ contains=@perlInterpMatch,perlComment,perlBracketsDQ keepend
" Below some hacks to recognise the // variant. This is virtually impossible to catch in all " Below some hacks to recognise the // variant. This is virtually impossible to catch in all
" cases as the / is used in so many other ways, but these should be the most obvious ones. " cases as the / is used in so many other ways, but these should be the most obvious ones.
syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[cgimopsx]*+ contains=@perlInterpSlash syn region perlMatch matchgroup=perlMatchStartEnd start="\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!" start=+^/\%(/=\)\@!+ start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ skip=+\\/+ end=+/[msixpodualgc]*+ contains=@perlInterpSlash
" Substitutions " Substitutions
@ -254,13 +266,13 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s#+
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*(+ end=+)+ contains=@perlInterpMatch,perlParensDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*(+ end=+)+ contains=@perlInterpMatch,perlParensDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*<+ end=+>+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*\[+ end=+\]+ contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*{+ end=+}+ contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[ecgimopsx]*+ keepend contained contains=@perlInterpDQ syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]'([{<]\)+ end=+\z1[msixpodualgcer]*+ keepend contained contains=@perlInterpDQ
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[ecgimopsx]*+ contained contains=@perlInterpDQ,perlParensDQ keepend syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+(+ end=+)[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlParensDQ keepend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][ecgimopsx]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracketsDQ keepend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[ecgimopsx]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+{+ end=+}[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlBracesDQ keepend extend
syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[ecgimopsx]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend syn region perlSubstitutionGQQ matchgroup=perlMatchStartEnd start=+<+ end=+>[msixpodualgcer]*+ contained contains=@perlInterpDQ,perlAnglesDQ keepend
syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[ecgimopsx]*+ contained contains=@perlInterpSQ keepend syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[msixpodualgcer]*+ contained contains=@perlInterpSQ keepend
" Translations " Translations
" perlMatch is the first part, perlTranslation* is the second, translator part. " perlMatch is the first part, perlTranslation* is the second, translator part.
@ -270,48 +282,48 @@ syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]([{<]\)+ end=+\z1[cds]*+ contained syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\z([^[:space:]([{<]\)+ end=+\z1[cdsr]*+ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+(+ end=+)[cds]*+ contains=perlParensSQ contained syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+(+ end=+)[cdsr]*+ contains=perlParensSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][cds]*+ contains=perlBracketsSQ contained syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+\[+ end=+\][cdsr]*+ contains=perlBracketsSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+{+ end=+}[cds]*+ contains=perlBracesSQ contained syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+{+ end=+}[cdsr]*+ contains=perlBracesSQ contained
syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+<+ end=+>[cds]*+ contains=perlAnglesSQ contained syn region perlTranslationGQ matchgroup=perlMatchStartEnd start=+<+ end=+>[cdsr]*+ contains=perlAnglesSQ contained
" Strings and q, qq, qw and qr expressions " Strings and q, qq, qw and qr expressions
syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ keepend syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ keepend extend
syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ keepend syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q#+ end=+#+ contains=@perlInterpSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpDQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\>\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]#+ end=+#+ contains=@perlInterpDQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]#+ end=+#+ contains=@perlInterpDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*(+ end=+)+ contains=@perlInterpDQ,perlParensDQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*(+ end=+)+ contains=@perlInterpDQ,perlParensDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*\[+ end=+\]+ contains=@perlInterpDQ,perlBracketsDQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*\[+ end=+\]+ contains=@perlInterpDQ,perlBracketsDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*{+ end=+}+ contains=@perlInterpDQ,perlBracesDQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*{+ end=+}+ contains=@perlInterpDQ,perlBracesDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*<+ end=+>+ contains=@perlInterpDQ,perlAnglesDQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!q[qx]\s*<+ end=+>+ contains=@perlInterpDQ,perlAnglesDQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw#+ end=+#+ contains=@perlInterpSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw#+ end=+#+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*(+ end=+)+ contains=@perlInterpSQ,perlParensSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*\[+ end=+\]+ contains=@perlInterpSQ,perlBracketsSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*{+ end=+}+ contains=@perlInterpSQ,perlBracesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qw\s*<+ end=+>+ contains=@perlInterpSQ,perlAnglesSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosx]*+ contains=@perlInterpMatch keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=+\z1[imosx]*+ contains=@perlInterpMatch keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosx]*+ contains=@perlInterpSlash keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosx]*+ contains=@perlInterpSlash keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosx]*+ contains=@perlInterpMatch keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr#+ end=+#[imosx]*+ contains=@perlInterpMatch keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosx]*+ contains=@perlInterpSQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*'+ end=+'[imosx]*+ contains=@perlInterpSQ keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosx]*+ contains=@perlInterpMatch,perlParensDQ keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*(+ end=+)[imosx]*+ contains=@perlInterpMatch,perlParensDQ keepend extend
" A special case for qr{}, qr<> and qr[] which allows for comments and extra whitespace in the pattern " A special case for qr{}, qr<> and qr[] which allows for comments and extra whitespace in the pattern
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosx]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*{+ end=+}[imosx]*+ contains=@perlInterpMatch,perlBracesDQ,perlComment keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosx]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*<+ end=+>[imosx]*+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend
syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosx]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*\[+ end=+\][imosx]*+ contains=@perlInterpMatch,perlBracketsDQ,perlComment keepend extend
" Constructs such as print <<EOF [...] EOF, 'here' documents " Constructs such as print <<EOF [...] EOF, 'here' documents
" "
@ -319,14 +331,14 @@ syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s
" 'if $a' in 'print <<EOF if $a'). This is almost impossible to get right it " 'if $a' in 'print <<EOF if $a'). This is almost impossible to get right it
" seems due to the 'auto-extending nature' of regions. " seems due to the 'auto-extending nature' of regions.
if exists("perl_fold") if exists("perl_fold")
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ fold extend
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ fold extend
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ fold extend
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold extend
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold extend
syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL fold extend
else else
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\).*+ end=+^\z1$+ contains=@perlInterpDQ
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"+ end=+^\z1$+ contains=@perlInterpDQ
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'+ end=+^\z1$+ contains=@perlInterpSQ
syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine
@ -349,13 +361,13 @@ if v:version == 701 && !has('patch221') " XXX I hope that's the right one
else else
syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained syn match perlSubAttributesCont "\h\w*\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained
syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ syn region perlSubAttributesCont matchgroup=perlSubAttributesCont start="\h\w*(" end=")\_s*\%(:\_s*\)\=" nextgroup=@perlSubAttrMaybe contained contains=@perlInterpSQ,perlParensSQ
syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError syn cluster perlSubAttrMaybe contains=perlSubAttributesCont,perlSubError,perlFakeGroup
syn match perlSubAttributes "" contained nextgroup=perlSubError syn match perlSubAttributes "" contained nextgroup=perlSubError
syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe syn match perlSubAttributes ":\_s*" contained nextgroup=@perlSubAttrMaybe
endif endif
syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained syn match perlSubPrototypeError "(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+" contained
syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes contained contains=perlSubPrototypeError syn match perlSubPrototype +(\_[^)]*)\_s*\|+ nextgroup=perlSubAttributes,perlComment contained contains=perlSubPrototypeError
syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype syn match perlSubName +\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|+ contained nextgroup=perlSubPrototype,perlComment
syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName syn match perlFunction +\<sub\>\_s*+ nextgroup=perlSubName
@ -371,7 +383,7 @@ endif
syn match perlString "\I\@<!-\?\I\i*\%(\s*=>\)\@=" syn match perlString "\I\@<!-\?\I\i*\%(\s*=>\)\@="
" All other # are comments, except ^#! " All other # are comments, except ^#!
syn match perlComment "#.*" contains=perlTodo,@Spell syn match perlComment "#.*" contains=perlTodo,@Spell extend
syn match perlSharpBang "^#!.*" syn match perlSharpBang "^#!.*"
" Formats " Formats
@ -385,9 +397,11 @@ syn match perlFormatField "@$" contained
" __END__ and __DATA__ clauses " __END__ and __DATA__ clauses
if exists("perl_fold") if exists("perl_fold")
syntax region perlDATA start="^__\%(DATA\|END\)__$" skip="." end="." contains=perlPOD,@perlDATA fold syntax region perlDATA start="^__DATA__$" skip="." end="." fold
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA fold
else else
syntax region perlDATA start="^__\%(DATA\|END\)__$" skip="." end="." contains=perlPOD,@perlDATA syntax region perlDATA start="^__DATA__$" skip="." end="."
syntax region perlDATA start="^__END__$" skip="." end="." contains=perlPOD,@perlDATA
endif endif
" "
@ -400,9 +414,16 @@ if exists("perl_fold")
syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend
endif endif
if !exists("perl_nofold_subs") if !exists("perl_nofold_subs")
if exists("perl_fold_anonymous_subs") && perl_fold_anonymous_subs
syn region perlSubFold start="\<sub\>[^\n;]*{" end="}" transparent fold keepend extend
syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\)\>\s*{" end="}" transparent fold keepend
syn region perlBraces start="{" end="}" transparent extend
else
syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*\%(#.*\)\=$" transparent fold keepend
syn region perlSubFold start="^\z(\s*\)\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend syn region perlSubFold start="^\z(\s*\)\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
endif endif
endif
if exists("perl_fold_blocks") if exists("perl_fold_blocks")
syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)foreach\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)foreach\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend
@ -418,6 +439,9 @@ endif
command -nargs=+ HiLink hi def link <args> command -nargs=+ HiLink hi def link <args>
" NOTE: If you're linking new highlight groups to perlString, please also put
" them into b:match_skip in ftplugin/perl.vim.
" The default highlighting. " The default highlighting.
HiLink perlSharpBang PreProc HiLink perlSharpBang PreProc
HiLink perlControl PreProc HiLink perlControl PreProc
@ -505,6 +529,22 @@ HiLink perlSpecialStringU perlSpecial
HiLink perlSpecialMatch perlSpecial HiLink perlSpecialMatch perlSpecial
HiLink perlDATA perlComment HiLink perlDATA perlComment
" NOTE: Due to a bug in Vim (or more likely, a misunderstanding on my part),
" I had to remove the transparent property from the following regions
" in order to get them to highlight correctly. Feel free to remove
" these and reinstate the transparent property if you know how.
HiLink perlParensSQ perlString
HiLink perlBracketsSQ perlString
HiLink perlBracesSQ perlString
HiLink perlAnglesSQ perlString
HiLink perlParensDQ perlString
HiLink perlBracketsDQ perlString
HiLink perlBracesDQ perlString
HiLink perlAnglesDQ perlString
HiLink perlSpecialStringU2 perlString
" Possible errors " Possible errors
HiLink perlNotEmptyLine Error HiLink perlNotEmptyLine Error
HiLink perlElseIfError Error HiLink perlElseIfError Error
@ -539,5 +579,13 @@ syn sync match perlSyncPOD grouphere NONE "^=cut"
let b:current_syntax = "perl" let b:current_syntax = "perl"
if exists('&regexpengine')
let &regexpengine=s:regexpengine
unlet s:regexpengine
endif
let &cpo = s:cpo_save
unlet s:cpo_save
" XXX Change to sts=4:sw=4 " XXX Change to sts=4:sw=4
" vim:ts=8:sts=2:sw=2:expandtab:ft=vim " vim:ts=8:sts=2:sw=2:expandtab:ft=vim

View File

@ -1,8 +1,9 @@
" Vim syntax file " Vim syntax file
" Language: Perl 6 " Language: Perl 6
" Maintainer: Andy Lester <andy@petdance.com> " Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/petdance/vim-perl/tree/master " Homepage: http://github.com/vim-perl/vim-perl/tree/master
" Last Change: 2012 Apr 30 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2009-07-04
" Contributors: Luke Palmer <fibonaci@babylonia.flatirons.org> " Contributors: Luke Palmer <fibonaci@babylonia.flatirons.org>
" Moritz Lenz <moritz@faui2k3.org> " Moritz Lenz <moritz@faui2k3.org>
@ -1023,7 +1024,7 @@ syn match p6PackageScope display "\%(\K\%(\k\|[-']\K\@=\)*\)\?::" nextgroup=p6Pa
" TODO: mostly stolen from perl.vim, might need more work " TODO: mostly stolen from perl.vim, might need more work
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%([$@%&*]\@<!\%(\<\%(split\|while\|until\|if\|unless\)\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=//\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\%(\<\%(split\|while\|until\|if\|unless\)\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=//\@!"
\ start="^//\@!" \ start="^//\@!"
\ start=+\s\@<=/[^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!/\@!+ \ start=+\s\@<=/[^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!/\@!+
\ skip="\\/" \ skip="\\/"
@ -1033,7 +1034,7 @@ syn region p6Match
" m/foo/, mm/foo/, rx/foo/ " m/foo/, mm/foo/, rx/foo/
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=//\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=//\@!"
\ skip="\\/" \ skip="\\/"
\ end="/" \ end="/"
\ keepend \ keepend
@ -1042,7 +1043,7 @@ syn region p6Match
" m!foo!, mm!foo!, rx!foo! " m!foo!, mm!foo!, rx!foo!
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!!\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!!\@!"
\ skip="\\!" \ skip="\\!"
\ end="!" \ end="!"
\ keepend \ keepend
@ -1051,7 +1052,7 @@ syn region p6Match
" m$foo$, mm$foo$, rx$foo$, m|foo|, mm|foo|, rx|foo|, etc " m$foo$, mm$foo$, rx$foo$, m|foo|, mm|foo|, rx|foo|, etc
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)\$\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)\$\@!"
\ skip="\\\z1" \ skip="\\\z1"
\ end="\z1" \ end="\z1"
\ keepend \ keepend
@ -1060,7 +1061,7 @@ syn region p6Match
" m (foo), mm (foo), rx (foo) " m (foo), mm (foo), rx (foo)
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!)\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!)\@!"
\ skip="\\)" \ skip="\\)"
\ end=")" \ end=")"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1068,7 +1069,7 @@ syn region p6Match
" m[foo], mm[foo], rx[foo] " m[foo], mm[foo], rx[foo]
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!]\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!]\@!"
\ skip="\\]" \ skip="\\]"
\ end="]" \ end="]"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1076,7 +1077,7 @@ syn region p6Match
" m{foo}, mm{foo}, rx{foo} " m{foo}, mm{foo}, rx{foo}
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!}\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!}\@!"
\ skip="\\}" \ skip="\\}"
\ end="}" \ end="}"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1084,7 +1085,7 @@ syn region p6Match
" m<foo>, mm<foo>, rx<foo> " m<foo>, mm<foo>, rx<foo>
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!>\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!>\@!"
\ skip="\\>" \ skip="\\>"
\ end=">" \ end=">"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1092,7 +1093,7 @@ syn region p6Match
" m«foo», mm«foo», rx«foo» " m«foo», mm«foo», rx«foo»
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!»\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!»\@!"
\ skip="\\»" \ skip="\\»"
\ end="»" \ end="»"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1102,7 +1103,7 @@ syn region p6Match
" s/foo/bar/ " s/foo/bar/
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=/" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=/"
\ skip="\\/" \ skip="\\/"
\ end="/"me=e-1 \ end="/"me=e-1
\ keepend \ keepend
@ -1121,7 +1122,7 @@ syn region p6Substitution
" s!foo!bar! " s!foo!bar!
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!"
\ skip="\\!" \ skip="\\!"
\ end="!"me=e-1 \ end="!"me=e-1
\ keepend \ keepend
@ -1140,7 +1141,7 @@ syn region p6Substitution
" s$foo$bar$, s|foo|bar, etc " s$foo$bar$, s|foo|bar, etc
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)"
\ skip="\\\z1" \ skip="\\\z1"
\ end="\z1"me=e-1 \ end="\z1"me=e-1
\ keepend \ keepend
@ -1159,7 +1160,7 @@ syn region p6Substitution
" s{foo} " s{foo}
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!"
\ skip="\\}" \ skip="\\}"
\ end="}" \ end="}"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1167,7 +1168,7 @@ syn region p6Match
" s[foo] " s[foo]
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!"
\ skip="\\]" \ skip="\\]"
\ end="]" \ end="]"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1175,7 +1176,7 @@ syn region p6Match
" s<foo> " s<foo>
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!"
\ skip="\\>" \ skip="\\>"
\ end=">" \ end=">"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1183,7 +1184,7 @@ syn region p6Match
" s«foo» " s«foo»
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!"
\ skip="\\»" \ skip="\\»"
\ end="»" \ end="»"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1191,7 +1192,7 @@ syn region p6Match
" s (foo) " s (foo)
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!"
\ skip="\\)" \ skip="\\)"
\ end=")" \ end=")"
\ contains=@p6Regexen,@p6Variables \ contains=@p6Regexen,@p6Variables
@ -1201,7 +1202,7 @@ syn region p6Match
" m:P5// " m:P5//
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=/" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=/"
\ skip="\\/" \ skip="\\/"
\ end="/" \ end="/"
\ contains=@p6RegexP5,p6Variable,p6VarExclam,p6VarMatch,p6VarNum \ contains=@p6RegexP5,p6Variable,p6VarExclam,p6VarMatch,p6VarNum
@ -1209,7 +1210,7 @@ syn region p6Match
" m:P5!! " m:P5!!
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=!"
\ skip="\\!" \ skip="\\!"
\ end="!" \ end="!"
\ contains=@p6RegexP5,p6Variable,p6VarSlash,p6VarMatch,p6VarNum \ contains=@p6RegexP5,p6Variable,p6VarSlash,p6VarMatch,p6VarNum
@ -1217,7 +1218,7 @@ syn region p6Match
" m:P5$$, m:P5||, etc " m:P5$$, m:P5||, etc
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=\z([\"'`|,$]\)" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=\z([\"'`|,$]\)"
\ skip="\\\z1" \ skip="\\\z1"
\ end="\z1" \ end="\z1"
\ contains=@p6RegexP5,@p6Variables \ contains=@p6RegexP5,@p6Variables
@ -1225,7 +1226,7 @@ syn region p6Match
" m:P5 () " m:P5 ()
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s\+\)\@<=()\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s\+\)\@<=()\@!"
\ skip="\\)" \ skip="\\)"
\ end=")" \ end=")"
\ contains=@p6RegexP5,@p6Variables \ contains=@p6RegexP5,@p6Variables
@ -1233,7 +1234,7 @@ syn region p6Match
" m:P5[] " m:P5[]
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=[]\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=[]\@!"
\ skip="\\]" \ skip="\\]"
\ end="]" \ end="]"
\ contains=@p6RegexP5,@p6Variables \ contains=@p6RegexP5,@p6Variables
@ -1241,7 +1242,7 @@ syn region p6Match
" m:P5{} " m:P5{}
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<={}\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<={}\@!"
\ skip="\\}" \ skip="\\}"
\ end="}" \ end="}"
\ contains=@p6RegexP5,p6Variables \ contains=@p6RegexP5,p6Variables
@ -1249,7 +1250,7 @@ syn region p6Match
" m:P5<> " m:P5<>
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=<>\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=<>\@!"
\ skip="\\>" \ skip="\\>"
\ end=">" \ end=">"
\ contains=@p6RegexP5,p6Variables \ contains=@p6RegexP5,p6Variables
@ -1257,7 +1258,7 @@ syn region p6Match
" m:P5«» " m:P5«»
syn region p6Match syn region p6Match
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<m\s*:P\%(erl\)\?5\s*\)\@<=«»\@!" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=«»\@!"
\ skip="\\»" \ skip="\\»"
\ end="»" \ end="»"
\ contains=@p6RegexP5,p6Variables \ contains=@p6RegexP5,p6Variables
@ -1267,7 +1268,7 @@ syn region p6Match
" tr/foo/bar/, tr|foo|bar, etc " tr/foo/bar/, tr|foo|bar, etc
syn region p6String syn region p6String
\ matchgroup=p6Quote \ matchgroup=p6Quote
\ start="\%(\<tr\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([/\"'`|!,$]\)" \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<tr\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([/\"'`|!,$]\)"
\ skip="\\\z1" \ skip="\\\z1"
\ end="\z1"me=e-1 \ end="\z1"me=e-1
\ contains=p6RxRange \ contains=p6RxRange

View File

@ -1,9 +1,10 @@
" Vim syntax file " Vim syntax file
" Language: Perl POD format " Language: Perl POD format
" Maintainer: Andy Lester <andy@petdance.com> " Maintainer: vim-perl <vim-perl@googlegroups.com>
" Previously: Scott Bigham <dsb@killerbunnies.org> " Previously: Scott Bigham <dsb@killerbunnies.org>
" URL: http://github.com/petdance/vim-perl " Homepage: http://github.com/vim-perl/vim-perl
" Last Change: 2009-08-14 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013 May 30
" To add embedded POD documentation highlighting to your syntax file, add " To add embedded POD documentation highlighting to your syntax file, add
" the commands: " the commands:
@ -26,7 +27,11 @@ elseif exists("b:current_syntax")
finish finish
endif endif
let s:cpo_save = &cpo
set cpo&vim
" POD commands " POD commands
syn match podCommand "^=encoding" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=head[1234]" nextgroup=podCmdText contains=@NoSpell syn match podCommand "^=head[1234]" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=item" nextgroup=podCmdText contains=@NoSpell syn match podCommand "^=item" nextgroup=podCmdText contains=@NoSpell
syn match podCommand "^=over" nextgroup=podOverIndent skipwhite contains=@NoSpell syn match podCommand "^=over" nextgroup=podOverIndent skipwhite contains=@NoSpell
@ -85,6 +90,100 @@ if version >= 508 || !exists("did_pod_syntax_inits")
delcommand HiLink delcommand HiLink
endif endif
if exists("perl_pod_spellcheck_headings")
" Spell-check headings
syn clear podCmdText
syn match podCmdText ".*$" contained contains=podFormat
endif
if exists("perl_pod_formatting")
" By default, escapes like C<> are not checked for spelling. Remove B<>
" and I<> from the list of escapes.
syn clear podFormat
syn region podFormat start="[CLF]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell
syn region podFormat start="[CLF]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell
" Don't spell-check inside E<>, but ensure that the E< itself isn't
" marked as a spelling mistake.
syn match podFormat "E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell
" Z<> is a mock formatting code. Ensure Z<> on its own isn't marked as a
" spelling mistake.
syn match podFormat "Z<>" contains=podEscape,podEscape2,@NoSpell
" These are required so that whatever is *within* B<...>, I<...>, etc. is
" spell-checked, but not the B, I, ... itself.
syn match podBoldOpen "B<" contains=@NoSpell
syn match podItalicOpen "I<" contains=@NoSpell
syn match podNoSpaceOpen "S<" contains=@NoSpell
syn match podIndexOpen "X<" contains=@NoSpell
" Same as above but for the << >> syntax.
syn match podBoldAlternativeDelimOpen "B<< " contains=@NoSpell
syn match podItalicAlternativeDelimOpen "I<< " contains=@NoSpell
syn match podNoSpaceAlternativeDelimOpen "S<< " contains=@NoSpell
syn match podIndexAlternativeDelimOpen "X<< " contains=@NoSpell
" Add support for spell checking text inside B<>, I<>, S<> and X<>.
syn region podBold start="B<[^<]"me=e end=">" oneline contains=podBoldItalic,podBoldOpen
syn region podBoldAlternativeDelim start="B<<\s" end="\s>>" oneline contains=podBoldAlternativeDelimOpen
syn region podItalic start="I<[^<]"me=e end=">" oneline contains=podItalicBold,podItalicOpen
syn region podItalicAlternativeDelim start="I<<\s" end="\s>>" oneline contains=podItalicAlternativeDelimOpen
" Nested bold/italic and vice-versa
syn region podBoldItalic contained start="I<[^<]"me=e end=">" oneline
syn region podItalicBold contained start="B<[^<]"me=e end=">" oneline
syn region podNoSpace start="S<[^<]"ms=s-2 end=">"me=e oneline contains=podNoSpaceOpen
syn region podNoSpaceAlternativeDelim start="S<<\s"ms=s-2 end="\s>>"me=e oneline contains=podNoSpaceAlternativeDelimOpen
syn region podIndex start="X<[^<]"ms=s-2 end=">"me=e oneline contains=podIndexOpen
syn region podIndexAlternativeDelim start="X<<\s"ms=s-2 end="\s>>"me=e oneline contains=podIndexAlternativeDelimOpen
" Restore this (otherwise B<> is shown as bold inside verbatim)
syn match podVerbatimLine "^\s.*$" contains=@NoSpell
" Ensure formatted text can be displayed in headings and items
syn clear podCmdText
if exists("perl_pod_spellcheck_headings")
syn match podCmdText ".*$" contained contains=podFormat,podBold,
\podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,
\podBoldOpen,podItalicOpen,podBoldAlternativeDelimOpen,
\podItalicAlternativeDelimOpen,podNoSpaceOpen
else
syn match podCmdText ".*$" contained contains=podFormat,podBold,
\podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,
\@NoSpell
endif
" Specify how to display these
hi def podBold term=bold cterm=bold gui=bold
hi link podBoldAlternativeDelim podBold
hi link podBoldAlternativeDelimOpen podBold
hi link podBoldOpen podBold
hi link podNoSpace Identifier
hi link podNoSpaceAlternativeDelim Identifier
hi link podIndex Identifier
hi link podIndexAlternativeDelim Identifier
hi def podItalic term=italic cterm=italic gui=italic
hi link podItalicAlternativeDelim podItalic
hi link podItalicAlternativeDelimOpen podItalic
hi link podItalicOpen podItalic
hi def podBoldItalic term=italic,bold cterm=italic,bold gui=italic,bold
hi def podItalicBold term=italic,bold cterm=italic,bold gui=italic,bold
endif
let b:current_syntax = "pod" let b:current_syntax = "pod"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 " vim: ts=8

View File

@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: PROLOG " Language: PROLOG
" Maintainers: Thomas Koehler <jean-luc@picard.franken.de> " Maintainers: Thomas Koehler <jean-luc@picard.franken.de>
" Last Change: 2009 Dec 04 " Last Change: 2013 May 23
" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim " URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
" There are two sets of highlighting in here: " There are two sets of highlighting in here:
@ -28,7 +28,7 @@ syn keyword prologKeyword module meta_predicate multifile dynamic
syn match prologCharCode +0'\\\=.+ syn match prologCharCode +0'\\\=.+
syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+ syn region prologString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+ syn region prologAtom start=+'+ skip=+\\\\\|\\'+ end=+'+
syn region prologClauseHead start=+^[a-z][^(]*(+ skip=+\.[^ ]+ end=+:-\|\.$\|\.[ ]\|-->+ contains=prologComment,prologCComment,prologString syn region prologClause matchgroup=prologClauseHead start=+^\s*[a-z]\w*+ matchgroup=Normal end=+\.\s\|\.$+ contains=ALLBUT,prologClause
if !exists("prolog_highlighting_clean") if !exists("prolog_highlighting_clean")
@ -67,6 +67,8 @@ if !exists("prolog_highlighting_clean")
syn match prologCommentError "\*/" syn match prologCommentError "\*/"
syn match prologSpecialCharacter ";" syn match prologSpecialCharacter ";"
syn match prologSpecialCharacter "!" syn match prologSpecialCharacter "!"
syn match prologSpecialCharacter ":-"
syn match prologSpecialCharacter "-->"
syn match prologQuestion "?-.*\." contains=prologNumber syn match prologQuestion "?-.*\." contains=prologNumber
@ -95,11 +97,13 @@ if version >= 508 || !exists("did_prolog_syn_inits")
HiLink prologKeyword Statement HiLink prologKeyword Statement
HiLink prologClauseHead Statement HiLink prologClauseHead Statement
HiLink prologClause Normal
else else
HiLink prologKeyword Keyword HiLink prologKeyword Keyword
HiLink prologClauseHead Constant HiLink prologClauseHead Constant
HiLink prologClause Normal
HiLink prologQuestion PreProc HiLink prologQuestion PreProc
HiLink prologSpecialCharacter Special HiLink prologSpecialCharacter Special
HiLink prologNumber Number HiLink prologNumber Number

View File

@ -2,7 +2,7 @@
" Language: Sass " Language: Sass
" Maintainer: Tim Pope <vimNOSPAM@tpope.org> " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
" Filenames: *.sass " Filenames: *.sass
" Last Change: 2010 Aug 9 " Last Change: 2013 May 30
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@ -17,8 +17,8 @@ syn cluster sassCssAttributes contains=css.*Attr,scssComment,cssValue.*,cssColor
syn region sassDefinition matchgroup=cssBraces start="{" end="}" contains=TOP syn region sassDefinition matchgroup=cssBraces start="{" end="}" contains=TOP
syn match sassProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+:" contains=css.*Prop skipwhite nextgroup=sassCssAttribute contained containedin=sassDefinition syn match sassProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:" contains=css.*Prop skipwhite nextgroup=sassCssAttribute contained containedin=sassDefinition
syn match sassProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute syn match sassProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute
syn match sassProperty "^\s*\zs\s\%(:\=[[:alnum:]-]\+\s*=\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute syn match sassProperty "^\s*\zs\s\%(:\=[[:alnum:]-]\+\s*=\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute
syn match sassCssAttribute +\%("\%([^"]\|\\"\)*"\|'\%([^']\|\\'\)*'\|#{[^{}]*}\|[^{};]\)*+ contained contains=@sassCssAttributes,sassVariable,sassFunction,sassInterpolation syn match sassCssAttribute +\%("\%([^"]\|\\"\)*"\|'\%([^']\|\\'\)*'\|#{[^{}]*}\|[^{};]\)*+ contained contains=@sassCssAttributes,sassVariable,sassFunction,sassInterpolation
syn match sassDefault "!default\>" contained syn match sassDefault "!default\>" contained
@ -34,14 +34,19 @@ syn match sassFunction "\<\%(unquote\|quote\)\>(\@=" contained
syn match sassFunction "\<\%(percentage\|round\|ceil\|floor\|abs\)\>(\@=" contained syn match sassFunction "\<\%(percentage\|round\|ceil\|floor\|abs\)\>(\@=" contained
syn match sassFunction "\<\%(type-of\|unit\|unitless\|comparable\)\>(\@=" contained syn match sassFunction "\<\%(type-of\|unit\|unitless\|comparable\)\>(\@=" contained
syn region sassInterpolation matchgroup=sassInterpolationDelimiter start="#{" end="}" contains=@sassCssAttributes,sassVariable,sassFunction containedin=cssStringQ,cssStringQQ,sassProperty syn region sassInterpolation matchgroup=sassInterpolationDelimiter start="#{" end="}" contains=@sassCssAttributes,sassVariable,sassFunction containedin=cssStringQ,cssStringQQ,cssPseudoClass,sassProperty
syn match sassMixinName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute syn match sassMixinName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute
syn match sassMixin "^=" nextgroup=sassMixinName syn match sassMixin "^=" nextgroup=sassMixinName skipwhite
syn match sassMixin "\%([{};]\s*\|^\s*\)\@<=@mixin" nextgroup=sassMixinName skipwhite syn match sassMixin "\%([{};]\s*\|^\s*\)\@<=@mixin" nextgroup=sassMixinName skipwhite
syn match sassMixing "^\s\+\zs+" nextgroup=sassMixinName syn match sassMixing "^\s\+\zs+" nextgroup=sassMixinName
syn match sassMixing "\%([{};]\s*\|^\s*\)\@<=@include" nextgroup=sassMixinName skipwhite syn match sassMixing "\%([{};]\s*\|^\s*\)\@<=@include" nextgroup=sassMixinName skipwhite
syn match sassExtend "\%([{};]\s*\|^\s*\)\@<=@extend" syn match sassExtend "\%([{};]\s*\|^\s*\)\@<=@extend"
syn match sassPlaceholder "\%([{};]\s*\|^\s*\)\@<=%" nextgroup=sassMixinName skipwhite
syn match sassFunctionName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute
syn match sassFunctionDecl "\%([{};]\s*\|^\s*\)\@<=@function" nextgroup=sassFunctionName skipwhite
syn match sassReturn "\%([{};]\s*\|^\s*\)\@<=@return"
syn match sassEscape "^\s*\zs\\" syn match sassEscape "^\s*\zs\\"
syn match sassIdChar "#[[:alnum:]_-]\@=" nextgroup=sassId syn match sassIdChar "#[[:alnum:]_-]\@=" nextgroup=sassId
@ -53,11 +58,11 @@ syn match sassAmpersand "&"
" TODO: Attribute namespaces " TODO: Attribute namespaces
" TODO: Arithmetic (including strings and concatenation) " TODO: Arithmetic (including strings and concatenation)
syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssURL,cssUnicodeEscape,cssMediaType syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType
syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction
syn region sassWarnLine end=";\|$" matchgroup=sassWarn start="@warn\>" contains=@sassCssAttributes,sassVariable,sassFunction syn region sassWarnLine end=";\|$" matchgroup=sassWarn start="@warn\>" contains=@sassCssAttributes,sassVariable,sassFunction
syn region sassControlLine matchgroup=sassControl start="@\%(if\|else\%(\s\+if\)\=\|while\|for\)\>" end="[{};]\@=\|$" contains=sassFor,@sassCssAttributes,sassVariable,sassFunction syn region sassControlLine matchgroup=sassControl start="@\%(if\|else\%(\s\+if\)\=\|while\|for\|each\)\>" end="[{};]\@=\|$" contains=sassFor,@sassCssAttributes,sassVariable,sassFunction
syn keyword sassFor from to through contained syn keyword sassFor from to through in contained
syn keyword sassTodo FIXME NOTE TODO OPTIMIZE XXX contained syn keyword sassTodo FIXME NOTE TODO OPTIMIZE XXX contained
syn region sassComment start="^\z(\s*\)//" end="^\%(\z1 \)\@!" contains=sassTodo,@Spell syn region sassComment start="^\z(\s*\)//" end="^\%(\z1 \)\@!" contains=sassTodo,@Spell
@ -70,7 +75,10 @@ hi def link sassVariable Identifier
hi def link sassFunction Function hi def link sassFunction Function
hi def link sassMixing PreProc hi def link sassMixing PreProc
hi def link sassMixin PreProc hi def link sassMixin PreProc
hi def link sassPlaceholder PreProc
hi def link sassExtend PreProc hi def link sassExtend PreProc
hi def link sassFunctionDecl PreProc
hi def link sassReturn PreProc
hi def link sassTodo Todo hi def link sassTodo Todo
hi def link sassInclude Include hi def link sassInclude Include
hi def link sassDebug sassControl hi def link sassDebug sassControl

View File

@ -2,7 +2,7 @@
" Language: TeX " Language: TeX
" Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM> " Maintainer: Charles E. Campbell <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Mar 11, 2013 " Last Change: Mar 11, 2013
" Version: 77 " Version: 78
" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TEX
" "
" Notes: {{{1 " Notes: {{{1
@ -55,11 +55,20 @@ endif
if exists("g:tex_no_error") && g:tex_no_error if exists("g:tex_no_error") && g:tex_no_error
let s:tex_no_error= 1 let s:tex_no_error= 1
endif endif
if exists("g:tex_fast") && g:tex_fast
let s:tex_no_error= 1 " by default, enable all region-based highlighting
let s:tex_fast= "bcmMprsSvV"
if exists("g:tex_fast")
if type(g:tex_fast) != 1
" g:tex_fast exists and is not a string, so
" turn off all optional region-based highighting
let s:tex_fast= ""
else
let s:tex_fast= g:tex_fast
endif endif
if exists("g:tex_tex") && !exists("g:tex_no_error")
let s:tex_no_error= 1 let s:tex_no_error= 1
else
let s:tex_fast= "bcmMprsSvV"
endif endif
" let user determine which classes of concealment will be supported " let user determine which classes of concealment will be supported
@ -159,7 +168,7 @@ if !exists("tex_no_math")
endif endif
" Try to flag {} and () mismatches: {{{1 " Try to flag {} and () mismatches: {{{1
if !exists("g:tex_fast") || g:tex_fast =~ 'm' if s:tex_fast =~ 'm'
if !exists("s:tex_no_error") if !exists("s:tex_no_error")
syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError syn region texMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texMatchGroup,texError
syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError,@NoSpell syn region texMatcher matchgroup=Delimiter start="\[" end="]" contains=@texMatchGroup,texError,@NoSpell
@ -176,7 +185,7 @@ endif
if !exists("s:tex_no_error") if !exists("s:tex_no_error")
syn match texError "[}\])]" syn match texError "[}\])]"
endif endif
if !exists("g:tex_fast") || g:tex_fast =~ 'M' if s:tex_fast =~ 'M'
if !exists("tex_no_math") if !exists("tex_no_math")
if !exists("s:tex_no_error") if !exists("s:tex_no_error")
syn match texMathError "}" contained syn match texMathError "}" contained
@ -220,14 +229,14 @@ syn match texLigature "\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
" \begin{}/\end{} section markers: {{{1 " \begin{}/\end{} section markers: {{{1
syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName syn match texBeginEnd "\\begin\>\|\\end\>" nextgroup=texBeginEndName
if !exists("g:tex_fast") || g:tex_fast =~ 'm' if s:tex_fast =~ 'm'
syn region texBeginEndName matchgroup=Delimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment syn region texBeginEndName matchgroup=Delimiter start="{" end="}" contained nextgroup=texBeginEndModifier contains=texComment
syn region texBeginEndModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment,@NoSpell syn region texBeginEndModifier matchgroup=Delimiter start="\[" end="]" contained contains=texComment,@NoSpell
endif endif
" \documentclass, \documentstyle, \usepackage: {{{1 " \documentclass, \documentstyle, \usepackage: {{{1
syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texBeginEndName,texDocTypeArgs syn match texDocType "\\documentclass\>\|\\documentstyle\>\|\\usepackage\>" nextgroup=texBeginEndName,texDocTypeArgs
if !exists("g:tex_fast") || g:tex_fast =~ 'm' if s:tex_fast =~ 'm'
syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texBeginEndName contains=texComment,@NoSpell syn region texDocTypeArgs matchgroup=Delimiter start="\[" end="]" contained nextgroup=texBeginEndName contains=texComment,@NoSpell
endif endif
@ -241,7 +250,7 @@ syn match texInput "\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7 contains=texStatemen
syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt syn match texInputFile "\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputFile "\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt syn match texInputFile "\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
syn match texInputCurlies "[{}]" contained syn match texInputCurlies "[{}]" contained
if !exists("g:tex_fast") || g:tex_fast =~ 'm' if s:tex_fast =~ 'm'
syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained contains=texComment syn region texInputFileOpt matchgroup=Delimiter start="\[" end="\]" contained contains=texComment
endif endif
@ -309,7 +318,7 @@ syn match texSpaceCode "\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=
syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained syn match texSpaceCodeChar "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)" contained
" Sections, subsections, etc: {{{1 " Sections, subsections, etc: {{{1
if !exists("g:tex_fast") || g:tex_fast =~ 'p' if s:tex_fast =~ 'p'
if !exists("g:tex_nospell") || !g:tex_nospell if !exists("g:tex_nospell") || !g:tex_nospell
if g:tex_fold_enabled && has("folding") if g:tex_fold_enabled && has("folding")
syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup,@Spell syn region texDocZone matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}' fold contains=@texFoldGroup,@texDocGroup,@Spell
@ -362,7 +371,7 @@ if !exists("g:tex_fast") || g:tex_fast =~ 'p'
endif endif
" particular support for bold and italic {{{1 " particular support for bold and italic {{{1
if !exists("g:tex_fast") || g:tex_fast =~ 'b' if s:tex_fast =~ 'b'
if s:tex_conceal =~ 'b' if s:tex_conceal =~ 'b'
syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" end="}" concealends contains=@texBoldGroup syn region texBoldStyle matchgroup=texTypeStyle start="\\textbf\s*{" end="}" concealends contains=@texBoldGroup
syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" end="}" concealends contains=@texItalGroup syn region texBoldItalStyle matchgroup=texTypeStyle start="\\textit\s*{" end="}" concealends contains=@texItalGroup
@ -372,7 +381,7 @@ if !exists("g:tex_fast") || g:tex_fast =~ 'b'
endif endif
" Bad Math (mismatched): {{{1 " Bad Math (mismatched): {{{1
if !exists("tex_no_math") if !exists("g:tex_no_math") && !exists("s:tex_no_error")
syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}" syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}"
syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}" syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}"
syn match texBadMath "\\[\])]" syn match texBadMath "\\[\])]"
@ -393,7 +402,7 @@ if !exists("tex_no_math")
let foldcmd= "" let foldcmd= ""
endif endif
exe "syn cluster texMathZones add=".grpname exe "syn cluster texMathZones add=".grpname
if !exists("g:tex_fast") || g:tex_fast =~ 'M' if s:tex_fast =~ 'M'
exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"' exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"' exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
@ -403,7 +412,7 @@ if !exists("tex_no_math")
let grpname = "texMathZone".a:sfx.'S' let grpname = "texMathZone".a:sfx.'S'
let syncname = "texSyncMathZone".a:sfx.'S' let syncname = "texSyncMathZone".a:sfx.'S'
exe "syn cluster texMathZones add=".grpname exe "syn cluster texMathZones add=".grpname
if !exists("g:tex_fast") || g:tex_fast =~ 'M' if s:tex_fast =~ 'M'
exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"' exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"' exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
@ -427,7 +436,7 @@ if !exists("tex_no_math")
call TexNewMathZone("L","xxalignat",0) call TexNewMathZone("L","xxalignat",0)
" Inline Math Zones: {{{2 " Inline Math Zones: {{{2
if !exists("g:tex_fast") || g:tex_fast =~ 'M' if s:tex_fast =~ 'M'
if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~ 'd' if has("conceal") && &enc == 'utf-8' && s:tex_conceal =~ 'd'
syn region texMathZoneV matchgroup=Delimiter start="\\(" matchgroup=Delimiter end="\\)\|%stopzone\>" keepend concealends contains=@texMathZoneGroup syn region texMathZoneV matchgroup=Delimiter start="\\(" matchgroup=Delimiter end="\\)\|%stopzone\>" keepend concealends contains=@texMathZoneGroup
syn region texMathZoneW matchgroup=Delimiter start="\\\[" matchgroup=Delimiter end="\\]\|%stopzone\>" keepend concealends contains=@texMathZoneGroup syn region texMathZoneW matchgroup=Delimiter start="\\\[" matchgroup=Delimiter end="\\]\|%stopzone\>" keepend concealends contains=@texMathZoneGroup
@ -445,7 +454,7 @@ if !exists("tex_no_math")
syn match texMathOper "[_^=]" contained syn match texMathOper "[_^=]" contained
" Text Inside Math Zones: {{{2 " Text Inside Math Zones: {{{2
if !exists("g:tex_fast") || g:tex_fast =~ 'M' if s:tex_fast =~ 'M'
if !exists("g:tex_nospell") || !g:tex_nospell if !exists("g:tex_nospell") || !g:tex_nospell
syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell syn region texMathText matchgroup=texStatement start='\\\(\(inter\)\=text\|mbox\)\s*{' end='}' contains=@texFoldGroup,@Spell
else else
@ -540,13 +549,13 @@ else
" allows syntax-folding of 2 or more contiguous comment lines " allows syntax-folding of 2 or more contiguous comment lines
" single-line comments are not folded " single-line comments are not folded
syn match texComment "%.*$" contains=@texCommentGroup syn match texComment "%.*$" contains=@texCommentGroup
if !exists("g:tex_fast") || g:tex_fast =~ 'c' if s:tex_fast =~ 'c'
syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' fold syn region texComment start="^\zs\s*%.*\_s*%" skip="^\s*%" end='^\ze\s*[^%]' fold
syn region texNoSpell contained fold matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell syn region texNoSpell contained fold matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif endif
else else
syn match texComment "%.*$" contains=@texCommentGroup syn match texComment "%.*$" contains=@texCommentGroup
if !exists("g:tex_fast") || g:tex_fast =~ 'c' if s:tex_fast =~ 'c'
syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell syn region texNoSpell contained matchgroup=texComment start="%\s*nospell\s*{" end="%\s*nospell\s*}" contains=@texFoldGroup,@NoSpell
endif endif
endif endif
@ -555,7 +564,7 @@ endif
" Separate lines used for verb` and verb# so that the end conditions {{{1 " Separate lines used for verb` and verb# so that the end conditions {{{1
" will appropriately terminate. " will appropriately terminate.
" If g:tex_verbspell exists, then verbatim texZones will permit spellchecking there. " If g:tex_verbspell exists, then verbatim texZones will permit spellchecking there.
if !exists("g:tex_fast") || g:tex_fast =~ 'v' if s:tex_fast =~ 'v'
if exists("g:tex_verbspell") && g:tex_verbspell if exists("g:tex_verbspell") && g:tex_verbspell
syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>" contains=@Spell syn region texZone start="\\begin{[vV]erbatim}" end="\\end{[vV]erbatim}\|%stopzone\>" contains=@Spell
" listings package: " listings package:
@ -586,7 +595,7 @@ if !exists("g:tex_fast") || g:tex_fast =~ 'v'
endif endif
" Tex Reference Zones: {{{1 " Tex Reference Zones: {{{1
if !exists("g:tex_fast") || g:tex_fast =~ 'r' if s:tex_fast =~ 'r'
syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup
syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup
@ -600,13 +609,13 @@ syn match texRefZone '\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite
" Handle newcommand, newenvironment : {{{1 " Handle newcommand, newenvironment : {{{1
syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
if !exists("g:tex_fast") || g:tex_fast =~ 'V' if s:tex_fast =~ 'V'
syn region texCmdName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texCmdArgs,texCmdBody skipwhite skipnl syn region texCmdName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texCmdArgs,texCmdBody skipwhite skipnl
syn region texCmdArgs contained matchgroup=Delimiter start="\["rs=s+1 end="]" nextgroup=texCmdBody skipwhite skipnl syn region texCmdArgs contained matchgroup=Delimiter start="\["rs=s+1 end="]" nextgroup=texCmdBody skipwhite skipnl
syn region texCmdBody contained matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]" matchgroup=Delimiter end="}" contains=@texCmdGroup syn region texCmdBody contained matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]" matchgroup=Delimiter end="}" contains=@texCmdGroup
endif endif
syn match texNewEnv "\\newenvironment\>" nextgroup=texEnvName skipwhite skipnl syn match texNewEnv "\\newenvironment\>" nextgroup=texEnvName skipwhite skipnl
if !exists("g:tex_fast") || g:tex_fast =~ 'V' if s:tex_fast =~ 'V'
syn region texEnvName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvBgn skipwhite skipnl syn region texEnvName contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvBgn skipwhite skipnl
syn region texEnvBgn contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup syn region texEnvBgn contained matchgroup=Delimiter start="{"rs=s+1 end="}" nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup
syn region texEnvEnd contained matchgroup=Delimiter start="{"rs=s+1 end="}" skipwhite skipnl contains=@texEnvGroup syn region texEnvEnd contained matchgroup=Delimiter start="{"rs=s+1 end="}" skipwhite skipnl contains=@texEnvGroup
@ -632,11 +641,11 @@ syn match texString "\(``\|''\|,,\)"
" makeatletter -- makeatother sections " makeatletter -- makeatother sections
if !exists("s:tex_no_error") if !exists("s:tex_no_error")
if !exists("g:tex_fast") || g:tex_fast =~ 'S' if s:tex_fast =~ 'S'
syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained syn region texStyle matchgroup=texStatement start='\\makeatletter' end='\\makeatother' contains=@texStyleGroup contained
endif endif
syn match texStyleStatement "\\[a-zA-Z@]\+" contained syn match texStyleStatement "\\[a-zA-Z@]\+" contained
if !exists("g:tex_fast") || g:tex_fast =~ 'S' if s:tex_fast =~ 'S'
syn region texStyleMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texStyleGroup,texError contained syn region texStyleMatcher matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]" end="}" contains=@texStyleGroup,texError contained
syn region texStyleMatcher matchgroup=Delimiter start="\[" end="]" contains=@texStyleGroup,texError contained syn region texStyleMatcher matchgroup=Delimiter start="\[" end="]" contains=@texStyleGroup,texError contained
endif endif
@ -1014,7 +1023,7 @@ if has("conceal") && &enc == 'utf-8'
" Superscripts/Subscripts {{{2 " Superscripts/Subscripts {{{2
if s:tex_conceal =~ 's' if s:tex_conceal =~ 's'
if !exists("g:tex_fast") || g:tex_fast =~ 's' if s:tex_fast =~ 's'
syn region texSuperscript matchgroup=Delimiter start='\^{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher syn region texSuperscript matchgroup=Delimiter start='\^{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSuperscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
syn region texSubscript matchgroup=Delimiter start='_{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher syn region texSubscript matchgroup=Delimiter start='_{' skip="\\\\\|\\[{}]" end='}' contained concealends contains=texSpecialChar,texSubscripts,texStatement,texSubscript,texSuperscript,texMathMatcher
endif endif
@ -1227,7 +1236,7 @@ if did_tex_syntax_inits == 1
let did_tex_syntax_inits= 2 let did_tex_syntax_inits= 2
" TeX highlighting groups which should share similar highlighting " TeX highlighting groups which should share similar highlighting
if !exists("s:tex_no_error") if !exists("s:tex_no_error")
if !exists("tex_no_math") if !exists("g:tex_no_math")
HiLink texBadMath texError HiLink texBadMath texError
HiLink texMathDelimBad texError HiLink texMathDelimBad texError
HiLink texMathError texError HiLink texMathError texError

210
runtime/syntax/tt2.vim Normal file
View File

@ -0,0 +1,210 @@
" Language: TT2 (Perl Template Toolkit)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-05-12
"
" Instration:
" put tt2.vim and tt2html.vim in to your syntax diretory.
"
" add below in your filetype.vim.
" au BufNewFile,BufRead *.tt2 setf tt2
" or
" au BufNewFile,BufRead *.tt2
" \ if ( getline(1) . getline(2) . getline(3) =~ '<\chtml' |
" \ && getline(1) . getline(2) . getline(3) !~ '<[%?]' ) |
" \ || getline(1) =~ '<!DOCTYPE HTML' |
" \ setf tt2html |
" \ else |
" \ setf tt2 |
" \ endif
"
" define START_TAG, END_TAG
" "ASP"
" :let b:tt2_syn_tags = '<% %>'
" "PHP"
" :let b:tt2_syn_tags = '<? ?>'
" "TT2 and HTML"
" :let b:tt2_syn_tags = '\[% %] <!-- -->'
"
" Changes:
" 0.1.3
" Changed fileformat from 'dos' to 'unix'
" Deleted 'echo' that print obstructive message
" 0.1.2
" Added block comment syntax
" e.g. [%# COMMENT
" COMMENT TOO %]
" [%# IT'S SAFE %] HERE IS OUTSIDE OF TT2 DIRECTIVE
" [% # WRONG!! %] HERE STILL BE COMMENT
" 0.1.1
" Release
" 0.1.0
" Internal
"
" License: follow Vim :help uganda
"
if !exists("b:tt2_syn_tags")
let b:tt2_syn_tags = '\[% %]'
"let b:tt2_syn_tags = '\[% %] \[\* \*]'
endif
if !exists("b:tt2_syn_inc_perl")
let b:tt2_syn_inc_perl = 1
endif
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn case match
syn cluster tt2_top_cluster contains=tt2_perlcode,tt2_tag_region
" TT2 TAG Region
if exists("b:tt2_syn_tags")
let s:str = b:tt2_syn_tags . ' '
let s:str = substitute(s:str,'^ \+','','g')
let s:str = substitute(s:str,' \+',' ','g')
while stridx(s:str,' ') > 0
let s:st = strpart(s:str,0,stridx(s:str,' '))
let s:str = substitute(s:str,'[^ ]* ','',"")
let s:ed = strpart(s:str,0,stridx(s:str,' '))
let s:str = substitute(s:str,'[^ ]* ','',"")
exec 'syn region tt2_tag_region '.
\ 'matchgroup=tt2_tag '.
\ 'start=+\(' . s:st .'\)[-]\=+ '.
\ 'end=+[-]\=\(' . s:ed . '\)+ '.
\ 'contains=@tt2_statement_cluster keepend extend'
exec 'syn region tt2_commentblock_region '.
\ 'matchgroup=tt2_tag '.
\ 'start=+\(' . s:st .'\)[-]\=\(#\)\@=+ '.
\ 'end=+[-]\=\(' . s:ed . '\)+ '.
\ 'keepend extend'
"Include Perl syntax when 'PERL' 'RAWPERL' block
if b:tt2_syn_inc_perl
syn include @Perl $VIMRUNTIME/syntax/perl.vim
exec 'syn region tt2_perlcode '.
\ 'start=+\(\(RAW\)\=PERL\s*[-]\=' . s:ed . '\(\n\)\=\)\@<=+ ' .
\ 'end=+' . s:st . '[-]\=\s*END+me=s-1 contains=@Perl keepend'
endif
"echo 'TAGS ' . s:st . ' ' . s:ed
unlet s:st
unlet s:ed
endwhile
else
syn region tt2_tag_region
\ matchgroup=tt2_tag
\ start=+\(\[%\)[-]\=+
\ end=+[-]\=%\]+
\ contains=@tt2_statement_cluster keepend extend
syn region tt2_commentblock_region
\ matchgroup=tt2_tag
\ start=+\(\[%\)[-]\=#+
\ end=+[-]\=%\]+
\ keepend extend
"Include Perl syntax when 'PERL' 'RAWPERL' block
if b:tt2_syn_inc_perl
syn include @Perl $VIMRUNTIME/syntax/perl.vim
syn region tt2_perlcode
\ start=+\(\(RAW\)\=PERL\s*[-]\=%]\(\n\)\=\)\@<=+
\ end=+\[%[-]\=\s*END+me=s-1
\ contains=@Perl keepend
endif
endif
" Directive
syn keyword tt2_directive contained
\ GET CALL SET DEFAULT DEBUG
\ LAST NEXT BREAK STOP BLOCK
\ IF IN UNLESS ELSIF FOR FOREACH WHILE SWITCH CASE
\ USE PLUGIN MACRO META
\ TRY FINAL RETURN LAST
\ CLEAR TO STEP AND OR NOT MOD DIV
\ ELSE PERL RAWPERL END
syn match tt2_directive +|+ contained
syn keyword tt2_directive contained nextgroup=tt2_string_q,tt2_string_qq,tt2_blockname skipwhite skipempty
\ INSERT INCLUDE PROCESS WRAPPER FILTER
\ THROW CATCH
syn keyword tt2_directive contained nextgroup=tt2_def_tag skipwhite skipempty
\ TAGS
syn match tt2_def_tag "\S\+\s\+\S\+\|\<\w\+\>" contained
syn match tt2_variable +\I\w*+ contained
syn match tt2_operator "[+*/%:?-]" contained
syn match tt2_operator "\<\(mod\|div\|or\|and\|not\)\>" contained
syn match tt2_operator "[!=<>]=\=\|&&\|||" contained
syn match tt2_operator "\(\s\)\@<=_\(\s\)\@=" contained
syn match tt2_operator "=>\|," contained
syn match tt2_deref "\([[:alnum:]_)\]}]\s*\)\@<=\." contained
syn match tt2_comment +#.*$+ contained extend
syn match tt2_func +\<\I\w*\(\s*(\)\@=+ contained nextgroup=tt2_bracket_r skipempty skipwhite
"
syn region tt2_bracket_r start=+(+ end=+)+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_bracket_b start=+\[+ end=+]+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_bracket_b start=+{+ end=+}+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_string_qq start=+"+ end=+"+ skip=+\\"+ contained contains=tt2_ivariable keepend extend
syn region tt2_string_q start=+'+ end=+'+ skip=+\\'+ contained keepend extend
syn match tt2_ivariable +\$\I\w*\>\(\.\I\w*\>\)*+ contained
syn match tt2_ivariable +\${\I\w*\>\(\.\I\w*\>\)*}+ contained
syn match tt2_number "\d\+" contained
syn match tt2_number "\d\+\.\d\+" contained
syn match tt2_number "0x\x\+" contained
syn match tt2_number "0\o\+" contained
syn match tt2_blockname "\f\+" contained nextgroup=tt2_blockname_joint skipwhite skipempty
syn match tt2_blockname "$\w\+" contained contains=tt2_ivariable nextgroup=tt2_blockname_joint skipwhite skipempty
syn region tt2_blockname start=+"+ end=+"+ skip=+\\"+ contained contains=tt2_ivariable nextgroup=tt2_blockname_joint keepend skipwhite skipempty
syn region tt2_blockname start=+'+ end=+'+ skip=+\\'+ contained nextgroup=tt2_blockname_joint keepend skipwhite skipempty
syn match tt2_blockname_joint "+" contained nextgroup=tt2_blockname skipwhite skipempty
syn cluster tt2_statement_cluster contains=tt2_directive,tt2_variable,tt2_operator,tt2_string_q,tt2_string_qq,tt2_deref,tt2_comment,tt2_func,tt2_bracket_b,tt2_bracket_r,tt2_number
" Synchronizing
syn sync minlines=50
hi def link tt2_tag Type
hi def link tt2_tag_region Type
hi def link tt2_commentblock_region Comment
hi def link tt2_directive Statement
hi def link tt2_variable Identifier
hi def link tt2_ivariable Identifier
hi def link tt2_operator Statement
hi def link tt2_string_qq String
hi def link tt2_string_q String
hi def link tt2_blockname String
hi def link tt2_comment Comment
hi def link tt2_func Function
hi def link tt2_number Number
if exists("b:tt2_syn_tags")
unlet b:tt2_syn_tags
endif
let b:current_syntax = "tt2"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:ts=4:sw=4

View File

@ -0,0 +1,20 @@
" Language: TT2 embedded with HTML
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2010-07-21
if exists("b:current_syntax")
finish
endif
runtime! syntax/html.vim
unlet b:current_syntax
runtime! syntax/tt2.vim
unlet b:current_syntax
syn cluster htmlPreProc add=@tt2_top_cluster
let b:current_syntax = "tt2html"

20
runtime/syntax/tt2js.vim Normal file
View File

@ -0,0 +1,20 @@
" Language: TT2 embedded with Javascript
" Maintainer: Andy Lester <andy@petdance.com>
" Author: Yates, Peter <pd.yates@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2013-04-10
if exists("b:current_syntax")
finish
endif
runtime! syntax/javascript.vim
unlet b:current_syntax
runtime! syntax/tt2.vim
unlet b:current_syntax
syn cluster javascriptPreProc add=@tt2_top_cluster
let b:current_syntax = "tt2js"

View File

@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: Motif UIL (User Interface Language) " Language: Motif UIL (User Interface Language)
" Maintainer: Thomas Koehler <jean-luc@picard.franken.de> " Maintainer: Thomas Koehler <jean-luc@picard.franken.de>
" Last Change: 2012 May 14 " Last Change: 2013 May 23
" URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/uil.vim " URL: http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/uil.vim
" Quit when a syntax file was already loaded " Quit when a syntax file was already loaded
@ -25,11 +25,11 @@ syn keyword uilTodo contained TODO
syn match uilSpecial contained "\\\d\d\d\|\\." syn match uilSpecial contained "\\\d\d\d\|\\."
syn region uilString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell,uilSpecial syn region uilString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell,uilSpecial
syn match uilCharacter "'[^\\]'" syn match uilCharacter "'[^\\]'"
syn region uilString start=+'+ skip=+\\\\\|\\"+ end=+'+ contains=@Spell,uilSpecial syn region uilString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@Spell,uilSpecial
syn match uilSpecialCharacter "'\\.'" syn match uilSpecialCharacter "'\\.'"
syn match uilSpecialStatement "Xm[^ =(){}]*" syn match uilSpecialStatement "Xm[^ =(){}:;]*"
syn match uilSpecialFunction "MrmNcreateCallback" syn match uilSpecialFunction "MrmNcreateCallback"
syn match uilRessource "XmN[^ =(){}]*" syn match uilRessource "XmN[^ =(){}:;]*"
syn match uilNumber "-\=\<\d*\.\=\d\+\(e\=f\=\|[uU]\=[lL]\=\)\>" syn match uilNumber "-\=\<\d*\.\=\d\+\(e\=f\=\|[uU]\=[lL]\=\)\>"
syn match uilNumber "0[xX]\x\+\>" syn match uilNumber "0[xX]\x\+\>"

View File

@ -1,8 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: Vim 7.3 script " Language: Vim 7.3 script
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: February 15, 2013 " Last Change: May 29, 2013
" Version: 7.3-24 " Version: 7.3-25
" Automatically generated keyword lists: {{{1 " Automatically generated keyword lists: {{{1
" Quit when a syntax file was already loaded {{{2 " Quit when a syntax file was already loaded {{{2
@ -18,12 +18,12 @@ syn keyword vimTodo contained COMBAK FIXME TODO XXX
syn cluster vimCommentGroup contains=vimTodo,@Spell syn cluster vimCommentGroup contains=vimTodo,@Spell
" regular vim commands {{{2 " regular vim commands {{{2
syn keyword vimCommand contained a arga[dd] ar[gs] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier el[se] endfo[r] ene[w] filename fin[d] folddoc[losed] fu[nction] gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] n new noautocmd on[ly] pc[lose] popu p[rint] promptr[epl] ptn pts[elect] py[thon] quote redi[r] res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme spe spellw[rong] star stj[ump] sunme sy t tabe[dit] tabN tabp[revious] tc[l] th[row] tn to[pleft] ts[elect] una[bbreviate] unl ve vie[w] vmapc[lear] wh[ile] win[size] wqa[ll] x xmenu xterm syn keyword vimCommand contained a arga[dd] ar[gs] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier el[se] endfo[r] ene[w] filename fin[d] folddoc[losed] fu[nction] gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] n new noautocmd on[ly] pc[lose] popu p[rint] promptr[epl] ptn pts[elect] py[thon] quote redi[r] res[ize] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme spe spellw[rong] star st[op] sunmenu syn ta tabf[ind] tabnew tabr[ewind] tcld[o] tj[ump] tN tp[revious] tu u[ndo] unlo[ckvar] verb[ose] vim[grep] vne[w] win wn[ext] w[rite] xa[ll] XMLent xunme
syn keyword vimCommand contained ab argd[elete] argu[ment] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec elsei[f] endfun ex files fini[sh] foldd[oopen] g gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] N n[ext] noh[lsearch] o[pen] pe popu[p] P[rint] ps[earch] ptN pu[t] python3 r red[o] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spelld[ump] sp[lit] start st[op] sunmenu syn ta tabf[ind] tabnew tabr[ewind] tcld[o] tj[ump] tN tp[revious] tu u[ndo] unlo[ckvar] verb[ose] vim[grep] vne[w] win wn[ext] w[rite] xa[ll] XMLent xunme syn keyword vimCommand contained ab argd[elete] argu[ment] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec elsei[f] endfun ex files fini[sh] foldd[oopen] g gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] N n[ext] noh[lsearch] o[pen] pe popu[p] P[rint] ps[earch] ptN pu[t] python3 r red[o] ret[ab] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spelld[ump] sp[lit] start stopi[nsert] sus[pend] sync tab tabfir[st] tabn[ext] tabs tclf[ile] tl[ast] tn[ext] tr tu[nmenu] undoj[oin] uns[ilent] ve[rsion] vimgrepa[dd] vs[plit] winc[md] wN[ext] ws[verb] x[it] XMLns xunmenu
syn keyword vimCommand contained abc[lear] argdo as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] em[enu] endf[unction] exi[t] filet fir[st] foldo[pen] get h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv nbc[lose] N[ext] nu[mber] opt[ions] ped[it] pp[op] pro pta[g] ptn[ext] pw[d] q re redr[aw] retu[rn] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spe[llgood] spr[evious] startg[replace] stopi[nsert] sus[pend] sync tab tabfir[st] tabn[ext] tabs tclf[ile] tl[ast] tn[ext] tr tu[nmenu] undoj[oin] uns[ilent] ve[rsion] vimgrepa[dd] vs[plit] winc[md] wN[ext] ws[verb] x[it] XMLns xunmenu syn keyword vimCommand contained abc[lear] argdo as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] em[enu] endf[unction] exi[t] filet fir[st] foldo[pen] get h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv nbc[lose] N[ext] nu[mber] opt[ions] ped[it] pp[op] pro pta[g] ptn[ext] pw[d] q re redr[aw] retu[rn] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spe[llgood] spr[evious] startg[replace] sts[elect] sv[iew] syncbind tabc[lose] tabl[ast] tabN[ext] ta[g] te[aroff] tm tN[ext] tr[ewind] u undol[ist] up[date] vert[ical] vi[sual] w windo wp[revious] wundo xmapc[lear] xnoreme xwininfo
syn keyword vimCommand contained abo[veleft] arge[dit] au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] emenu* en[dif] exu[sage] filetype fix[del] for go[to] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] mz nb[key] nkf o ownsyntax pe[rl] pr profd[el] ptf[irst] ptN[ext] py qa[ll] r[ead] redraws[tatus] rew[ind] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spelli[nfo] sre[wind] star[tinsert] sts[elect] sv[iew] syncbind tabc[lose] tabl[ast] tabN[ext] ta[g] te[aroff] tm tN[ext] tr[ewind] u undol[ist] up[date] vert[ical] vi[sual] w windo wp[revious] wundo xmapc[lear] xnoreme xwininfo syn keyword vimCommand contained abo[veleft] arge[dit] au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] emenu* en[dif] exu[sage] filetype fix[del] for go[to] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] mz nb[key] nkf o ownsyntax pe[rl] pr profd[el] ptf[irst] ptN[ext] py qa[ll] r[ead] redraws[tatus] rew[ind] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spelli[nfo] sre[wind] star[tinsert] sun[hide] sw[apname] synlist tabd[o] tabm[ove] tabo[nly] tags tf[irst] tm[enu] TOhtml try un unh[ide] v vi viu[sage] wa[ll] winp[os] wq wv[iminfo] xme xnoremenu y[ank]
syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon en endt[ry] f fin fo[ld] fu gr[ep] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p perld[o] pre[serve] prof[ile] ptj[ump] ptp[revious] py3 q[uit] rec[over] reg[isters] ri[ght] rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spellr[epall] st startr[eplace] sun[hide] sw[apname] synlist tabd[o] tabm[ove] tabo[nly] tags tf[irst] tm[enu] TOhtml try un unh[ide] v vi viu[sage] wa[ll] winp[os] wq wv[iminfo] xme xnoremenu y[ank] syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon en endt[ry] f fin fo[ld] fu gr[ep] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p perld[o] pre[serve] prof[ile] ptj[ump] ptp[revious] py3 q[uit] rec[over] reg[isters] ri[ght] rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spellr[epall] st startr[eplace] sunme sy t tabe[dit] tabN tabp[revious] tc[l] th[row] tn to[pleft] ts[elect] una[bbreviate] unl ve vie[w] vmapc[lear] wh[ile] win[size] wqa[ll] x xmenu xterm errormsg
syn keyword vimCommand contained ar argl[ocal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] endf endw[hile] f[ile] fina[lly] foldc[lose] fun grepa[dd] helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz[scheme] ne noa omapc[lear] P po[p] prev[ious] promptf[ind] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red Ren rightb[elow] ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellu[ndo] sta[g] syn keyword vimCommand contained ar argl[ocal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] endf endw[hile] f[ile] fina[lly] foldc[lose] fun grepa[dd] helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz[scheme] ne noa omapc[lear] P po[p] prev[ious] promptf[ind] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red Ren rightb[elow] ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellu[ndo] sta[g] stj[ump]
syn match vimCommand contained "\<z[-+^.=]\=" syn match vimCommand contained "\<z[-+^.=]\="
" vimOptions are caught only when contained in a vimSet {{{2 " vimOptions are caught only when contained in a vimSet {{{2
@ -96,8 +96,8 @@ endif
" Numbers {{{2 " Numbers {{{2
" ======= " =======
syn match vimNumber "\<\d\+\([lL]\|\.\d\+\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand syn match vimNumber "\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "-\d\+\([lL]\|\.\d\+\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand syn match vimNumber "-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand
syn match vimNumber "\<0[xX]\x\+" syn match vimNumber "\<0[xX]\x\+"
syn match vimNumber "#\x\{6}" syn match vimNumber "#\x\{6}"

View File

@ -3,7 +3,7 @@
" Maintainer: Johannes Zellner <johannes@zellner.org> " Maintainer: Johannes Zellner <johannes@zellner.org>
" Author and previous maintainer: " Author and previous maintainer:
" Paul Siegmann <pauls@euronet.nl> " Paul Siegmann <pauls@euronet.nl>
" Last Change: 2009-07-13 21:26:55 " Last Change: 2013 May 29
" Filenames: *.xml " Filenames: *.xml
" $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $ " $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $
@ -81,7 +81,7 @@ syn match xmlEqual +=+ display
" ^^^^^^^^^^^^^ " ^^^^^^^^^^^^^
" "
syn match xmlAttrib syn match xmlAttrib
\ +[-'"<]\@<!\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>\(['">]\@!\|$\)+ \ +[-'"<]\@2<!\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>\(['">]\@!\|$\)+
\ contained \ contained
\ contains=xmlAttribPunct,@xmlAttribHook \ contains=xmlAttribPunct,@xmlAttribHook
\ display \ display
@ -98,14 +98,14 @@ syn match xmlAttrib
" "
if exists("g:xml_namespace_transparent") if exists("g:xml_namespace_transparent")
syn match xmlNamespace syn match xmlNamespace
\ +\(<\|</\)\@<=[^ /!?<>"':]\+[:]\@=+ \ +\(<\|</\)\@2<=[^ /!?<>"':]\+[:]\@=+
\ contained \ contained
\ contains=@xmlNamespaceHook \ contains=@xmlNamespaceHook
\ transparent \ transparent
\ display \ display
else else
syn match xmlNamespace syn match xmlNamespace
\ +\(<\|</\)\@<=[^ /!?<>"':]\+[:]\@=+ \ +\(<\|</\)\@2<=[^ /!?<>"':]\+[:]\@=+
\ contained \ contained
\ contains=@xmlNamespaceHook \ contains=@xmlNamespaceHook
\ display \ display
@ -122,7 +122,7 @@ endif
" ^^^ " ^^^
" "
syn match xmlTagName syn match xmlTagName
\ +[<]\@<=[^ /!?<>"']\++ \ +[<]\@2<=[^ /!?<>"']\++
\ contained \ contained
\ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook \ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook
\ display \ display

File diff suppressed because it is too large Load Diff

View File

@ -853,7 +853,7 @@ NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
5. Tapez p pour coller le texte. Puis tapez : un second <Échap> . 5. Tapez p pour coller le texte. Puis tapez : un second <Échap> .
6. Utilisez le mode Visuel pour sélectionner "élément", copiez le avec y , 6. Utilisez le mode Visuel pour sélectionner "élément", copiez-le avec y ,
déplacez-vous à la fin de la ligne suivant avec j$ et collez le texte déplacez-vous à la fin de la ligne suivant avec j$ et collez le texte
à cet endroit avec p . à cet endroit avec p .
@ -1034,5 +1034,5 @@ NOTE : Le compl
Dernières mises à jour par Dominique Pellé. Dernières mises à jour par Dominique Pellé.
E-mail : dominique.pelle@gmail.com E-mail : dominique.pelle@gmail.com
Last Change : 2011 Nov 27 Last Change : 2013 May 10
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -853,7 +853,7 @@ NOTE : Le mode Remplacement est comme le mode Insertion, mais tous les
5. Tapez p pour coller le texte. Puis tapez : un second <Échap> . 5. Tapez p pour coller le texte. Puis tapez : un second <Échap> .
6. Utilisez le mode Visuel pour sélectionner "élément", copiez le avec y , 6. Utilisez le mode Visuel pour sélectionner "élément", copiez-le avec y ,
déplacez-vous à la fin de la ligne suivant avec j$ et collez le texte déplacez-vous à la fin de la ligne suivant avec j$ et collez le texte
à cet endroit avec p . à cet endroit avec p .
@ -1034,5 +1034,5 @@ NOTE : Le complètement fonctionne pour de nombreuses commandes. Essayez
Dernières mises à jour par Dominique Pellé. Dernières mises à jour par Dominique Pellé.
E-mail : dominique.pelle@gmail.com E-mail : dominique.pelle@gmail.com
Last Change : 2011 Nov 27 Last Change : 2013 May 10
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -23,8 +23,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Vim(Esperanto)\n" "Project-Id-Version: Vim(Esperanto)\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-02-10 14:05+0100\n" "POT-Creation-Date: 2013-05-27 04:50+0200\n"
"PO-Revision-Date: 2013-02-10 14:23+0100\n" "PO-Revision-Date: 2013-05-27 04:55+0200\n"
"Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n" "Last-Translator: Dominique PELLÉ <dominique.pelle@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: eo\n" "Language: eo\n"
@ -466,7 +466,7 @@ msgid "E711: List value has not enough items"
msgstr "E711: Lista valoro ne havas sufiĉe da eroj" msgstr "E711: Lista valoro ne havas sufiĉe da eroj"
msgid "E690: Missing \"in\" after :for" msgid "E690: Missing \"in\" after :for"
msgstr "E690: \"in\" mankas malantaŭ \":for\"" msgstr "E690: \"in\" mankas post \":for\""
#, c-format #, c-format
msgid "E107: Missing parentheses: %s" msgid "E107: Missing parentheses: %s"
@ -480,7 +480,7 @@ msgid "E743: variable nested too deep for (un)lock"
msgstr "E743: variablo ingita tro profunde por malŝlosi" msgstr "E743: variablo ingita tro profunde por malŝlosi"
msgid "E109: Missing ':' after '?'" msgid "E109: Missing ':' after '?'"
msgstr "E109: Mankas ':' malantaŭ '?'" msgstr "E109: Mankas ':' post '?'"
msgid "E691: Can only compare List with List" msgid "E691: Can only compare List with List"
msgstr "E691: Eblas nur kompari Liston kun Listo" msgstr "E691: Eblas nur kompari Liston kun Listo"
@ -741,6 +741,9 @@ msgstr "E123: Nedifinita funkcio: %s"
msgid "E124: Missing '(': %s" msgid "E124: Missing '(': %s"
msgstr "E124: Mankas '(': %s" msgstr "E124: Mankas '(': %s"
msgid "E862: Cannot use g: here"
msgstr "E862: Ne eblas uzi g: ĉi tie"
#, c-format #, c-format
msgid "E125: Illegal argument: %s" msgid "E125: Illegal argument: %s"
msgstr "E125: Nevalida argumento: %s" msgstr "E125: Nevalida argumento: %s"
@ -1009,6 +1012,10 @@ msgstr "E148: Regulesprimo mankas el global"
msgid "Pattern found in every line: %s" msgid "Pattern found in every line: %s"
msgstr "Ŝablono trovita en ĉiuj linioj: %s" msgstr "Ŝablono trovita en ĉiuj linioj: %s"
#, c-format
msgid "Pattern not found: %s"
msgstr "Ŝablono ne trovita: %s"
msgid "" msgid ""
"\n" "\n"
"# Last Substitute String:\n" "# Last Substitute String:\n"
@ -1325,7 +1332,8 @@ msgstr "E180: Nevalida valoro de kompletigo: %s"
msgid "E468: Completion argument only allowed for custom completion" msgid "E468: Completion argument only allowed for custom completion"
msgstr "" msgstr ""
"E468: Argumento de kompletigo nur permesebla por kompletigo difinita de uzanto" "E468: Argumento de kompletigo nur permesebla por kompletigo difinita de "
"uzanto"
msgid "E467: Custom completion requires a function argument" msgid "E467: Custom completion requires a function argument"
msgstr "E467: Uzula kompletigo bezonas funkcian argumenton" msgstr "E467: Uzula kompletigo bezonas funkcian argumenton"
@ -1519,7 +1527,7 @@ msgid "E583: multiple :else"
msgstr "E583: pluraj \":else\"" msgstr "E583: pluraj \":else\""
msgid "E584: :elseif after :else" msgid "E584: :elseif after :else"
msgstr "E584: \":elseif\" malantaŭ \":else\"" msgstr "E584: \":elseif\" post \":else\""
msgid "E585: :while/:for nesting too deep" msgid "E585: :while/:for nesting too deep"
msgstr "E585: \":while/:for\" ingita tro profunde" msgstr "E585: \":while/:for\" ingita tro profunde"
@ -1545,7 +1553,7 @@ msgstr "E603: \":catch\" sen \":try\""
#. Give up for a ":catch" after ":finally" and ignore it. #. Give up for a ":catch" after ":finally" and ignore it.
#. * Just parse. #. * Just parse.
msgid "E604: :catch after :finally" msgid "E604: :catch after :finally"
msgstr "E604: \":catch\" malantaŭ \":finally\"" msgstr "E604: \":catch\" post \":finally\""
msgid "E606: :finally without :try" msgid "E606: :finally without :try"
msgstr "E606: \":finally\" sen \":try\"" msgstr "E606: \":finally\" sen \":try\""
@ -1950,7 +1958,7 @@ msgstr "E367: Ne ekzistas tia grupo: \"%s\""
#, c-format #, c-format
msgid "E215: Illegal character after *: %s" msgid "E215: Illegal character after *: %s"
msgstr "E215: Nevalida signo malantaŭ *: %s" msgstr "E215: Nevalida signo post *: %s"
#, c-format #, c-format
msgid "E216: No such event: %s" msgid "E216: No such event: %s"
@ -2654,24 +2662,11 @@ msgstr ""
msgid "E659: Cannot invoke Python recursively" msgid "E659: Cannot invoke Python recursively"
msgstr "E659: Ne eblas alvoki Pitonon rekursie" msgstr "E659: Ne eblas alvoki Pitonon rekursie"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval ne revenis kun valida python-objekto"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Konverto de revena python-objekto al vim-valoro fiaskis"
#, c-format
msgid "<buffer object (deleted) at %p>"
msgstr "<bufra objekto (forviŝita) ĉe %p>"
msgid "E837: This Vim cannot execute :py3 after using :python" msgid "E837: This Vim cannot execute :py3 after using :python"
msgstr "E837: Vim ne povas plenumi :py3 post uzo de :python" msgstr "E837: Vim ne povas plenumi :py3 post uzo de :python"
msgid "E860: Eval did not return a valid python 3 object" msgid "index must be int or slice"
msgstr "E860: Eval ne revenis kun valida python3-objekto" msgstr "indekso devas esti 'int' aŭ 'slice'"
msgid "E861: Failed to convert returned python 3 object to vim value"
msgstr "E861: Konverto de revena python3-objekto al vim-valoro fiaskis"
msgid "E265: $_ must be an instance of String" msgid "E265: $_ must be an instance of String"
msgstr "E265: $_ devas esti apero de Ĉeno" msgstr "E265: $_ devas esti apero de Ĉeno"
@ -2889,10 +2884,10 @@ msgid "Too many edit arguments"
msgstr "Tro da argumentoj de redakto" msgstr "Tro da argumentoj de redakto"
msgid "Argument missing after" msgid "Argument missing after"
msgstr "Argumento mankas malantaŭ" msgstr "Argumento mankas post"
msgid "Garbage after option argument" msgid "Garbage after option argument"
msgstr "Forĵetindaĵo malantaŭ argumento de opcio" msgstr "Forĵetindaĵo post argumento de opcio"
msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments" msgid "Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"
msgstr "Tro da argumentoj \"+komando\", \"-c komando\" aŭ \"--cmd komando\"" msgstr "Tro da argumentoj \"+komando\", \"-c komando\" aŭ \"--cmd komando\""
@ -2995,7 +2990,7 @@ msgstr ""
"Argumentoj:\n" "Argumentoj:\n"
msgid "--\t\t\tOnly file names after this" msgid "--\t\t\tOnly file names after this"
msgstr "--\t\t\tNur dosiernomoj malantaŭ tio" msgstr "--\t\t\tNur dosiernomoj post tio"
msgid "--literal\t\tDon't expand wildcards" msgid "--literal\t\tDon't expand wildcards"
msgstr "--literal\t\tNe malvolvi ĵokerojn" msgstr "--literal\t\tNe malvolvi ĵokerojn"
@ -4302,7 +4297,7 @@ msgid "E846: Key code not set"
msgstr "E846: Klavkodo ne agordita" msgstr "E846: Klavkodo ne agordita"
msgid "E521: Number required after =" msgid "E521: Number required after ="
msgstr "E521: Nombro bezonata malantaŭ =" msgstr "E521: Nombro bezonata post ="
msgid "E522: Not found in termcap" msgid "E522: Not found in termcap"
msgstr "E522: Netrovita en termcap" msgstr "E522: Netrovita en termcap"
@ -4340,7 +4335,7 @@ msgstr "E525: Ĉeno de nula longo"
#, c-format #, c-format
msgid "E526: Missing number after <%s>" msgid "E526: Missing number after <%s>"
msgstr "E526: Mankas nombro malantaŭ <%s>" msgstr "E526: Mankas nombro post <%s>"
msgid "E527: Missing comma" msgid "E527: Missing comma"
msgstr "E527: Mankas komo" msgstr "E527: Mankas komo"
@ -4368,7 +4363,7 @@ msgstr "E534: Nevalida larĝa tiparo"
#, c-format #, c-format
msgid "E535: Illegal character after <%c>" msgid "E535: Illegal character after <%c>"
msgstr "E535: Nevalida signo malantaŭ <%c>" msgstr "E535: Nevalida signo post <%c>"
msgid "E536: comma required" msgid "E536: comma required"
msgstr "E536: komo bezonata" msgstr "E536: komo bezonata"
@ -4451,7 +4446,7 @@ msgstr "E357: 'langmap': Kongrua signo mankas por %s"
#, c-format #, c-format
msgid "E358: 'langmap': Extra characters after semicolon: %s" msgid "E358: 'langmap': Extra characters after semicolon: %s"
msgstr "E358: 'langmap': Ekstraj signoj malantaŭ punktokomo: %s" msgstr "E358: 'langmap': Ekstraj signoj post punktokomo: %s"
msgid "cannot open " msgid "cannot open "
msgstr "ne eblas malfermi " msgstr "ne eblas malfermi "
@ -4758,6 +4753,22 @@ msgstr "E777: Ĉeno aŭ Listo atendita"
msgid "E369: invalid item in %s%%[]" msgid "E369: invalid item in %s%%[]"
msgstr "E369: nevalida ano en %s%%[]" msgstr "E369: nevalida ano en %s%%[]"
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: Mankas ] post %s["
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: Neekvilibra %s%%("
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: Neekvilibra %s("
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: Neekvilibra %s"
msgid "E339: Pattern too long" msgid "E339: Pattern too long"
msgstr "E339: Ŝablono tro longa" msgstr "E339: Ŝablono tro longa"
@ -4771,21 +4782,9 @@ msgstr "E51: Tro da %s("
msgid "E52: Unmatched \\z(" msgid "E52: Unmatched \\z("
msgstr "E52: Neekvilibra \\z(" msgstr "E52: Neekvilibra \\z("
#, c-format
msgid "E53: Unmatched %s%%("
msgstr "E53: Neekvilibra %s%%("
#, c-format
msgid "E54: Unmatched %s("
msgstr "E54: Neekvilibra %s("
#, c-format
msgid "E55: Unmatched %s)"
msgstr "E55: Neekvilibra %s"
#, c-format #, c-format
msgid "E59: invalid character after %s@" msgid "E59: invalid character after %s@"
msgstr "E59: nevalida signo malantaŭ %s@" msgstr "E59: nevalida signo post %s@"
#, c-format #, c-format
msgid "E60: Too many complex %s{...}s" msgid "E60: Too many complex %s{...}s"
@ -4817,11 +4816,11 @@ msgid "E67: \\z1 et al. not allowed here"
msgstr "E67: \\z1 kaj aliaj estas nepermeseblaj tie" msgstr "E67: \\z1 kaj aliaj estas nepermeseblaj tie"
msgid "E68: Invalid character after \\z" msgid "E68: Invalid character after \\z"
msgstr "E68: Nevalida signo malantaŭ \\z" msgstr "E68: Nevalida signo post \\z"
#, c-format #, c-format
msgid "E69: Missing ] after %s%%[" msgid "E69: Missing ] after %s%%["
msgstr "E69: Mankas ] malantaŭ %s%%[" msgstr "E69: Mankas ] post %s%%["
#, c-format #, c-format
msgid "E70: Empty %s%%[]" msgid "E70: Empty %s%%[]"
@ -4829,15 +4828,11 @@ msgstr "E70: Malplena %s%%[]"
#, c-format #, c-format
msgid "E678: Invalid character after %s%%[dxouU]" msgid "E678: Invalid character after %s%%[dxouU]"
msgstr "E678: Nevalida signo malantaŭ %s%%[dxouU]" msgstr "E678: Nevalida signo post %s%%[dxouU]"
#, c-format #, c-format
msgid "E71: Invalid character after %s%%" msgid "E71: Invalid character after %s%%"
msgstr "E71: Nevalida signo malantaŭ %s%%" msgstr "E71: Nevalida signo post %s%%"
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: Mankas ] malantaŭ %s["
#, c-format #, c-format
msgid "E554: Syntax error in %s{...}" msgid "E554: Syntax error in %s{...}"
@ -4846,6 +4841,83 @@ msgstr "E554: Sintaksa eraro en %s{...}"
msgid "External submatches:\n" msgid "External submatches:\n"
msgstr "Eksteraj subkongruoj:\n" msgstr "Eksteraj subkongruoj:\n"
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
msgstr ""
"E864: \\%#= povas nur esti sekvita de 0, 1, aŭ 2. La aŭtomata motoro de "
"regulesprimo estos uzata "
#, c-format
msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (NFA-regulesprimo) Mispoziciigita %c"
msgid "E865: (NFA) Regexp end encountered prematurely"
msgstr "E865: (NFA) Trovis finon de regulesprimo tro frue"
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
msgstr "E867: (NFA) Nekonata operatoro '\\z%c'"
#. should never happen
msgid "E868: Error building NFA with equivalence class!"
msgstr "E868: Eraro dum prekomputado de NFA kun ekvivalentoklaso!"
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
msgstr "E869: (NFA) Nekonata operatoro '\\@%c'"
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (NFS-regulesprimo) Eraro dum legado de limoj de ripeto"
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr ""
"E871: (NFA-regulesprimo) Ne povas havi mult-selekton tuj post alia mult-"
"selekto!"
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (NFA-regulesprimo) tro da '('"
msgid "E873: (NFA regexp) proper termination error"
msgstr "E873: (NFA-regulesprimo) propra end-eraro"
msgid "E874: (NFA) Could not pop the stack !"
msgstr "E874: (NFA) Ne povis elpreni de la staplo!"
msgid ""
"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
"left on stack"
msgstr ""
"E875: (NFA-regulesprimo) (dum konverto de postmeto al NFA), restas tro da "
"statoj en la staplo"
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (NFA-regulesprimo) ne sufiĉa spaco por enmomorigi la tutan NFA "
msgid "E999: (NFA regexp internal error) Should not process NOT node !"
msgstr ""
"E999: (interna eraro de NFA-regulesprimo) Ne devus procezi nodon 'NOT'!"
#. should not be here :P
msgid "E877: (NFA regexp) Invalid character class "
msgstr "E877: (NFA-regulesprimo) Nevalida klaso de signo "
#, c-format
msgid "(NFA) COULD NOT OPEN %s !"
msgstr "(NFA) NE POVIS MALFERMI %s!"
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
"Ne povis malfermi provizoran protokolan dosieron por skribi, nun montras sur "
"stderr ..."
msgid "E878: (NFA) Could not allocate memory for branch traversal!"
msgstr "E878: (NFA) Ne povis asigni memoron por traigi branĉojn!"
msgid "Could not open temporary log file for writing "
msgstr "Ne povis malfermi la provizoran protokolan dosieron por skribi "
msgid " VREPLACE" msgid " VREPLACE"
msgstr " V-ANSTATAŬIGO" msgstr " V-ANSTATAŬIGO"
@ -4913,7 +4985,7 @@ msgid "E385: search hit BOTTOM without match for: %s"
msgstr "E385: serĉo atingis SUBON sen trovi: %s" msgstr "E385: serĉo atingis SUBON sen trovi: %s"
msgid "E386: Expected '?' or '/' after ';'" msgid "E386: Expected '?' or '/' after ';'"
msgstr "E386: Atendis '?' aŭ '/' malantaŭ ';'" msgstr "E386: Atendis '?' aŭ '/' post ';'"
msgid " (includes previously listed match)" msgid " (includes previously listed match)"
msgstr " (enhavas antaŭe listigitajn kongruojn)" msgstr " (enhavas antaŭe listigitajn kongruojn)"
@ -5046,23 +5118,23 @@ msgstr "Nevalida valoro de FLAG en %s linio %d: %s"
#, c-format #, c-format
msgid "FLAG after using flags in %s line %d: %s" msgid "FLAG after using flags in %s line %d: %s"
msgstr "FLAG malantaŭ flagoj en %s linio %d: %s" msgstr "FLAG post flagoj en %s linio %d: %s"
#, c-format #, c-format
msgid "" msgid ""
"Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line " "Defining COMPOUNDFORBIDFLAG after PFX item may give wrong results in %s line "
"%d" "%d"
msgstr "" msgstr ""
"Difino de COMPOUNDFORBIDFLAG malantaŭ ano PFX povas doni neĝustajn rezultojn " "Difino de COMPOUNDFORBIDFLAG post ano PFX povas doni neĝustajn rezultojn en "
"en %s linio %d" "%s linio %d"
#, c-format #, c-format
msgid "" msgid ""
"Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line " "Defining COMPOUNDPERMITFLAG after PFX item may give wrong results in %s line "
"%d" "%d"
msgstr "" msgstr ""
"Difino de COMPOUNDPERMITFLAG malantaŭ ano PFX povas doni neĝustajn rezultojn " "Difino de COMPOUNDPERMITFLAG post ano PFX povas doni neĝustajn rezultojn en "
"en %s linio %d" "%s linio %d"
#, c-format #, c-format
msgid "Wrong COMPOUNDRULES value in %s line %d: %s" msgid "Wrong COMPOUNDRULES value in %s line %d: %s"
@ -5198,7 +5270,7 @@ msgstr "Ripetita linio /encoding= ignorita en %s linio %d: %s"
#, c-format #, c-format
msgid "/encoding= line after word ignored in %s line %d: %s" msgid "/encoding= line after word ignored in %s line %d: %s"
msgstr "Linio /encoding= malantaŭ vorto ignorita en %s linio %d: %s" msgstr "Linio /encoding= post vorto ignorita en %s linio %d: %s"
#, c-format #, c-format
msgid "Duplicate /regions= line ignored in %s line %d: %s" msgid "Duplicate /regions= line ignored in %s line %d: %s"
@ -5444,7 +5516,7 @@ msgstr "E401: Disigilo de ŝablono netrovita: %s"
#, c-format #, c-format
msgid "E402: Garbage after pattern: %s" msgid "E402: Garbage after pattern: %s"
msgstr "E402: Forĵetindaĵo malantaŭ ŝablono: %s" msgstr "E402: Forĵetindaĵo post ŝablono: %s"
msgid "E403: syntax sync: line continuations pattern specified twice" msgid "E403: syntax sync: line continuations pattern specified twice"
msgstr "E403: sintaksa sinkronigo: ŝablono de linia daŭrigo specifita dufoje" msgstr "E403: sintaksa sinkronigo: ŝablono de linia daŭrigo specifita dufoje"
@ -5787,7 +5859,7 @@ msgid "before"
msgstr "antaŭ" msgstr "antaŭ"
msgid "after" msgid "after"
msgstr "malantaŭ" msgstr "post"
msgid "Nothing to undo" msgid "Nothing to undo"
msgstr "Nenio por malfari" msgstr "Nenio por malfari"
@ -5800,7 +5872,7 @@ msgid "%ld seconds ago"
msgstr "antaŭ %ld sekundoj" msgstr "antaŭ %ld sekundoj"
msgid "E790: undojoin is not allowed after undo" msgid "E790: undojoin is not allowed after undo"
msgstr "E790: undojoin estas nepermesebla malantaŭ malfaro" msgstr "E790: undojoin estas nepermesebla post malfaro"
msgid "E439: undo list corrupt" msgid "E439: undo list corrupt"
msgstr "E439: listo de malfaro estas difekta" msgstr "E439: listo de malfaro estas difekta"
@ -6574,33 +6646,27 @@ msgstr "writelines() bezonas liston de ĉenoj"
msgid "E264: Python: Error initialising I/O objects" msgid "E264: Python: Error initialising I/O objects"
msgstr "E264: Pitono: Eraro de pravalorizo de eneligaj objektoj" msgstr "E264: Pitono: Eraro de pravalorizo de eneligaj objektoj"
msgid "no such buffer"
msgstr "ne estas tia bufro"
msgid "empty keys are not allowed" msgid "empty keys are not allowed"
msgstr "malplenaj ŝlosiloj nepermeseblaj" msgstr "malplenaj ŝlosiloj nepermeseblaj"
msgid "failed to add key to dictionary"
msgstr "aldono de ŝlosilo al vortaro fiaskis"
msgid "Cannot delete DictionaryObject attributes" msgid "Cannot delete DictionaryObject attributes"
msgstr "ne eblas forviŝi atributojn de DictionaryObject" msgstr "ne eblas forviŝi atributojn de DictionaryObject"
msgid "Cannot modify fixed dictionary" msgid "Cannot modify fixed dictionary"
msgstr "Ne eblas ŝanĝi fiksan vortaron" msgstr "Ne eblas ŝanĝi fiksan vortaron"
msgid "Only boolean objects are allowed"
msgstr "Nur buleaj objektoj estas permeseblaj"
msgid "Cannot set this attribute" msgid "Cannot set this attribute"
msgstr "Ne eblas agordi tiun atributon" msgstr "Ne eblas agordi tiun atributon"
msgid "no such key in dictionary"
msgstr "tiu ŝlosilo ne ekzistas en vortaro"
msgid "dict is locked" msgid "dict is locked"
msgstr "vortaro estas ŝlosita" msgstr "vortaro estas ŝlosita"
msgid "failed to add key to dictionary"
msgstr "aldono de ŝlosilo al vortaro fiaskis"
msgid "list index out of range"
msgstr "indekso de listo ekster limoj"
msgid "internal error: failed to get vim list item" msgid "internal error: failed to get vim list item"
msgstr "interna eraro: obteno de vim-a listero fiaskis" msgstr "interna eraro: obteno de vim-a listero fiaskis"
@ -6622,8 +6688,14 @@ msgstr "interna eraro: aldono de listero fiaskis"
msgid "can only concatenate with lists" msgid "can only concatenate with lists"
msgstr "eblas nur kunmeti kun listoj" msgstr "eblas nur kunmeti kun listoj"
msgid "Cannot modify fixed list" msgid "cannot delete vim.dictionary attributes"
msgstr "Ne eblas ŝanĝi fiksan liston" msgstr "ne eblas forviŝi atributojn de 'vim.dictionary'"
msgid "cannot modify fixed list"
msgstr "ne eblas ŝanĝi fiksan liston"
msgid "cannot set this attribute"
msgstr "ne eblas agordi tiun atributon"
msgid "'self' argument must be a dictionary" msgid "'self' argument must be a dictionary"
msgstr "argumento 'self' devas esti vortaro" msgstr "argumento 'self' devas esti vortaro"
@ -6631,6 +6703,39 @@ msgstr "argumento 'self' devas esti vortaro"
msgid "failed to run function" msgid "failed to run function"
msgstr "fiaskis ruli funkcion" msgstr "fiaskis ruli funkcion"
msgid "unable to get option value"
msgstr "fiaskis akiri valoron de opcio"
msgid "unable to unset global option"
msgstr "ne povis malŝalti mallokan opcion"
msgid "unable to unset option without global value"
msgstr "ne povis malŝalti opcion sen malloka valoro"
msgid "object must be integer"
msgstr "objekto devas esti entjero."
msgid "object must be string"
msgstr "objekto devas esti ĉeno"
msgid "attempt to refer to deleted tab page"
msgstr "provo de referenco al forviŝita langeto"
#, c-format
msgid "<tabpage object (deleted) at %p>"
msgstr "<langeta objekto (forviŝita) ĉe %p>"
#, c-format
msgid "<tabpage object (unknown) at %p>"
msgstr "<langeta objekto (nekonata) ĉe %p>"
#, c-format
msgid "<tabpage %d>"
msgstr "<langeto %d>"
msgid "no such tab page"
msgstr "ne estas tia langeto"
msgid "attempt to refer to deleted window" msgid "attempt to refer to deleted window"
msgstr "provo de referenco al forviŝita fenestro" msgstr "provo de referenco al forviŝita fenestro"
@ -6658,6 +6763,43 @@ msgstr "ne estas tia fenestro"
msgid "attempt to refer to deleted buffer" msgid "attempt to refer to deleted buffer"
msgstr "provo de referenco al forviŝita bufro" msgstr "provo de referenco al forviŝita bufro"
#, c-format
msgid "<buffer object (deleted) at %p>"
msgstr "<bufra objekto (forviŝita) ĉe %p>"
msgid "key must be integer"
msgstr "ŝlosilo devas esti entjero."
msgid "expected vim.buffer object"
msgstr "atendis objekton vim.buffer"
msgid "failed to switch to given buffer"
msgstr "ne povis salti al la specifita bufro"
msgid "expected vim.window object"
msgstr "atendis objekton vim.window"
msgid "failed to find window in the current tab page"
msgstr "ne povis trovi vindozon en la nuna langeto"
msgid "did not switch to the specified window"
msgstr "ne saltis al la specifita vindozo"
msgid "expected vim.tabpage object"
msgstr "atendis objekton vim.tabpage"
msgid "did not switch to the specified tab page"
msgstr "ne saltis al la specifita langeto"
msgid "failed to run the code"
msgstr "fiaskis ruli la kodon"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval ne revenis kun valida python-objekto"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Konverto de revena python-objekto al vim-valoro fiaskis"
msgid "unable to convert to vim structure" msgid "unable to convert to vim structure"
msgstr "ne povis konverti al vim-strukturo" msgstr "ne povis konverti al vim-strukturo"
@ -6665,4 +6807,19 @@ msgid "NULL reference passed"
msgstr "NULL-referenco argumento" msgstr "NULL-referenco argumento"
msgid "internal error: invalid value type" msgid "internal error: invalid value type"
msgstr "interna eraro: nevalida typo de valoro" msgstr "interna eraro: nevalida tipo de valoro"
#~ msgid "E863: return value must be an instance of str"
#~ msgstr "E863: elira valoro devas esti apero de str"
#~ msgid "E860: Eval did not return a valid python 3 object"
#~ msgstr "E860: Eval ne revenis kun valida python3-objekto"
#~ msgid "E861: Failed to convert returned python 3 object to vim value"
#~ msgstr "E861: Konverto de revena python3-objekto al vim-valoro fiaskis"
#~ msgid "Only boolean objects are allowed"
#~ msgstr "Nur buleaj objektoj estas permeseblaj"
#~ msgid "no such key in dictionary"
#~ msgstr "tiu ŝlosilo ne ekzistas en vortaro"

View File

@ -15,8 +15,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Vim(Français)\n" "Project-Id-Version: Vim(Français)\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-02-10 14:05+0100\n" "POT-Creation-Date: 2013-05-27 04:55+0200\n"
"PO-Revision-Date: 2013-02-10 14:48+0100\n" "PO-Revision-Date: 2013-05-27 10:22+0200\n"
"Last-Translator: Dominique Pellé <dominique.pelle@gmail.com>\n" "Last-Translator: Dominique Pellé <dominique.pelle@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: fr\n" "Language: fr\n"
@ -47,7 +47,7 @@ msgid "[Quickfix List]"
msgstr "[Liste Quickfix]" msgstr "[Liste Quickfix]"
msgid "E855: Autocommands caused command to abort" msgid "E855: Autocommands caused command to abort"
msgstr "E855: Des autocommandes ont causé la termination de la commande" msgstr "E855: Des autocommandes ont causé la terminaison de la commande"
# AB - Il faut respecter l'esprit plus que la lettre. # AB - Il faut respecter l'esprit plus que la lettre.
msgid "E82: Cannot allocate any buffer, exiting..." msgid "E82: Cannot allocate any buffer, exiting..."
@ -817,6 +817,9 @@ msgstr "E123: Fonction non d
msgid "E124: Missing '(': %s" msgid "E124: Missing '(': %s"
msgstr "E124: Il manque '(' après %s" msgstr "E124: Il manque '(' après %s"
msgid "E862: Cannot use g: here"
msgstr "E862: Impossible d'utiliser g: ici"
#, c-format #, c-format
msgid "E125: Illegal argument: %s" msgid "E125: Illegal argument: %s"
msgstr "E125: Argument invalide : %s" msgstr "E125: Argument invalide : %s"
@ -1164,6 +1167,10 @@ msgstr "E148: :global doit
msgid "Pattern found in every line: %s" msgid "Pattern found in every line: %s"
msgstr "Motif trouvé dans toutes les lignes : %s" msgstr "Motif trouvé dans toutes les lignes : %s"
#, c-format
msgid "Pattern not found: %s"
msgstr "Motif introuvable: %s"
# AB - Ne pas traduire le dollar. # AB - Ne pas traduire le dollar.
# AB - Ce message n'est volontairement pas traduit. En effet, il fait partie # AB - Ce message n'est volontairement pas traduit. En effet, il fait partie
# d'un groupe de trois messages dans viminfo, dont deux ne sont pas soumis # d'un groupe de trois messages dans viminfo, dont deux ne sont pas soumis
@ -2885,24 +2892,11 @@ msgstr ""
msgid "E659: Cannot invoke Python recursively" msgid "E659: Cannot invoke Python recursively"
msgstr "E659: Impossible d'invoquer Python récursivement" msgstr "E659: Impossible d'invoquer Python récursivement"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval n'a pas retourné un objet python valide"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Conversion d'objet python à une valeur de vim a échoué"
#, c-format
msgid "<buffer object (deleted) at %p>"
msgstr "<objet tampon (effacé) à %p>"
msgid "E837: This Vim cannot execute :py3 after using :python" msgid "E837: This Vim cannot execute :py3 after using :python"
msgstr "E837: Vim ne peut pas exécuter :py3 après avoir utilisé :python" msgstr "E837: Vim ne peut pas exécuter :py3 après avoir utilisé :python"
msgid "E860: Eval did not return a valid python 3 object" msgid "index must be int or slice"
msgstr "E860: Eval n'a pas retourné un object python 3 valid" msgstr "index doit être int ou slice"
msgid "E861: Failed to convert returned python 3 object to vim value"
msgstr "E861: Conversion d'objet python 3 à une valeur de vim a échoué"
msgid "E265: $_ must be an instance of String" msgid "E265: $_ must be an instance of String"
msgstr "E265: $_ doit être une instance de chaîne (String)" msgstr "E265: $_ doit être une instance de chaîne (String)"
@ -5007,18 +5001,9 @@ msgstr "E777: Cha
msgid "E369: invalid item in %s%%[]" msgid "E369: invalid item in %s%%[]"
msgstr "E369: élément invalide dans %s%%[]" msgstr "E369: élément invalide dans %s%%[]"
msgid "E339: Pattern too long"
msgstr "E339: Motif trop long"
msgid "E50: Too many \\z("
msgstr "E50: Trop de \\z("
#, c-format #, c-format
msgid "E51: Too many %s(" msgid "E769: Missing ] after %s["
msgstr "E51: Trop de %s(" msgstr "E769: ']' manquant après %s["
msgid "E52: Unmatched \\z("
msgstr "E52: Pas de correspondance pour \\z("
#, c-format #, c-format
msgid "E53: Unmatched %s%%(" msgid "E53: Unmatched %s%%("
@ -5032,6 +5017,19 @@ msgstr "E54: %s( ouvrante non ferm
msgid "E55: Unmatched %s)" msgid "E55: Unmatched %s)"
msgstr "E55: %s) fermante non ouverte" msgstr "E55: %s) fermante non ouverte"
msgid "E339: Pattern too long"
msgstr "E339: Motif trop long"
msgid "E50: Too many \\z("
msgstr "E50: Trop de \\z("
#, c-format
msgid "E51: Too many %s("
msgstr "E51: Trop de %s("
msgid "E52: Unmatched \\z("
msgstr "E52: Pas de correspondance pour \\z("
#, c-format #, c-format
msgid "E59: invalid character after %s@" msgid "E59: invalid character after %s@"
msgstr "E59: caractère invalide après %s@" msgstr "E59: caractère invalide après %s@"
@ -5083,10 +5081,6 @@ msgstr "E678: Caract
msgid "E71: Invalid character after %s%%" msgid "E71: Invalid character after %s%%"
msgstr "E71: Caractère invalide après %s%%" msgstr "E71: Caractère invalide après %s%%"
#, c-format
msgid "E769: Missing ] after %s["
msgstr "E769: ']' manquant après %s["
#, c-format #, c-format
msgid "E554: Syntax error in %s{...}" msgid "E554: Syntax error in %s{...}"
msgstr "E554: Erreur de syntaxe dans %s{...}" msgstr "E554: Erreur de syntaxe dans %s{...}"
@ -5094,6 +5088,83 @@ msgstr "E554: Erreur de syntaxe dans %s{...}"
msgid "External submatches:\n" msgid "External submatches:\n"
msgstr "Sous-correspondances externes :\n" msgstr "Sous-correspondances externes :\n"
msgid ""
"E864: \\%#= can only be followed by 0, 1, or 2. The automatic engine will be "
"used "
msgstr ""
"E864: \\%#= peut être suivi uniquement de 0, 1 ou 2. Le moteur automatique "
"sera utilisé "
#, c-format
msgid "E866: (NFA regexp) Misplaced %c"
msgstr "E866: (regexp NFA) %c au mauvais endroit"
msgid "E865: (NFA) Regexp end encountered prematurely"
msgstr "E865: (NFA) Fin de regexp rencontrée prématurément"
#, c-format
msgid "E867: (NFA) Unknown operator '\\z%c'"
msgstr "E867: (NFA) Opérateur inconnu '\\z%c'"
#. should never happen
msgid "E868: Error building NFA with equivalence class!"
msgstr "E868: Erreur lors de la construction du NFA avec classe d'équivalence"
#, c-format
msgid "E869: (NFA) Unknown operator '\\@%c'"
msgstr "E869: (NFA) Opérateur inconnu '\\@%c'"
msgid "E870: (NFA regexp) Error reading repetition limits"
msgstr "E870: (regexp NFA) Erreur à la lecture des limites de répétition"
msgid "E871: (NFA regexp) Can't have a multi follow a multi !"
msgstr "E871: (regexp NFA) Un multi ne peut pas suivre un multi !"
msgid "E872: (NFA regexp) Too many '('"
msgstr "E872: (regexp NFA) Trop de '('"
msgid "E873: (NFA regexp) proper termination error"
msgstr "E873: (NFA regexp) erreur de terminaison"
msgid "E874: (NFA) Could not pop the stack !"
msgstr "E874: (NFA) Impossible de dépiler !"
msgid ""
"E875: (NFA regexp) (While converting from postfix to NFA), too many states "
"left on stack"
msgstr ""
"E875: (regexp NFA) (lors de la conversion de postfix à NFA), il reste trop "
"d'états sur la pile"
msgid "E876: (NFA regexp) Not enough space to store the whole NFA "
msgstr "E876: (regexp NFA) Pas assez de mémoire pour stocker le NFA"
msgid "E999: (NFA regexp internal error) Should not process NOT node !"
msgstr ""
"E999: (erreur interne du regexp NFA) Un noeud 'NOT' ne devrait pas être "
"traité !"
#. should not be here :P
msgid "E877: (NFA regexp) Invalid character class "
msgstr "E877: (regexp NFA) Classe de caractère invalide "
#, c-format
msgid "(NFA) COULD NOT OPEN %s !"
msgstr "(NFA) IMPOSSIBLE D'OUVRIR %s !"
msgid ""
"Could not open temporary log file for writing, displaying on stderr ... "
msgstr ""
"Impossible d'ouvrir le fichier de log temporaire en écriture, affichage sur "
"stderr ... "
msgid "E878: (NFA) Could not allocate memory for branch traversal!"
msgstr ""
"E878: (NFA) Impossible d'allouer la mémoire pour parcourir les branches!"
msgid "Could not open temporary log file for writing "
msgstr "Impossible d'ouvrir le fichier de log en écriture"
msgid " VREPLACE" msgid " VREPLACE"
msgstr " VREMPLACEMENT" msgstr " VREMPLACEMENT"
@ -5271,7 +5342,7 @@ msgstr "E770: Section non support
#, c-format #, c-format
msgid "Warning: region %s not supported" msgid "Warning: region %s not supported"
msgstr "Alerte : region %s non supportée" msgstr "Alerte : région %s non supportée"
#, c-format #, c-format
msgid "Reading affix file %s ..." msgid "Reading affix file %s ..."
@ -6841,33 +6912,27 @@ msgstr "writelines() requiert une liste de cha
msgid "E264: Python: Error initialising I/O objects" msgid "E264: Python: Error initialising I/O objects"
msgstr "E264: Python : Erreur d'initialisation des objets d'E/S" msgstr "E264: Python : Erreur d'initialisation des objets d'E/S"
msgid "no such buffer"
msgstr "ce tampon n'existe pas"
msgid "empty keys are not allowed" msgid "empty keys are not allowed"
msgstr "les clés vides ne sont pas autorisées" msgstr "les clés vides ne sont pas autorisées"
msgid "failed to add key to dictionary"
msgstr "l'ajout de clé au dictionnaire a échoué"
msgid "Cannot delete DictionaryObject attributes" msgid "Cannot delete DictionaryObject attributes"
msgstr "Impossible d'effacer les attributs de DictionaryObject" msgstr "Impossible d'effacer les attributs de DictionaryObject"
msgid "Cannot modify fixed dictionary" msgid "Cannot modify fixed dictionary"
msgstr "Impossible de modifier un dictionnaire fixe" msgstr "Impossible de modifier un dictionnaire fixe"
msgid "Only boolean objects are allowed"
msgstr "Seuls les objets booléens sont autorisés"
msgid "Cannot set this attribute" msgid "Cannot set this attribute"
msgstr "Impossible d'initialiser cet attribut" msgstr "Impossible d'initialiser cet attribut"
msgid "no such key in dictionary"
msgstr "cette clé est inexistante dans le dictionnaire"
msgid "dict is locked" msgid "dict is locked"
msgstr "dictionnaire est verrouillé" msgstr "dictionnaire est verrouillé"
msgid "failed to add key to dictionary"
msgstr "l'ajout de clé au dictionnaire a échoué"
msgid "list index out of range"
msgstr "index de liste hors limites"
msgid "internal error: failed to get vim list item" msgid "internal error: failed to get vim list item"
msgstr "erreur interne : accès à un élément de liste a échoué" msgstr "erreur interne : accès à un élément de liste a échoué"
@ -6889,8 +6954,14 @@ msgstr "erreur interne : ajout d'
msgid "can only concatenate with lists" msgid "can only concatenate with lists"
msgstr "on ne peut que concaténer avec des listes" msgstr "on ne peut que concaténer avec des listes"
msgid "Cannot modify fixed list" msgid "cannot delete vim.dictionary attributes"
msgstr "Impossible de modifier une liste fixe" msgstr "impossible d'effacer les attributs de vim.dictionary"
msgid "cannot modify fixed list"
msgstr "impossible de modifier une liste fixe"
msgid "cannot set this attribute"
msgstr "impossible d'initialiser cet attribut"
msgid "'self' argument must be a dictionary" msgid "'self' argument must be a dictionary"
msgstr "l'argument 'self' doit être un dictionnaire" msgstr "l'argument 'self' doit être un dictionnaire"
@ -6898,6 +6969,39 @@ msgstr "l'argument 'self' doit
msgid "failed to run function" msgid "failed to run function"
msgstr "exécution de la fonction a échoué" msgstr "exécution de la fonction a échoué"
msgid "unable to get option value"
msgstr "impossible d'obtenir la valeur d'une option"
msgid "unable to unset global option"
msgstr "impossible de désactiver une option globale"
msgid "unable to unset option without global value"
msgstr "impossible de désactiver une option sans une valeur globale"
msgid "object must be integer"
msgstr "objet doit être un nombre entier"
msgid "object must be string"
msgstr "objet doit être de type string"
msgid "attempt to refer to deleted tab page"
msgstr "tentative de référencer un onglet effacé"
#, c-format
msgid "<tabpage object (deleted) at %p>"
msgstr "<objet onglet (effacé) à %p>"
#, c-format
msgid "<tabpage object (unknown) at %p>"
msgstr "<objet onglet (inconnu) à %p>"
#, c-format
msgid "<tabpage %d>"
msgstr "<onglet %d>"
msgid "no such tab page"
msgstr "cet onglet n'existe pas"
msgid "attempt to refer to deleted window" msgid "attempt to refer to deleted window"
msgstr "tentative de référencer une fenêtre effacée" msgstr "tentative de référencer une fenêtre effacée"
@ -6925,6 +7029,43 @@ msgstr "Cette fen
msgid "attempt to refer to deleted buffer" msgid "attempt to refer to deleted buffer"
msgstr "tentative de référencer un tampon effacé" msgstr "tentative de référencer un tampon effacé"
#, c-format
msgid "<buffer object (deleted) at %p>"
msgstr "<objet tampon (effacé) à %p>"
msgid "key must be integer"
msgstr "la clé doit être un nombre entier"
msgid "expected vim.buffer object"
msgstr "objet vim.buffer attendu"
msgid "failed to switch to given buffer"
msgstr "impossible de se déplacer au tampon donné"
msgid "expected vim.window object"
msgstr "objet vim.window attendu"
msgid "failed to find window in the current tab page"
msgstr "impossible de trouver une fenêtre dans l'onglet courant"
msgid "did not switch to the specified window"
msgstr "ne s'est pas déplacé à la fenêtre spécifiée"
msgid "expected vim.tabpage object"
msgstr "objet vim.tabpage attendu"
msgid "did not switch to the specified tab page"
msgstr "impossible de se déplacer à l'onglet spécifié"
msgid "failed to run the code"
msgstr "exécution du code a échoué"
msgid "E858: Eval did not return a valid python object"
msgstr "E858: Eval n'a pas retourné un objet python valide"
msgid "E859: Failed to convert returned python object to vim value"
msgstr "E859: Conversion d'objet python à une valeur de vim a échoué"
msgid "unable to convert to vim structure" msgid "unable to convert to vim structure"
msgstr "conversion à une structure vim impossible" msgstr "conversion à une structure vim impossible"
@ -6933,3 +7074,18 @@ msgstr "r
msgid "internal error: invalid value type" msgid "internal error: invalid value type"
msgstr "erreur interne : type de valeur invalide" msgstr "erreur interne : type de valeur invalide"
#~ msgid "E860: Eval did not return a valid python 3 object"
#~ msgstr "E860: Eval n'a pas retourné un object python 3 valid"
#~ msgid "E861: Failed to convert returned python 3 object to vim value"
#~ msgstr "E861: Conversion d'objet python 3 à une valeur de vim a échoué"
#~ msgid "E863: return value must be an instance of str"
#~ msgstr "E863: valeur de retour doit être une instance de Str"
#~ msgid "Only boolean objects are allowed"
#~ msgstr "Seuls les objets booléens sont autorisés"
#~ msgid "no such key in dictionary"
#~ msgstr "cette clé est inexistante dans le dictionnaire"