" Vim syntax file
" Language: php PHP 3/4/5
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
-" Last Change: July 29, 2011
+" Last Change: Oct 20, 2011
" URL: https://gitorious.org/jasonwoof/vim-syntax/blobs/master/php.vim
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
syn cluster phpAddStrings add=@htmlTop
endif
+" make sure we can use \ at the begining of the line to do a continuation
+let s:cpo_save = &cpo
+set cpo&vim
+
syn case match
" Env Variables
syn case ignore
-syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ contained
+syn keyword phpConstant __LINE__ __FILE__ __FUNCTION__ __METHOD__ __CLASS__ __DIR__ __NAMESPACE__ contained
" Function and Methods ripped from php_manual_de.tar.gz Jan 2003
syn keyword phpLabel case default switch contained
" Statement
-syn keyword phpStatement return break continue exit contained
+syn keyword phpStatement return break continue exit goto contained
" Keyword
syn keyword phpKeyword var const contained
syn keyword phpType bool[ean] int[eger] real double float string array object NULL contained
" Structure
-syn keyword phpStructure extends implements instanceof parent self contained
+syn keyword phpStructure namespace extends implements instanceof parent self contained
" Operator
syn match phpOperator "[-=+%^&|*!.~?:]" contained display
syn region phpIdentifierComplexP matchgroup=phpParent start="\[" end="]" contains=@phpClInside contained
" Interpolated indentifiers (inside strings)
+ syn match phpBrackets "[][}{]" contained display
" errors
- syn match phpInterpEmptyKey "\[\]" contained display
- syn match phpInterpEmptyKey "->[^a-zA-Z_]" contained display
+ syn match phpInterpSimpleError "\[[^]]*\]" contained display " fallback (if nothing else matches)
+ syn match phpInterpSimpleError "->[^a-zA-Z_]" contained display
" make sure these stay above the correct DollarCurlies so they don't take priority
- syn match phpInterpBogusDollarCurley "${.*}" contained display
- syn match phpBrackets "[][}{]" contained display
+ syn match phpInterpBogusDollarCurley "${[^}]*}" contained display " fallback (if nothing else matches)
syn match phpinterpSimpleBracketsInner "\w\+" contained
- syn match phpInterpSimpleBrackets "\[\w*]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
- syn match phpInterpSimple "\$\h\w*\(\[\w*\]\|->\h\w*\)\?" contained contains=phpInterpSimpleBrackets,phpIdentifier,phpInterpEmptyKey,phpMethods,phpMemberSelector display
+ syn match phpInterpSimpleBrackets "\[\h\w*]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
+ syn match phpInterpSimpleBrackets "\[\d\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
+ syn match phpInterpSimpleBrackets "\[0[xX]\x\+]" contained contains=phpBrackets,phpInterpSimpleBracketsInner
+ syn match phpInterpSimple "\$\h\w*\(\[[^]]*\]\|->\h\w*\)\?" contained contains=phpInterpSimpleBrackets,phpIdentifier,phpInterpSimpleError,phpMethods,phpMemberSelector display
syn match phpInterpVarname "\h\w*" contained
syn match phpInterpMethodName "\h\w*" contained " default color
syn match phpInterpSimpleCurly "\${\h\w*}" contains=phpInterpVarname contained extend
syn match phpMethodsVar "->\h\w*" contained contains=phpMethods,phpMemberSelector display
" Include
-syn keyword phpInclude include require include_once require_once contained
+syn keyword phpInclude include require include_once require_once use contained
" Peter Hodge - added 'clone' keyword
" Define
syn keyword phpStorageClass final global private protected public static contained
endif
+" TODO: fold on "trait". For now just make sure it gets colored:
+syn keyword phpStructure trait
+
" ================================================================
" Peter Hodge - June 9, 2006
" Some of these changes (highlighting isset/unset/echo etc) are not so
HiLink phpIdentifierConst Delimiter
HiLink phpParentError Error
HiLink phpOctalError Error
- HiLink phpInterpEmptyKey Error
+ HiLink phpInterpSimpleError Error
HiLink phpInterpBogusDollarCurley Error
HiLink phpInterpDollarCurly1 Error
HiLink phpInterpDollarCurly2 Error
unlet main_syntax
endif
+" put cpoptions back the way we found it
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
" vim: ts=8 sts=2 sw=2 expandtab