Mercurial > vim
changeset 25836:65de67669df3
Update runtime files
Commit: https://github.com/vim/vim/commit/34cc7d8c034f2bc5b57455577051db8d72e2b87c
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Sep 21 20:09:51 2021 +0200
Update runtime files
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 21 Sep 2021 20:15:04 +0200 |
parents | 55592629062e |
children | a4b393ed287e |
files | runtime/autoload/csscomplete.vim runtime/doc/eval.txt runtime/doc/filetype.txt runtime/doc/map.txt runtime/doc/options.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/usr_41.txt runtime/doc/vim9.txt runtime/filetype.vim runtime/ftplugin/8th.vim runtime/ftplugin/c.vim runtime/ftplugin/gprof.vim runtime/syntax/go.vim runtime/syntax/gprof.vim runtime/syntax/php.vim runtime/syntax/vim.vim runtime/tutor/tutor runtime/tutor/tutor.utf-8 src/po/es.po |
diffstat | 20 files changed, 384 insertions(+), 119 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/autoload/csscomplete.vim +++ b/runtime/autoload/csscomplete.vim @@ -4,7 +4,7 @@ " plus CSS Speech Module <http://www.w3.org/TR/css3-speech/> " Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com ) " Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl ) -" Last Change: 2018 Jul 02 +" Last Change: 2021 Sep 21 let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom") @@ -38,12 +38,12 @@ function! csscomplete#CompleteCSS(findst if exists("b:compl_context") let line = getline('.') let compl_begin = col('.') - 2 - let after = line[compl_begin:] + let b:after = line[compl_begin:] let line = b:compl_context unlet! b:compl_context else let line = a:base - let after = '' + let b:after = '' endif let res = []
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 8.2. Last change: 2021 Sep 08 +*eval.txt* For Vim version 8.2. Last change: 2021 Sep 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -658,7 +658,7 @@ It is not necessary to use the "dict" at If you get an error for a numbered function, you can find out what it is with a trick. Assuming the function is 42, the command is: > - :function {42} + :function g:42 Functions for Dictionaries ~ @@ -6140,6 +6140,7 @@ getreg([{regname} [, 1 [, {list}]]]) * (see |NL-used-for-Nul|). When the register was not set an empty list is returned. + If {regname} is "", the unnamed register '"' is used. If {regname} is not specified, |v:register| is used. In |Vim9-script| {regname} must be one character. @@ -6167,6 +6168,7 @@ getreginfo([{regname}]) *getreginfo( The {regname} argument is a string. If {regname} is invalid or not set, an empty Dictionary will be returned. + If {regname} is "" or "@", the unnamed register '"' is used. If {regname} is not specified, |v:register| is used. The returned Dictionary can be passed to |setreg()|. In |Vim9-script| {regname} must be one character. @@ -6182,8 +6184,9 @@ getregtype([{regname}]) *getregtype( "<CTRL-V>{width}" for |blockwise-visual| text "" for an empty or unknown register <CTRL-V> is one character with value 0x16. - The {regname} argument is a string. If {regname} is not - specified, |v:register| is used. + The {regname} argument is a string. If {regname} is "", the + unnamed register '"' is used. If {regname} is not specified, + |v:register| is used. In |Vim9-script| {regname} must be one character. Can also be used as a |method|: > @@ -12078,6 +12081,7 @@ There are three types of features: 1. Features that are only supported when they have been enabled when Vim was compiled |+feature-list|. Example: > :if has("cindent") +< *gui_running* 2. Features that are only supported when certain conditions have been met. Example: > :if has("gui_running")
--- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -545,6 +545,14 @@ One command, :DiffGitCached, is provided in the preview window. It is equivalent to calling "git diff --cached" plus any arguments given to the command. +GPROF + +The gprof filetype plugin defines a mapping <C-]> to jump from a function +entry in the gprof flat profile or from a function entry in the call graph +to the details of that function in the call graph. + +The mapping can be disabled with: > + let g:no_gprof_maps = 1 MAIL *ft-mail-plugin*
--- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -1,4 +1,4 @@ -*map.txt* For Vim version 8.2. Last change: 2021 Aug 05 +*map.txt* For Vim version 8.2. Last change: 2021 Sep 12 VIM REFERENCE MANUAL by Bram Moolenaar
--- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 8.2. Last change: 2021 Sep 06 +*options.txt* For Vim version 8.2. Last change: 2021 Sep 21 VIM REFERENCE MANUAL by Bram Moolenaar @@ -4983,7 +4983,8 @@ A jump table for the options with a shor :set lcs=tab:>-,eol:<,nbsp:% :set lcs=extends:>,precedes:< < The "NonText" highlighting will be used for "eol", "extends" and - "precedes". "SpecialKey" for "nbsp", "space", "tab" and "trail". + "precedes". "SpecialKey" will be used for "tab", "nbsp", "space", + "multispace", "lead" and "trail". |hl-NonText| |hl-SpecialKey| *'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'* @@ -8780,8 +8781,9 @@ A jump table for the options with a shor More info here: |cmdline-completion|. The character is not recognized when used inside a macro. See 'wildcharm' for that. + Some keys will not work, such as CTRL-C, <CR> and Enter. Although 'wc' is a number option, you can set it to a special key: > - :set wc=<Esc> + :set wc=<Tab> < NOTE: This option is set to the Vi default value when 'compatible' is set and to the Vim default value when 'compatible' is reset.
--- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -3989,6 +3989,8 @@ E123 eval.txt /*E123* E1231 map.txt /*E1231* E1232 eval.txt /*E1232* E1233 eval.txt /*E1233* +E1237 map.txt /*E1237* +E1239 eval.txt /*E1239* E124 eval.txt /*E124* E125 eval.txt /*E125* E126 eval.txt /*E126* @@ -5015,6 +5017,7 @@ Macintosh os_mac.txt /*Macintosh* Mark motion.txt /*Mark* MenuPopup autocmd.txt /*MenuPopup* MiNT os_mint.txt /*MiNT* +ModeChanged autocmd.txt /*ModeChanged* Moolenaar intro.txt /*Moolenaar* MorphOS os_amiga.txt /*MorphOS* Motif gui_x11.txt /*Motif* @@ -5553,10 +5556,12 @@ beval_winnr-variable eval.txt /*beval_wi binary-number eval.txt /*binary-number* bitwise-function usr_41.txt /*bitwise-function* blob eval.txt /*blob* +blob-functions usr_41.txt /*blob-functions* blob-identity eval.txt /*blob-identity* blob-index eval.txt /*blob-index* blob-literal eval.txt /*blob-literal* blob-modification eval.txt /*blob-modification* +blob2list() eval.txt /*blob2list()* blockwise-examples visual.txt /*blockwise-examples* blockwise-operators visual.txt /*blockwise-operators* blockwise-register change.txt /*blockwise-register* @@ -7200,6 +7205,7 @@ gui-x11-printing gui_x11.txt /*gui-x11-p gui-x11-start gui_x11.txt /*gui-x11-start* gui-x11-various gui_x11.txt /*gui-x11-various* gui.txt gui.txt /*gui.txt* +gui_running eval.txt /*gui_running* gui_w32.txt gui_w32.txt /*gui_w32.txt* gui_x11.txt gui_x11.txt /*gui_x11.txt* guifontwide_gtk gui.txt /*guifontwide_gtk* @@ -7701,6 +7707,7 @@ lcs-conceal options.txt /*lcs-conceal* lcs-eol options.txt /*lcs-eol* lcs-extends options.txt /*lcs-extends* lcs-lead options.txt /*lcs-lead* +lcs-multispace options.txt /*lcs-multispace* lcs-nbsp options.txt /*lcs-nbsp* lcs-precedes options.txt /*lcs-precedes* lcs-space options.txt /*lcs-space* @@ -7735,6 +7742,7 @@ list-identity eval.txt /*list-identity* list-index eval.txt /*list-index* list-modification eval.txt /*list-modification* list-repeat windows.txt /*list-repeat* +list2blob() eval.txt /*list2blob()* list2str() eval.txt /*list2str()* listener_add() eval.txt /*listener_add()* listener_flush() eval.txt /*listener_flush()*
--- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 8.2. Last change: 2021 Sep 08 +*todo.txt* For Vim version 8.2. Last change: 2021 Sep 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -38,12 +38,14 @@ browser use: https://github.com/vim/vim/ *known-bugs* -------------------- Known bugs and current work ----------------------- -:delcommand -buffer should work +Flaky test op Windows: +From test_vim9_script.vim: + Found errors in Test_no_unknown_error_after_error(): + command line..script D:/a/vim/vim/src2/testdir/runtest.vim[486]..function RunTheTest[44]..Test_no_unknown_error_after_error line 22: Expected 'E1012:' but got 'E684: list index out of range: 0': so Xdef Vim9 - Make everything work: -- Disallow using numbered function with "g:123" in Vim9 script? #8760 +- Check TODO items in vim9compile.c and vim9execute.c - use CheckLegacyAndVim9Success(lines) in many more places -- Check TODO items in vim9compile.c and vim9execute.c - For builtin functions using tv_get_string*() use check_for_string() to be more strict about the argument type (not a bool). done: balloon_() @@ -366,10 +368,6 @@ autocommands for the buffer lifecycle: BufIsRenamed (after buffer ID gets another name) The buffer list and windows are locked, no changes possible -Add a ModeChanged autocommand that has an argument indicating the old and new -mode, as what's returned from mode(). Also used for switching Terminal mode. -#8360, #7863, #7363 - Matchparen doesn't remove highlight after undo. (#7054) Is OK when syntax HL is active. @@ -4845,7 +4843,6 @@ 8 When editing "tt.gz", which is in DO command used dos fileformat. Same for 'fileencoding'. - Add events to autocommands: Error - When an error happens - ModeChange - after changing mode (before waiting for a char) VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled when exiting isn't a good idea. CursorHoldC - CursorHold while command-line editing
--- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -1,4 +1,4 @@ -*usr_41.txt* For Vim version 8.2. Last change: 2021 Aug 08 +*usr_41.txt* For Vim version 8.2. Last change: 2021 Sep 10 VIM USER MANUAL - by Bram Moolenaar
--- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -1,4 +1,4 @@ -*vim9.txt* For Vim version 8.2. Last change: 2021 Sep 08 +*vim9.txt* For Vim version 8.2. Last change: 2021 Sep 13 VIM REFERENCE MANUAL by Bram Moolenaar @@ -180,6 +180,15 @@ For now you will need to pass the dictio var d = {item: 'value', func: DictFunc} d.func(d, 'item') +You can call a legacy dict function though: > + func Legacy() dict + echo self.value + endfunc + def CallLegacy() + var d = {func: Legacy, value: 'text'} + d.func() + enddef + The argument types and return type need to be specified. The "any" type can be used, type checking will then be done at runtime, like with legacy functions.
--- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2021 Aug 23 +" Last Change: 2021 Sep 21 " Listen very carefully, I will say this only once if exists("did_load_filetypes")
--- a/runtime/ftplugin/8th.vim +++ b/runtime/ftplugin/8th.vim @@ -1,9 +1,10 @@ " Vim ftplugin file " Language: 8th " Version: any -" Last Change: 2015/11/08 +" Last Change: 2021 Sep 20 +" Last Change: 2021/09/20 " Maintainer: Ron Aaron <ron@aaron-tech.com> -" URL: https://8th-dev.com/ +" URL: https://8th-dev.com/ " Filetypes: *.8th " NOTE: 8th allows any non-whitespace in a name, so you need to do: " setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 @@ -14,12 +15,13 @@ if exists("b:did_8thplugin") finish endif -" Don't load another plugin for this buffer +" Don't load another 8th plugin for this buffer let b:did_8thplugin = 1 setlocal ts=2 sts=2 sw=2 et -setlocal com=s1:/*,mb:*,ex:*/,:\|,:\\ +setlocal com=s1:/*,mb:*,ex:*/,b:--,be:\\ setlocal fo=tcrqol setlocal matchpairs+=\::; setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 setlocal suffixesadd=.8th +let b:undo_ftplugin = "setlocal ts< sts< sw< et< com< fo< mps< isk< sua<"
--- a/runtime/ftplugin/c.vim +++ b/runtime/ftplugin/c.vim @@ -1,7 +1,7 @@ " Vim filetype plugin file " Language: C " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2020 Feb 01 +" Last Change: 2021 Sep 21 " Only do this when not done yet for this buffer if exists("b:did_ftplugin") @@ -40,8 +40,11 @@ endif " When the matchit plugin is loaded, this makes the % command skip parens and " braces in comments properly. -let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>' -let b:match_skip = 's:comment\|string\|character\|special' +if !exists("b:match_words") + let b:match_words = '^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>' + let b:match_skip = 's:comment\|string\|character\|special' + let b:undo_ftplugin ..= " | unlet! b:match_skip b:match_words" +endif " Win32 can filter files in the browse dialog if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") @@ -62,6 +65,7 @@ if (has("gui_win32") || has("gui_gtk")) \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . \ "All Files (*.*)\t*.*\n" endif + let b:undo_ftplugin ..= " | unlet! b:browsefilter" endif let &cpo = s:cpo_save
--- a/runtime/ftplugin/gprof.vim +++ b/runtime/ftplugin/gprof.vim @@ -1,6 +1,7 @@ -" Language: gprof -" Maintainer: Dominique Pelle <dominique.pelle@gmail.com> -" Last Change: 2021 Apr 08 +" Language: gprof +" Maintainer: Dominique Pelle <dominique.pelle@gmail.com> +" Contributors: Doug Kearns <dougkearns@gmail.com> +" Last Change: 2021 Sep 19 " When cursor is on one line of the gprof call graph, " calling this function jumps to this function in the call graph. @@ -9,7 +10,7 @@ if exists("b:did_ftplugin") endif let b:did_ftplugin=1 -fun! <SID>GprofJumpToFunctionIndex() +func! <SID>GprofJumpToFunctionIndex() let l:line = getline('.') if l:line =~ '[\d\+\]$' " We're in a line in the call graph. @@ -22,11 +23,14 @@ fun! <SID>GprofJumpToFunctionIndex() call search('^\[\d\+\].*\d\s\+' . escape(@", '[]*.') . '\>', 'sW') norm! zz endif -endfun +endfunc -" 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 <buffer> <silent> <C-]> :call <SID>GprofJumpToFunctionIndex()<CR> +if !exists("no_plugin_maps") && !exists("no_gprof_maps") + " 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 <buffer> <silent> <C-]> :call <SID>GprofJumpToFunctionIndex()<CR> + let b:undo_ftplugin = "silent! unmap <buffer> <C-]>" +endif " vim:sw=2 fdm=indent
--- a/runtime/syntax/go.vim +++ b/runtime/syntax/go.vim @@ -5,7 +5,7 @@ " go.vim: Vim syntax file for Go. " Language: Go " Maintainer: Billie Cleek <bhcleek@gmail.com> -" Latest Revision: 2021-06-26 +" Latest Revision: 2021-09-18 " License: BSD-style. See LICENSE file in source repository. " Repository: https://github.com/fatih/vim-go @@ -250,7 +250,7 @@ syn match goDecimalError "\<- syn match goHexadecimalInt "\<-\=0[xX]_\?\(\x\+_\?\)\+\>" syn match goHexadecimalError "\<-\=0[xX]_\?\(\x\+_\?\)*\(\([^ \t0-9A-Fa-f_)]\|__\)\S*\|_\)\>" syn match goOctalInt "\<-\=0[oO]\?_\?\(\o\+_\?\)\+\>" -syn match goOctalError "\<-\=0[0-7oO_]*\(\([^ \t0-7oOxX_/)\]\}\:]\|[oO]\{2,\}\|__\)\S*\|_\|[oOxX]\)\>" +syn match goOctalError "\<-\=0[0-7oO_]*\(\([^ \t0-7oOxX_/)\]\}\:;]\|[oO]\{2,\}\|__\)\S*\|_\|[oOxX]\)\>" syn match goBinaryInt "\<-\=0[bB]_\?\([01]\+_\?\)\+\>" syn match goBinaryError "\<-\=0[bB]_\?[01_]*\([^ \t01_)]\S*\|__\S*\|_\)\>" @@ -430,7 +430,7 @@ endif " Build Constraints if s:HighlightBuildConstraints() - syn match goBuildKeyword display contained "+build" + syn match goBuildKeyword display contained "+build\|go:build" " Highlight the known values of GOOS, GOARCH, and other +build options. syn keyword goBuildDirectives contained \ android darwin dragonfly freebsd linux nacl netbsd openbsd plan9
--- a/runtime/syntax/gprof.vim +++ b/runtime/syntax/gprof.vim @@ -1,15 +1,16 @@ " Vim syntax file " Language: Syntax for Gprof Output " Maintainer: Dominique Pelle <dominique.pelle@gmail.com> -" Last Change: 2021 Apr 08 +" Last Change: 2021 Sep 19 " Quit when a syntax file was already loaded if exists("b:current_syntax") - finish + finish endif let s:keepcpo= &cpo set cpo&vim +syn spell notoplevel syn case match syn sync minlines=100
--- a/runtime/syntax/php.vim +++ b/runtime/syntax/php.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: php PHP 3/4/5/7/8 " Maintainer: Tyson Andre <tysonandre775@hotmail.com> -" Last Change: Dec 22, 2020 +" Last Change: Sep 18, 2021 " URL: https://github.com/TysonAndre/php-vim-syntax " Former Maintainers: " Jason Woofenden <jason@jasonwoof.com> @@ -13,10 +13,32 @@ " than the default colourscheme, because elflord's colours will better " highlight the break-points (Statements) in your code. " +" Note: This embeds a modified copy of the html.vim with (mostly) different symbols, +" in order to implement php_htmlInStrings=2 can work as expected and correctly parse +" `<?php $phpStartTag = '<?php';`. +" +" Credits for the original version of html.vim prior to modifications +" +" Previous Maintainer Jorge Maldonado Ventura <jorgesumle@freakspot.net> +" Previous Maintainer Claudio Fleiner <claudio@fleiner.com> +" Repository https://notabug.org/jorgesumle/vim-html-syntax +" Last Change 2021 Mar 02 +" Included patch #7900 to fix comments +" Included patch #7916 to fix a few more things +" " Options: " Set to anything to enable: " php_sql_query SQL syntax highlighting inside strings " php_htmlInStrings HTML syntax highlighting inside strings +" +" By setting this to 2, this will use a local copy of +" HTML syntax highlighting instead of the official +" HTML syntax highlighting, and properly highlight +" `<?php $startTag = '<?php';`. +" This may become the new default in the future. +" +" By setting this to 3 (or any unrecognized value), +" this will use the official installed top level html syntax highlighting rules. " php_baselib highlighting baselib functions " php_asp_tags highlighting ASP-style short tags " php_parent_error_close highlighting parent error ] or ) @@ -62,6 +84,214 @@ if !exists("main_syntax") let main_syntax = 'php' endif +" Start of copy of html for embedding in strings with {{{ +" This is a clone of https://notabug.org/jorgesumle/vim-html-syntax +" from 2021 Mar 02 with changed symbols and modifications to rules. See the Note in the file header. +" +" The default behavior of php_htmlInStrings causes a bug +" when you're working with code that contains the string literal `'<?php'`. +" E.g. code that reads php files or generates the contents of php files or +" generates snippets to `eval()`. +" +" When php_htmlInStrings was set to any value, +" it would cause the html syntax rules to be embedded inside of the string +" contents. +" +" However, php.vim extends html.vim by allowing the php start tag to be +" included, meaning that this is parsed as `<?php';`, i.e. the start of a +" new string literal. +" +" Work around that by using a different set of rules that don't allow +" embedding php in most places (phpInnerHtmlPreProc). +" +" The default behavior may be changed to this in the future for constants other +" than 2 or 3 if there are no issues. +" +" Many, but not all syntax rules were changed from html* to phpInnerHtml* +if exists("php_htmlInStrings") && php_htmlInStrings==2 + " mark illegal characters + syn match phpInnerHtmlError contained "[<>&]" + + " tags + syn region phpInnerHtmlString contained start=+"+ end=+"+ contains=phpInnerHtmlSpecialChar,javaScriptExpression,@phpInnerHtmlPreproc + syn region phpInnerHtmlString contained start=+'+ end=+'+ contains=phpInnerHtmlSpecialChar,javaScriptExpression,@phpInnerHtmlPreproc + syn match phpInnerHtmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@phpInnerHtmlPreproc + syn region phpInnerHtmlEndTag contained start=+</+ end=+>+ contains=phpInnerHtmlTagN,phpInnerHtmlTagError + syn region phpInnerHtmlTag contained start=+<[^/]+ end=+>+ fold contains=phpInnerHtmlTagN,phpInnerHtmlString,htmlArg,phpInnerHtmlValue,phpInnerHtmlTagError,phpInnerHtmlEvent,phpInnerHtmlCssDefinition,@phpInnerHtmlPreproc,@phpInnerHtmlArgCluster + syn match phpInnerHtmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@phpInnerHtmlTagNameCluster + syn match phpInnerHtmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@phpInnerHtmlTagNameCluster + syn match phpInnerHtmlTagError contained "[^>]<"ms=s+1 + + + " special characters + syn match phpInnerHtmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" + + " Comments (the real ones or the old netscape ones) + if exists("html_wrong_comments") + syn region phpInnerHtmlComment start=+<!--+ end=+--\s*>+ contains=@Spell + else + " The HTML 5.2 syntax 8.2.4.41: bogus comment is parser error; browser skips until next > + syn region phpInnerHtmlComment start=+<!+ end=+>+ contains=phpInnerHtmlCommentError keepend + " Idem 8.2.4.42,51: Comment starts with <!-- and ends with --> + " Idem 8.2.4.43,44: Except <!--> and <!---> are parser errors + " Idem 8.2.4.52: dash-dash-bang (--!>) is error ignored by parser, also closes comment + syn region phpInnerHtmlComment matchgroup=phpInnerHtmlComment start=+<!--\%(-\?>\)\@!+ end=+--!\?>+ contains=phpInnerHtmlCommentNested,@phpInnerHtmlPreProc,@Spell keepend + " Idem 8.2.4.49: nested comment is parser error, except <!--> is all right + syn match phpInnerHtmlCommentNested contained "<!-->\@!" + syn match phpInnerHtmlCommentError contained "[^><!]" + endif + syn region phpInnerHtmlComment start=+<!DOCTYPE+ end=+>+ keepend + + " server-parsed commands + syn region phpInnerHtmlPreProc start=+<!--#+ end=+-->+ contains=phpInnerHtmlPreStmt,phpInnerHtmlPreError,phpInnerHtmlPreAttr + syn match phpInnerHtmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>" + syn match phpInnerHtmlPreError contained "<!--#\S*"ms=s+4 + syn match phpInnerHtmlPreAttr contained "\w\+=[^"]\S\+" contains=phpInnerHtmlPreProcAttrError,phpInnerHtmlPreProcAttrName + syn region phpInnerHtmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=phpInnerHtmlPreProcAttrName keepend + syn match phpInnerHtmlPreProcAttrError contained "\w\+="he=e-1 + syn match phpInnerHtmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1 + + if !exists("html_no_rendering") + " rendering + syn cluster phpInnerHtmlTop contains=@Spell,phpInnerHtmlTag,phpInnerHtmlEndTag,phpInnerHtmlSpecialChar,phpInnerHtmlPreProc,phpInnerHtmlComment,phpInnerHtmlLink,javaScript,@phpInnerHtmlPreproc + + syn region phpInnerHtmlStrike start="<del\>" end="</del\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlStrike start="<strike\>" end="</strike\_s*>"me=s-1 contains=@phpInnerHtmlTop + + syn region phpInnerHtmlBold start="<b\>" end="</b\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlBoldUnderline,phpInnerHtmlBoldItalic + syn region phpInnerHtmlBold start="<strong\>" end="</strong\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlBoldUnderline,phpInnerHtmlBoldItalic + syn region phpInnerHtmlBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlBoldUnderlineItalic + syn region phpInnerHtmlBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlBoldItalicUnderline + syn region phpInnerHtmlBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlBoldItalicUnderline + syn region phpInnerHtmlBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlBoldUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlBoldItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlBoldUnderlineItalic + + syn region phpInnerHtmlUnderline start="<u\>" end="</u\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlUnderlineBold,phpInnerHtmlUnderlineItalic + syn region phpInnerHtmlUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlUnderlineBoldItalic + syn region phpInnerHtmlUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlUnderlineBoldItalic + syn region phpInnerHtmlUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlUnderlineItalicBold + syn region phpInnerHtmlUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlUnderlineItalicBold + syn region phpInnerHtmlUnderlineItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlUnderlineItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlUnderlineBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlUnderlineBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@phpInnerHtmlTop + + syn region phpInnerHtmlItalic start="<i\>" end="</i\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlItalicBold,phpInnerHtmlItalicUnderline + syn region phpInnerHtmlItalic start="<em\>" end="</em\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlItalicBoldUnderline + syn region phpInnerHtmlItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlItalicBoldUnderline + syn region phpInnerHtmlItalicBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@phpInnerHtmlTop,phpInnerHtmlItalicUnderlineBold + syn region phpInnerHtmlItalicUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlItalicUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@phpInnerHtmlTop + + syn match phpInnerHtmlLeadingSpace "^\s\+" contained + syn region phpInnerHtmlLink start="<a\>\_[^>]*\<href\>" end="</a\_s*>"me=s-1 contains=@Spell,phpInnerHtmlTag,phpInnerHtmlEndTag,phpInnerHtmlSpecialChar,phpInnerHtmlPreProc,phpInnerHtmlComment,phpInnerHtmlLeadingSpace,phpInnerJavaScript,@phpInnerHtmlPreproc + syn region phpInnerHtmlH1 start="<h1\>" end="</h1\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlH2 start="<h2\>" end="</h2\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlH3 start="<h3\>" end="</h3\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlH4 start="<h4\>" end="</h4\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlH5 start="<h5\>" end="</h5\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlH6 start="<h6\>" end="</h6\_s*>"me=s-1 contains=@phpInnerHtmlTop + syn region phpInnerHtmlHead start="<head\>" end="</head\_s*>"me=s-1 end="<body\>"me=s-1 end="<h[1-6]\>"me=s-1 contains=phpInnerHtmlTag,phpInnerHtmlEndTag,phpInnerHtmlSpecialChar,phpInnerHtmlPreProc,phpInnerHtmlComment,phpInnerHtmlLink,phpInnerHtmlTitle,phpInnerJavaScript,phpInnerCssStyle,@phpInnerHtmlPreproc + syn region phpInnerHtmlTitle start="<title\>" end="</title\_s*>"me=s-1 contains=phpInnerHtmlTag,phpInnerHtmlEndTag,phpInnerHtmlSpecialChar,phpInnerHtmlPreProc,phpInnerHtmlComment,phpInnerJavaScript,@phpInnerHtmlPreproc + endif + + if main_syntax != 'java' || exists("javascript") + " JAVA SCRIPT + " For example, $phpVar = '<img onload="foo()" />'; + syn include @phpInnerHtmlJavaScript syntax/javascript.vim + unlet b:current_syntax + syn region phpInnerHtmlScriptTag contained start=+<script+ end=+>+ fold contains=phpInnerHtmlTagN,phpInnerHtmlString,phpInnerHtmlArg,phpInnerHtmlValue,phpInnerHtmlTagError,phpInnerHtmlEvent + hi def link phpInnerHtmlScriptTag phpInnerHtmlTag + + " phpInnerHtml events (i.e. arguments that include phpInnerJavascript commands) + if exists("html_extended_events") + syn region phpInnerHtmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=phpInnerHtmlEventSQ + syn region phpInnerHtmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=phpInnerHtmlEventDQ + else + syn region phpInnerHtmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=phpInnerHtmlEventSQ + syn region phpInnerHtmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=phpInnerHtmlEventDQ + endif + syn region phpInnerHtmlEventSQ contained start=+'+ms=s+1 end=+'+me=s-1 contains=@phpInnerHtmlJavaScript + syn region phpInnerHtmlEventDQ contained start=+"+ms=s+1 end=+"+me=s-1 contains=@phpInnerHtmlJavaScript + hi def link phpInnerHtmlEventSQ phpInnerHtmlEvent + hi def link phpInnerHtmlEventDQ phpInnerHtmlEvent + + " a phpInnerJavascript expression is used as an arg value + " syn region phpInnerJavaScriptExpression contained start=+&{+ keepend end=+};+ contains=@phpInnerHtmlJavaScript,@phpInnerHtmlPreproc + endif + + syn cluster phpInnerHtmlJavaScript add=@phpInnerHtmlPreproc + + " The default highlighting. + " NOTE: For now, this deliberately copies the definitions from html rather than link + " to the corresponding html tag name. If html is refactored to rename any + " keywords then html highlighting would unexpectedly be cleared. + hi def link phpInnerHtmlTag Function + hi def link phpInnerHtmlEndTag Identifier + hi def link phpInnerHtmlArg Type + hi def link phpInnerHtmlValue String + hi def link phpInnerHtmlSpecialChar Special + + if !exists("html_no_rendering") + hi def link phpInnerHtmlH1 Title + hi def link phpInnerHtmlH2 phpInnerHtmlH1 + hi def link phpInnerHtmlH3 phpInnerHtmlH2 + hi def link phpInnerHtmlH4 phpInnerHtmlH3 + hi def link phpInnerHtmlH5 phpInnerHtmlH4 + hi def link phpInnerHtmlH6 phpInnerHtmlH5 + hi def link phpInnerHtmlHead PreProc + hi def link phpInnerHtmlTitle Title + hi def link phpInnerHtmlBoldItalicUnderline phpInnerHtmlBoldUnderlineItalic + hi def link phpInnerHtmlUnderlineBold phpInnerHtmlBoldUnderline + hi def link phpInnerHtmlUnderlineItalicBold phpInnerHtmlBoldUnderlineItalic + hi def link phpInnerHtmlUnderlineBoldItalic phpInnerHtmlBoldUnderlineItalic + hi def link phpInnerHtmlItalicUnderline phpInnerHtmlUnderlineItalic + hi def link phpInnerHtmlItalicBold phpInnerHtmlBoldItalic + hi def link phpInnerHtmlItalicBoldUnderline phpInnerHtmlBoldUnderlineItalic + hi def link phpInnerHtmlItalicUnderlineBold phpInnerHtmlBoldUnderlineItalic + hi def link phpInnerHtmlLink Underlined + hi def link phpInnerHtmlLeadingSpace None + if !exists("html_my_rendering") + hi def phpInnerHtmlBold term=bold cterm=bold gui=bold + hi def phpInnerHtmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline + hi def phpInnerHtmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic + hi def phpInnerHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline + hi def phpInnerHtmlUnderline term=underline cterm=underline gui=underline + hi def phpInnerHtmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline + hi def phpInnerHtmlItalic term=italic cterm=italic gui=italic + if v:version > 800 || v:version == 800 && has("patch1038") + hi def phpInnerHtmlStrike term=strikethrough cterm=strikethrough gui=strikethrough + else + hi def phpInnerHtmlStrike term=underline cterm=underline gui=underline + endif + endif + endif + + hi def link phpInnerHtmlPreStmt PreProc + hi def link phpInnerHtmlPreError Error + hi def link phpInnerHtmlPreProc PreProc + hi def link phpInnerHtmlPreAttr String + hi def link phpInnerHtmlPreProcAttrName PreProc + hi def link phpInnerHtmlPreProcAttrError Error + hi def link phpInnerHtmlString String + hi def link phpInnerHtmlStatement Statement + hi def link phpInnerHtmlComment Comment + hi def link phpInnerHtmlCommentNested phpInnerHtmlError + hi def link phpInnerHtmlCommentError phpInnerHtmlError + hi def link phpInnerHtmlTagError phpInnerHtmlError + hi def link phpInnerHtmlEvent phpInnerJavaScript + hi def link phpInnerHtmlError Error + + hi def link phpInnerJavaScript Special + hi def link phpInnerJavaScriptExpression phpInnerJavaScript + hi def link phpInnerHtmlCssStyleComment Comment + hi def link phpInnerHtmlCssDefinition Special +endif + + runtime! syntax/html.vim unlet b:current_syntax @@ -79,6 +309,8 @@ if exists("php_parentError") && !exists( let php_parent_error_open=1 endif +" End of copy of html syntax for embedding in php strings }}} + syn cluster htmlPreproc add=phpRegion,phpRegionAsp,phpRegionSc syn include @sqlTop syntax/sql.vim @@ -90,7 +322,11 @@ if exists( "php_sql_query") endif if exists( "php_htmlInStrings") - syn cluster phpAddStrings add=@htmlTop + if php_htmlInStrings==2 + syn cluster phpAddStrings add=@phpInnerHtmlTop + else + syn cluster phpAddStrings add=@htmlTop + endif endif " make sure we can use \ at the beginning of the line to do a continuation @@ -283,7 +519,7 @@ syn keyword phpStatement return break co syn keyword phpKeyword var const contained " Type -syn keyword phpType void bool boolean int integer real double float string array object NULL callable iterable mixed contained +syn keyword phpType void bool boolean int integer real double float string array object NULL callable iterable mixed never contained " Structure syn keyword phpStructure namespace extends implements instanceof parent self contained @@ -361,7 +597,7 @@ syn match phpFloatError "\%([eE.][0-9._+ " Number syn match phpNumber "\%(\.\)\@<!\<\%([1-9]\d*\|0\|0[xX]\(\x_\?\)*\x\)\>\%(\.\)\@!" contained display -syn match phpNumber "\%(\.\)\@<!\<0\d\+\>\%(\.\)\@!" contained contains=phpOctalError display +syn match phpNumber "\%(\.\)\@<!\<0\d\+\|0[oO]\d\+\>\%(\.\)\@!" contained contains=phpOctalError display syn match phpBinaryError "[2-9]" contained display syn match phpNumber "\%(\.\)\@<!\<0[bB]\(\d_\?\)*\d\>\%(\.\)\@!" contained contains=phpBinaryError display @@ -446,7 +682,7 @@ syn cluster phpClTop contains=@phpClFunc " Php Region if exists("php_parent_error_open") if exists("php_noShortTags") - syn region phpRegion matchgroup=Delimiter start="<?php" end="?>" contains=@phpClTop + syn region phpRegion matchgroup=Delimiter start="<?\(php\|=\)" end="?>" contains=@phpClTop else syn region phpRegion matchgroup=Delimiter start="<?\(php\)\=" end="?>" contains=@phpClTop endif @@ -456,7 +692,7 @@ if exists("php_parent_error_open") endif else if exists("php_noShortTags") - syn region phpRegion matchgroup=Delimiter start="<?php" end="?>" contains=@phpClTop keepend + syn region phpRegion matchgroup=Delimiter start="<?\(php\|=\)" end="?>" contains=@phpClTop keepend else syn region phpRegion matchgroup=Delimiter start="<?\(php\)\=" end="?>" contains=@phpClTop keepend endif @@ -469,13 +705,13 @@ endif " Fold if exists("php_folding") && php_folding==1 " match one line constructs here and skip them at folding - syn keyword phpSCKeyword abstract final private protected public static contained + syn keyword phpSCKeyword abstract final private protected public static readonly contained syn keyword phpFCKeyword function contained syn keyword phpDefine fn contained syn keyword phpStorageClass global contained syn match phpDefine "\(\s\|^\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\(\s\+.*[;}]\)\@=" contained contains=phpSCKeyword syn match phpStructure "\(\s\|^\)\(abstract\s\+\|final\s\+\)*\(trait\|class\)\(\s\+.*}\)\@=" contained - syn match phpStructure "\(\s\|^\)interface\(\s\+.*}\)\@=" contained + syn match phpStructure "\(\s\|^\)\(interface\|enum\)\(\s\+.*}\)\@=" contained syn match phpException "\(\s\|^\)try\(\s\+.*}\)\@=" contained syn match phpException "\(\s\|^\)catch\(\s\+.*}\)\@=" contained syn match phpException "\(\s\|^\)finally\(\s\+.*}\)\@=" contained @@ -484,15 +720,15 @@ if exists("php_folding") && php_folding= syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop syn region phpFoldFunction matchgroup=Storageclass start="^\z(\s*\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\s\([^};]*$\)\@="rs=e-9 matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldHtmlInside,phpFCKeyword contained transparent fold extend syn region phpFoldFunction matchgroup=Define start="^function\s\([^};]*$\)\@=" matchgroup=Delimiter end="^}" contains=@phpClFunction,phpFoldHtmlInside contained transparent fold extend - syn region phpFoldClass matchgroup=Structure start="^\z(\s*\)\(abstract\s\+\|final\s\+\)*\(trait\|class\)\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction,phpSCKeyword contained transparent fold extend + syn region phpFoldClass matchgroup=Structure start="^\z(\s*\)\(abstract\s\+\|final\s\+\)*\(trait\|class\|enum\)\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction,phpSCKeyword contained transparent fold extend syn region phpFoldInterface matchgroup=Structure start="^\z(\s*\)interface\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend syn region phpFoldCatch matchgroup=Exception start="^\z(\s*\)catch\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend syn region phpFoldTry matchgroup=Exception start="^\z(\s*\)try\s\+\([^}]*$\)\@=" matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldFunction contained transparent fold extend else syn keyword phpDefine function fn contained - syn keyword phpStructure abstract class trait interface contained + syn keyword phpStructure abstract class trait interface enum contained syn keyword phpException catch throw try finally contained - syn keyword phpStorageClass final global private protected public static contained + syn keyword phpStorageClass final global private protected public static readonly contained if exists("php_folding") && php_folding==2 setlocal foldmethod=syntax syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop @@ -512,9 +748,9 @@ syntax keyword phpStructure list contain syntax keyword phpConditional switch contained syntax keyword phpStatement die contained -" Highlighting for PHP5's user-definable magic class methods +" Highlighting for PHP's user-definable magic class methods syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier - \ __construct __destruct __call __callStatic __get __set __isset __unset __sleep __wakeup __toString __invoke __set_state __clone __debugInfo + \ __construct __destruct __call __callStatic __get __set __isset __unset __sleep __wakeup __toString __invoke __set_state __clone __debugInfo __serialize __unserialize " Highlighting for __autoload slightly different from line above syntax keyword phpSpecialFunction containedin=ALLBUT,phpComment,phpStringDouble,phpStringSingle,phpIdentifier,phpMethodsVar \ __autoload @@ -638,7 +874,7 @@ endif " Sync if php_sync_method==-1 if exists("php_noShortTags") - syn sync match phpRegionSync grouphere phpRegion "^\s*<?php\s*$" + syn sync match phpRegionSync grouphere phpRegion "^\s*<?\(php\|=\)\s*$" else syn sync match phpRegionSync grouphere phpRegion "^\s*<?\(php\)\=\s*$" endif @@ -658,7 +894,7 @@ endif syntax match phpDocCustomTags "@[a-zA-Z]*\(\s\+\|\n\|\r\)" containedin=phpComment syntax region phpDocTags start="{@\(example\|id\|internal\|inheritdoc\|link\|source\|toc\|tutorial\)" end="}" containedin=phpComment -syntax match phpDocTags "@\(abstract\|access\|author\|category\|copyright\|deprecated\|example\|final\|global\|ignore\|internal\|license\|link\|method\|name\|package\|param\|property\|return\|see\|since\|static\|staticvar\|subpackage\|tutorial\|uses\|var\|version\|contributor\|modified\|filename\|description\|filesource\|throws\)\(\s\+\)\?" containedin=phpComment +syntax match phpDocTags "@\(abstract\|access\|api\|author\|category\|copyright\|deprecated\|example\|final\|global\|ignore\|internal\|license\|link\|method\|name\|package\|param\|property\(-write\|-read\)\?\|return\|see\|since\|source\|static\|staticvar\|subpackage\|tutorial\|uses\|used-by\|var\|version\|contributor\|modified\|filename\|description\|filesource\|throws\)\(\s\+\)\?" containedin=phpComment syntax match phpDocTodo "@\(todo\|fixme\|xxx\)\(\s\+\)\?" containedin=phpComment " Define the default highlighting. @@ -729,7 +965,6 @@ else hi def link phpIdentifierSimply Identifier endif - let b:current_syntax = "php" if main_syntax == 'php'
--- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -1,8 +1,8 @@ " Vim syntax file " Language: Vim 8.2 script " Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM> -" Last Change: June 20, 2021 -" Version: 8.2-06 +" Last Change: September 21, 2021 +" Version: 8.2-07 " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM " Automatically generated keyword lists: {{{1 @@ -78,12 +78,12 @@ syn match vimHLGroup contained "Conceal" syn case match " Function Names {{{2 -syn keyword vimFuncName contained abs argc assert_equal assert_match atan browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy echoraw executable expand filereadable flatten fnameescape foldtext function getbufvar getcharsearch getcmdwintype getenv getftype getmarklist getqflist gettabvar getwinpos glob2regpat hasmapto hlexists index inputsave isdirectory job_getchannel job_stop json_encode line listener_flush luaeval mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_ignore_error test_null_job test_override test_srand_seed timer_start tr undofile visualmode win_execute winheight winnr win_splitmove -syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete empty execute expandcmd filewritable flattennew fnamemodify foldtextresult garbagecollect getchangelist getcharstr getcompletion getfontname getimstatus getmatches getreg gettabwinvar getwinposx globpath histadd hlID input inputsecret isinf job_info join keys line2byte listener_remove map match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_null_blob test_null_list test_refcount test_unknown timer_stop trim undotree wildmenumode win_findbuf win_id2tabwin winrestcmd winwidth -syn keyword vimFuncName contained add arglistid assert_exception assert_notequal balloon_gettext bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline environ exepath extend filter float2nr foldclosed foreground get getchar getcmdline getcurpos getfperm getjumplist getmousepos getreginfo gettagstack getwinposy has histdel hostname inputdialog insert islocked job_setoptions js_decode len lispindent localtime maparg matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_null_channel test_null_partial test_scrollbar test_void timer_stopall trunc uniq winbufnr win_getid win_id2win winrestview wordcount -syn keyword vimFuncName contained and argv assert_fails assert_notmatch balloon_show buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype escape exists extendnew finddir floor foldclosedend fullcommand getbufinfo getcharmod getcmdpos getcursorcharpos getfsize getline getpid getregtype gettext getwinvar has_key histget iconv inputlist interrupt isnan job_start js_encode libcall list2str log mapcheck matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_dict test_null_string test_setmouse timer_info tolower type values wincol win_gettype winlayout winsaveview writefile -syn keyword vimFuncName contained append asin assert_false assert_report balloon_split bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler eval exp feedkeys findfile fmod foldlevel funcref getbufline getcharpos getcmdtype getcwd getftime getloclist getpos gettabinfo getwininfo glob haslocaldir histnr indent inputrestore invert items job_status json_decode libcallnr listener_add log10 mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_function test_option_not_set test_settime timer_pause toupper typename virtcol windowsversion win_gotoid winline win_screenpos xor -syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID eventhandler +syn keyword vimFuncName contained abs argc assert_equal assert_match atan browsedir bufname byteidxcomp charcol ch_evalexpr ch_logfile ch_sendraw complete cos deepcopy digraph_get environ exepath extend finddir fmod foldtext garbagecollect getchar getcmdpos getcursorcharpos getfsize getline getpid getregtype gettext getwinvar has_key histget iconv inputlist interrupt isnan job_start js_encode libcall list2str log mapcheck matchaddpos matchfuzzypos menu_info nextnonblank popup_atcursor popup_dialog popup_getoptions popup_menu popup_show prompt_setcallback prop_clear prop_type_change pumvisible range reduce reltimestr remote_send resolve screenchar screenstring searchpairpos setbufvar setcursorcharpos setmatches settabwinvar shiftwidth sign_place simplify sound_clear spellbadword state strcharpart stridx strridx swapinfo synIDtrans tabpagenr tanh term_getaltscreen term_getline term_gettty term_setansicolors term_start test_garbagecollect_now test_ignore_error test_null_job test_override test_srand_seed timer_start tr undofile visualmode win_execute winheight winnr win_splitmove +syn keyword vimFuncName contained acos argidx assert_equalfile assert_nobeep atan2 bufadd bufnr call charidx ch_evalraw ch_open ch_setoptions complete_add cosh delete digraph_getlist escape exists extendnew findfile fnameescape foldtextresult get getcharmod getcmdtype getcwd getftime getloclist getpos gettabinfo getwininfo glob haslocaldir histnr indent inputrestore invert items job_status json_decode libcallnr listener_add log10 mapnew matcharg matchlist min nr2char popup_beval popup_filter_menu popup_getpos popup_move pow prompt_setinterrupt prop_find prop_type_delete py3eval readblob reg_executing remote_expr remote_startserver reverse screenchars search searchpos setcellwidths setenv setpos settagstack sign_define sign_placelist sin soundfold spellsuggest str2float strchars string strtrans swapname synstack tabpagewinnr tempname term_getansicolors term_getscrolled terminalprops term_setapi term_wait test_garbagecollect_soon test_null_blob test_null_list test_refcount test_unknown timer_stop trim undotree wildmenumode win_findbuf win_id2tabwin winrestcmd winwidth +syn keyword vimFuncName contained add arglistid assert_exception assert_notequal balloon_gettext bufexists bufwinid ceil ch_canread ch_getbufnr ch_read ch_status complete_check count deletebufline digraph_set eval exists_compiled feedkeys flatten fnamemodify foreground getbufinfo getcharpos getcmdwintype getenv getftype getmarklist getqflist gettabvar getwinpos glob2regpat hasmapto hlexists index inputsave isdirectory job_getchannel job_stop json_encode line listener_flush luaeval mapset matchdelete matchstr mkdir or popup_clear popup_filter_yesno popup_hide popup_notification prevnonblank prompt_setprompt prop_list prop_type_get pyeval readdir reg_recording remote_foreground remove round screencol searchcount server2client setcharpos setfperm setqflist setwinvar sign_getdefined sign_undefine sinh sound_playevent split str2list strdisplaywidth strlen strwidth synconcealed system tagfiles term_dumpdiff term_getattr term_getsize term_list term_setkill test_alloc_fail test_getvalue test_null_channel test_null_partial test_scrollbar test_void timer_stopall trunc uniq winbufnr win_getid win_id2win winrestview wordcount +syn keyword vimFuncName contained and argv assert_fails assert_notmatch balloon_show buflisted bufwinnr changenr ch_close ch_getjob ch_readblob cindent complete_info cscope_connection did_filetype digraph_setlist eventhandler exp filereadable flattennew foldclosed fullcommand getbufline getcharsearch getcompletion getfontname getimstatus getmatches getreg gettabwinvar getwinposx globpath histadd hlID input inputsecret isinf job_info join keys line2byte listener_remove map match matchend matchstrpos mode pathshorten popup_close popup_findinfo popup_list popup_setoptions printf prop_add prop_remove prop_type_list pyxeval readdirex reltime remote_peek rename rubyeval screenpos searchdecl serverlist setcharsearch setline setreg sha256 sign_getplaced sign_unplace slice sound_playfile sqrt str2nr strftime strpart submatch synID systemlist taglist term_dumpload term_getcursor term_getstatus term_scrape term_setrestore test_autochdir test_gui_drop_files test_null_dict test_null_string test_setmouse timer_info tolower type values wincol win_gettype winlayout winsaveview writefile +syn keyword vimFuncName contained append asin assert_false assert_report balloon_split bufload byte2line char2nr ch_close_in ch_info ch_readraw clearmatches confirm cursor diff_filler echoraw executable expand filewritable float2nr foldclosedend funcref getbufvar getcharstr getcurpos getfperm getjumplist getmousepos getreginfo gettagstack getwinposy has histdel hostname inputdialog insert islocked job_setoptions js_decode len lispindent localtime maparg matchadd matchfuzzy max mzeval perleval popup_create popup_findpreview popup_locate popup_settext prompt_getprompt prop_add_list prop_type_add pum_getpos rand readfile reltimefloat remote_read repeat screenattr screenrow searchpair setbufline setcmdpos setloclist settabvar shellescape sign_jump sign_unplacelist sort sound_stop srand strcharlen strgetchar strptime substitute synIDattr tabpagebuflist tan term_dumpwrite term_getjob term_gettitle term_sendkeys term_setsize test_feedinput test_gui_mouse_event test_null_function test_option_not_set test_settime timer_pause toupper typename virtcol windowsversion win_gotoid winline win_screenpos xor +syn keyword vimFuncName contained appendbufline assert_beeps assert_inrange assert_true browse bufloaded byteidx charclass chdir ch_log ch_sendexpr col copy debugbreak diff_hlID empty execute expandcmd filter floor foldlevel function getchangelist getcmdline "--- syntax here and above generated by mkvimvim --- " Special Vim Highlighting (not automatic) {{{1
--- a/runtime/tutor/tutor +++ b/runtime/tutor/tutor @@ -347,25 +347,25 @@ Doubling to operate on a line also works ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lesson 2 SUMMARY + 1. To delete from the cursor up to the next word type: dw + 2. To delete from the cursor up to the end of the word type: de + 3. To delete from the cursor to the end of a line type: d$ + 4. To delete a whole line type: dd - 1. To delete from the cursor up to the next word type: dw - 2. To delete from the cursor to the end of a line type: d$ - 3. To delete a whole line type: dd - - 4. To repeat a motion prepend it with a number: 2w - 5. The format for a change command is: + 5. To repeat a motion prepend it with a number: 2w + 6. The format for a change command is: operator [number] motion where: operator - is what to do, such as d for delete [number] - is an optional count to repeat the motion motion - moves over the text to operate on, such as w (word), - $ (to the end of line), etc. + e (end of word), $ (end of the line), etc. - 6. To move to the start of the line use a zero: 0 + 7. To move to the start of the line use a zero: 0 - 7. To undo previous actions, type: u (lowercase u) + 8. To undo previous actions, type: u (lowercase u) To undo all the changes on a line, type: U (capital U) - To undo the undo's, type: CTRL-R + To undo the undo's, type: CTRL-R ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lesson 3.1: THE PUT COMMAND
--- a/runtime/tutor/tutor.utf-8 +++ b/runtime/tutor/tutor.utf-8 @@ -347,25 +347,25 @@ Doubling to operate on a line also works ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lesson 2 SUMMARY + 1. To delete from the cursor up to the next word type: dw + 2. To delete from the cursor up to the end of the word type: de + 3. To delete from the cursor to the end of a line type: d$ + 4. To delete a whole line type: dd - 1. To delete from the cursor up to the next word type: dw - 2. To delete from the cursor to the end of a line type: d$ - 3. To delete a whole line type: dd - - 4. To repeat a motion prepend it with a number: 2w - 5. The format for a change command is: + 5. To repeat a motion prepend it with a number: 2w + 6. The format for a change command is: operator [number] motion where: operator - is what to do, such as d for delete [number] - is an optional count to repeat the motion motion - moves over the text to operate on, such as w (word), - $ (to the end of line), etc. + e (end of word), $ (end of the line), etc. - 6. To move to the start of the line use a zero: 0 + 7. To move to the start of the line use a zero: 0 - 7. To undo previous actions, type: u (lowercase u) + 8. To undo previous actions, type: u (lowercase u) To undo all the changes on a line, type: U (capital U) - To undo the undo's, type: CTRL-R + To undo the undo's, type: CTRL-R ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Lesson 3.1: THE PUT COMMAND
--- a/src/po/es.po +++ b/src/po/es.po @@ -1209,19 +1209,17 @@ msgstr "E319: Lo siento, esa orden no está disponible en esta versión" msgid "E172: Only one file name allowed" msgstr "E172: Solo se permite un nombre de archivo" -msgid "1 more file to edit. Quit anyway?" -msgstr "Un (1) archivo más para editar. ¿Cerrar de todas formas?" - -#, c-format -msgid "%d more files to edit. Quit anyway?" -msgstr "Hay %d archivos más en edición. ¿Cerrar de todas formas?" - -msgid "E173: 1 more file to edit" -msgstr "E173: Un (1) archivo más para editar" - -#, c-format -msgid "E173: %ld more files to edit" -msgstr "E173: Hay %ld archivos en edición" +#, c-format +msgid "%d more file to edit. Quit anyway?" +msgid_plural "%d more files to edit. Quit anyway?" +msgstr[0] "Un (%d) archivo más para editar. ¿Cerrar de todas formas?" +msgstr[1] "Hay %d archivos más para editar. ¿Cerrar de todas formas?" + +#, c-format +msgid "E173: %d more file to edit" +msgid_plural "E173: %d more files to edit" +msgstr[0] "E173: Un (%d) archivo más para editar" +msgstr[1] "E173: Hay %d archivos más para editar" msgid "E174: Command already exists: add ! to replace it" msgstr "E174: Ya existe esa orden. Añada \"!\" para reemplazarla" @@ -3672,24 +3670,17 @@ msgstr " MÁS NUEVO que el archivo de intercambio!\n" # * other languages. msgid "" "\n" -"(1) Another program may be editing the same file.\n" -" If this is the case, be careful not to end up with two\n" -" different instances of the same file when making changes.\n" -msgstr "" -"\n" -"(1) Puede que otro programa esté editando el mismo archivo.\n" -" De ser así, tenga cuidado de no acabar con dos\n" -" ejemplares diferentes del mismo archivo al hacer cambios.\n" - -msgid " Quit, or continue with caution.\n" -msgstr " Salga del programa o continúe con precaución.\n" - -msgid "" -"\n" -"(2) An edit session for this file crashed.\n" -msgstr "" -"\n" -"(2) Falló una sesión de edición de este archivo.\n" +"(1) Another program may be editing the same file. If this is the case,\n" +" be careful not to end up with two different instances of the same\n" +" file when making changes. Quit, or continue with caution.\n" +msgstr "" +"\n" +"(1) Puede que otro programa esté editando el mismo archivo. De ser así,\n" +" tenga cuidado de no acabar con dos ejemplares diferentes del mismo\n" +" archivo al hacer cambios. Salga del programa o continúe con precaución.\n" + +msgid "(2) An edit session for this file crashed.\n" +msgstr "(2) Falló una sesión de edición de este archivo.\n" msgid " If this is the case, use \":recover\" or \"vim -r " msgstr " Si es así, use \":recover\" o \"vim -r "