diff options
author | Christian Clason <christian.clason@uni-due.de> | 2021-09-22 15:12:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-22 06:12:06 -0700 |
commit | fb6f27e86f2ca2fbff88737251d9e26016a62081 (patch) | |
tree | f265d2030c1cbebe73d03cd95763af4e0be07eb3 | |
parent | e8fb0728e220bb378a8689415c3915fe5912e987 (diff) | |
download | rneovim-fb6f27e86f2ca2fbff88737251d9e26016a62081.tar.gz rneovim-fb6f27e86f2ca2fbff88737251d9e26016a62081.tar.bz2 rneovim-fb6f27e86f2ca2fbff88737251d9e26016a62081.zip |
vim-patch:34cc7d8c034f #15753
Update runtime files
https://github.com/vim/vim/commit/34cc7d8c034f2bc5b57455577051db8d72e2b87c
-rw-r--r-- | runtime/autoload/csscomplete.vim | 6 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 2 | ||||
-rw-r--r-- | runtime/doc/filetype.txt | 8 | ||||
-rw-r--r-- | runtime/doc/options.txt | 3 | ||||
-rw-r--r-- | runtime/filetype.vim | 2 | ||||
-rw-r--r-- | runtime/ftplugin/8th.vim | 10 | ||||
-rw-r--r-- | runtime/ftplugin/c.vim | 10 | ||||
-rw-r--r-- | runtime/ftplugin/gprof.vim | 22 | ||||
-rw-r--r-- | runtime/syntax/go.vim | 6 | ||||
-rw-r--r-- | runtime/syntax/gprof.vim | 5 | ||||
-rw-r--r-- | runtime/syntax/php.vim | 267 |
11 files changed, 298 insertions, 43 deletions
diff --git a/runtime/autoload/csscomplete.vim b/runtime/autoload/csscomplete.vim index 85e40c862f..4b673ac9b8 100644 --- 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(findstart, base) 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 = [] diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index b3d5f4d7e9..14e240783d 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -586,7 +586,7 @@ It is not necessary to use the "dict" attribute for a numbered function. 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 ~ diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index 4d0fdd71cc..a23ae3fb76 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -501,6 +501,14 @@ One command, :DiffGitCached, is provided to show a diff of the current commit 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* diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 853d774232..85be6eddaa 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6821,8 +6821,9 @@ A jump table for the options with a short description can be found at |Q_op|. 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> < *'wildcharm'* *'wcm'* diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 0de04e9774..bc3965d4b6 100644 --- 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") diff --git a/runtime/ftplugin/8th.vim b/runtime/ftplugin/8th.vim index 14301187d6..ad04f9ac84 100644 --- 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<" diff --git a/runtime/ftplugin/c.vim b/runtime/ftplugin/c.vim index 00937c2383..d4564a4aec 100644 --- 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") @@ -35,8 +35,11 @@ setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// " 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") @@ -57,6 +60,7 @@ if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") \ "C++ Source Files (*.cpp *.c++)\t*.cpp;*.c++\n" . \ "All Files (*.*)\t*.*\n" endif + let b:undo_ftplugin ..= " | unlet! b:browsefilter" endif let b:man_default_sects = '3,2' diff --git a/runtime/ftplugin/gprof.vim b/runtime/ftplugin/gprof.vim index d4547ae9a6..d8974bcc84 100644 --- 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 diff --git a/runtime/syntax/go.vim b/runtime/syntax/go.vim index 1439487f69..0c326254b8 100644 --- a/runtime/syntax/go.vim +++ b/runtime/syntax/go.vim @@ -5,7 +5,7 @@ " go.vim: Vim syntax file for Go. " Language: Go " Maintainer: Billie Cleek <bhcleek@gmail.com> -" Latest Revision: 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 "\<-\=\(_\(\d\+_*\)\+\|\([1-9]\d*_*\)\+__\(\ 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 diff --git a/runtime/syntax/gprof.vim b/runtime/syntax/gprof.vim index 880452a84b..d2c5cb4cab 100644 --- 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 diff --git a/runtime/syntax/php.vim b/runtime/syntax/php.vim index 7b0085cd6e..80662d6750 100644 --- 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("php_parent_error_open") && !exists("php 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 continue exit goto yield contained 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._+-]*\.\|__\|_\(\>\|[eE]\)\|\(\>\|[eE]\)_\ " 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=@phpClFunction,phpFoldFunction,phpFoldClass,phpFol " 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==1 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 contained 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' |