1019 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			1019 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| "
 | |
| " Language:     CFML (ColdFusion)
 | |
| " Author:       Ernst M. van der Linden <ernst.vanderlinden@ernestoz.com>
 | |
| " License:      The MIT License (MIT)
 | |
| "
 | |
| " Maintainer:   Ernst M. van der Linden <ernst.vanderlinden@ernestoz.com>
 | |
| " URL:          https://github.com/ernstvanderlinden/vim-coldfusion
 | |
| " Last Change:  2017 Nov 28
 | |
| "
 | |
| " Filenames:    *.cfc *.cfm
 | |
| 
 | |
| " Quit when a syntax file was already loaded.
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| " Using line continuation here.
 | |
| let s:cpo_save=&cpo
 | |
| set cpo-=C
 | |
| 
 | |
| sy sync fromstart
 | |
| " 20171126: disabled as we have fast computers now.
 | |
| "sy sync maxlines=2000
 | |
| sy case ignore
 | |
| 
 | |
| " INCLUDES {{{
 | |
| sy include @sqlSyntax $VIMRUNTIME/syntax/sql.vim
 | |
| " 20161010: Disabled include html highlighting as it contains huge keywords
 | |
| " regex, so it will have impact on performance.  Use own simple SGML tag
 | |
| " coloring instead.
 | |
| "runtime! syntax/html.vim
 | |
| " / INCLUDES }}}
 | |
| 
 | |
| " NUMBER {{{
 | |
| sy match cfmlNumber
 | |
|     \ "\v<\d+>"
 | |
| " / NUMBER }}}
 | |
| 
 | |
| " EQUAL SIGN {{{
 | |
| sy match cfmlEqualSign
 | |
|     \ "\v\="
 | |
| " / EQUAL SIGN }}}
 | |
| 
 | |
| " BOOLEAN {{{
 | |
| sy match cfmlBoolean
 | |
|     \ "\v<(true|false)>"
 | |
| " / BOOLEAN }}}
 | |
| 
 | |
| " HASH SURROUNDED {{{
 | |
| sy region cfmlHashSurround
 | |
|   \ keepend
 | |
|   \ oneline
 | |
|   \ start="#"
 | |
|   \ end="#"
 | |
|   \ skip="##"
 | |
|     \ contains=
 | |
|       \@cfmlOperator,
 | |
|       \@cfmlPunctuation,
 | |
|       \cfmlBoolean,
 | |
|       \cfmlCoreKeyword,
 | |
|       \cfmlCoreScope,
 | |
|       \cfmlCustomKeyword,
 | |
|       \cfmlCustomScope,
 | |
|       \cfmlEqualSign,
 | |
|       \cfmlFunctionName,
 | |
|       \cfmlNumber
 | |
| " / HASH SURROUNDED }}}
 | |
| 
 | |
| " OPERATOR {{{
 | |
| 
 | |
| " OPERATOR - ARITHMETIC {{{
 | |
| " +7 -7
 | |
| " ++i --i
 | |
| " i++ i--
 | |
| " + - * / %
 | |
| " += -= *= /= %=
 | |
| " ^ mod
 | |
| sy match cfmlArithmeticOperator
 | |
|   \ "\v
 | |
|   \(\+|-)\ze\d
 | |
|   \|(\+\+|--)\ze\w
 | |
|   \|\w\zs(\+\+|--)
 | |
|   \|(\s(
 | |
|   \(\+|-|\*|\/|\%){1}\={,1}
 | |
|   \|\^
 | |
|   \|mod
 | |
|   \)\s)
 | |
|   \"
 | |
| " / OPERATOR - ARITHMETIC }}}
 | |
| 
 | |
| " OPERATOR - BOOLEAN {{{
 | |
| " not and or xor eqv imp
 | |
| " ! && ||
 | |
| sy match cfmlBooleanOperator
 | |
|   \ "\v\s
 | |
|   \(not|and|or|xor|eqv|imp
 | |
|   \|\!|\&\&|\|\|
 | |
|   \)(\s|\))
 | |
|   \|\s\!\ze\w
 | |
|   \"
 | |
| " / OPERATOR - BOOLEAN }}}
 | |
| 
 | |
| " OPERATOR - DECISION {{{
 | |
| "is|equal|eq
 | |
| "is not|not equal|neq
 | |
| "contains|does not contain
 | |
| "greater than|gt
 | |
| "less than|lt
 | |
| "greater than or equal to|gte|ge
 | |
| "less than or equal to|lte|le
 | |
| "==|!=|>|<|>=|<=
 | |
| sy match cfmlDecisionOperator
 | |
|   \ "\v\s
 | |
|   \(is|equal|eq
 | |
|   \|is not|not equal|neq
 | |
|   \|contains|does not contain
 | |
|   \|greater than|gt
 | |
|   \|less than|lt
 | |
|   \|greater than or equal to|gte|ge
 | |
|   \|less than or equal to|lte|le
 | |
|   \|(!|\<|\>|\=){1}\=
 | |
|   \|\<
 | |
|   \|\>
 | |
|   \)\s"
 | |
| " / OPERATOR - DECISION }}}
 | |
| 
 | |
| " OPERATOR - STRING {{{
 | |
| " &
 | |
| " &=
 | |
| sy match cfmlStringOperator
 | |
|     \ "\v\s\&\={,1}\s"
 | |
| " / OPERATOR - STRING }}}
 | |
| 
 | |
| " OPERATOR - TERNARY {{{
 | |
| " ? :
 | |
| sy match cfmlTernaryOperator
 | |
|   \ "\v\s
 | |
|   \\?|\:
 | |
|   \\s"
 | |
| " / OPERATOR - TERNARY }}}
 | |
| 
 | |
| sy cluster cfmlOperator
 | |
|   \ contains=
 | |
|     \cfmlArithmeticOperator,
 | |
|     \cfmlBooleanOperator,
 | |
|     \cfmlDecisionOperator,
 | |
|     \cfmlStringOperator,
 | |
|     \cfmlTernaryOperator
 | |
| " / OPERATOR }}}
 | |
| 
 | |
| " PARENTHESIS {{{
 | |
| sy cluster cfmlParenthesisRegionContains
 | |
|   \ contains=
 | |
|     \@cfmlAttribute,
 | |
|     \@cfmlComment,
 | |
|     \@cfmlFlowStatement,
 | |
|     \@cfmlOperator,
 | |
|     \@cfmlPunctuation,
 | |
|     \cfmlBoolean,
 | |
|     \cfmlBrace,
 | |
|     \cfmlCoreKeyword,
 | |
|     \cfmlCoreScope,
 | |
|     \cfmlCustomKeyword,
 | |
|     \cfmlCustomScope,
 | |
|     \cfmlEqualSign,
 | |
|     \cfmlFunctionName,
 | |
|     \cfmlNumber,
 | |
|     \cfmlStorageKeyword,
 | |
|     \cfmlStorageType
 | |
| 
 | |
| sy region cfmlParenthesisRegion1
 | |
|   \ extend
 | |
|   \ matchgroup=cfmlParenthesis1
 | |
|   \ transparent
 | |
|   \ start=/(/
 | |
|   \ end=/)/
 | |
|   \ contains=
 | |
|     \cfmlParenthesisRegion2,
 | |
|     \@cfmlParenthesisRegionContains
 | |
| sy region cfmlParenthesisRegion2
 | |
|   \ matchgroup=cfmlParenthesis2
 | |
|   \ transparent
 | |
|   \ start=/(/
 | |
|   \ end=/)/
 | |
|   \ contains=
 | |
|     \cfmlParenthesisRegion3,
 | |
|     \@cfmlParenthesisRegionContains
 | |
| sy region cfmlParenthesisRegion3
 | |
|   \ matchgroup=cfmlParenthesis3
 | |
|   \ transparent
 | |
|   \ start=/(/
 | |
|   \ end=/)/
 | |
|   \ contains=
 | |
|     \cfmlParenthesisRegion1,
 | |
|     \@cfmlParenthesisRegionContains
 | |
| sy cluster cfmlParenthesisRegion
 | |
|   \ contains=
 | |
|     \cfmlParenthesisRegion1,
 | |
|     \cfmlParenthesisRegion2,
 | |
|     \cfmlParenthesisRegion3
 | |
| " / PARENTHESIS }}}
 | |
| 
 | |
| " BRACE {{{
 | |
| sy match cfmlBrace
 | |
|     \ "{\|}"
 | |
| 
 | |
| sy region cfmlBraceRegion
 | |
|   \ extend
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="{"
 | |
|   \ end="}"
 | |
| " / BRACE }}}
 | |
| 
 | |
| " PUNCTUATION {{{
 | |
| 
 | |
| " PUNCTUATION - BRACKET {{{
 | |
| sy match cfmlBracket
 | |
|   \ "\(\[\|\]\)"
 | |
|   \ contained
 | |
| " / PUNCTUATION - BRACKET }}}
 | |
| 
 | |
| " PUNCTUATION - CHAR {{{
 | |
| sy match cfmlComma ","
 | |
| sy match cfmlDot "\."
 | |
| sy match cfmlSemiColon ";"
 | |
| 
 | |
| " / PUNCTUATION - CHAR }}}
 | |
| 
 | |
| " PUNCTUATION - QUOTE {{{
 | |
| sy region cfmlSingleQuotedValue
 | |
|   \ matchgroup=cfmlSingleQuote
 | |
|   \ start=/'/
 | |
|   \ skip=/''/
 | |
|   \ end=/'/
 | |
|   \ contains=
 | |
|     \cfmlHashSurround
 | |
| 
 | |
| sy region cfmlDoubleQuotedValue
 | |
|   \ matchgroup=cfmlDoubleQuote
 | |
|   \ start=/"/
 | |
|   \ skip=/""/
 | |
|   \ end=/"/
 | |
|   \ contains=
 | |
|     \cfmlHashSurround
 | |
| 
 | |
| sy cluster cfmlQuotedValue
 | |
|   \ contains=
 | |
|     \cfmlDoubleQuotedValue,
 | |
|     \cfmlSingleQuotedValue
 | |
| 
 | |
| sy cluster cfmlQuote
 | |
|   \ contains=
 | |
|     \cfmlDoubleQuote,
 | |
|     \cfmlSingleQuote
 | |
| " / PUNCTUATION - QUOTE }}}
 | |
| 
 | |
| sy cluster cfmlPunctuation
 | |
|   \ contains=
 | |
|     \@cfmlQuote,
 | |
|     \@cfmlQuotedValue,
 | |
|     \cfmlBracket,
 | |
|     \cfmlComma,
 | |
|     \cfmlDot,
 | |
|     \cfmlSemiColon
 | |
| 
 | |
| " / PUNCTUATION }}}
 | |
| 
 | |
| " TAG START AND END {{{
 | |
| " tag start
 | |
| " <cf...>
 | |
| " s^^   e
 | |
| sy region cfmlTagStart
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cf_*"
 | |
|   \ end=">"
 | |
| \ contains=
 | |
|   \@cfmlAttribute,
 | |
|   \@cfmlComment,
 | |
|   \@cfmlOperator,
 | |
|   \@cfmlParenthesisRegion,
 | |
|   \@cfmlPunctuation,
 | |
|   \@cfmlQuote,
 | |
|   \@cfmlQuotedValue,
 | |
|   \cfmlAttrEqualSign,
 | |
|   \cfmlBoolean,
 | |
|   \cfmlBrace,
 | |
|   \cfmlCoreKeyword,
 | |
|   \cfmlCoreScope,
 | |
|   \cfmlCustomKeyword,
 | |
|   \cfmlCustomScope,
 | |
|   \cfmlEqualSign,
 | |
|   \cfmlFunctionName,
 | |
|   \cfmlNumber,
 | |
|   \cfmlStorageKeyword,
 | |
|   \cfmlStorageType,
 | |
|   \cfmlTagBracket,
 | |
|   \cfmlTagName
 | |
| 
 | |
| " tag end
 | |
| " </cf...>
 | |
| " s^^^   e
 | |
| sy match cfmlTagEnd
 | |
|   \ transparent
 | |
|   \ "\c</cf_*[^>]*>"
 | |
|   \ contains=
 | |
|     \cfmlTagBracket,
 | |
|     \cfmlTagName
 | |
| 
 | |
| " tag bracket
 | |
| " </...>
 | |
| " ^^   ^
 | |
| sy match cfmlTagBracket
 | |
|   \ contained
 | |
|   \ "\(<\|>\|\/\)"
 | |
| 
 | |
| " tag name
 | |
| " <cf...>
 | |
| "  s^^^e
 | |
| sy match cfmlTagName
 | |
|   \ contained
 | |
|   \ "\v<\/*\zs\ccf\w*"
 | |
| " / TAG START AND END }}}
 | |
| 
 | |
| " ATTRIBUTE NAME AND VALUE {{{
 | |
| sy match cfmlAttrName
 | |
|   \ contained
 | |
|   \ "\v(var\s)@<!\w+\ze\s*\=([^\=])+"
 | |
| 
 | |
| sy match cfmlAttrValue
 | |
|   \ contained
 | |
|   \ "\v(\=\"*)\zs\s*\w*"
 | |
| 
 | |
| sy match cfmlAttrEqualSign
 | |
|   \ contained
 | |
|   \ "\v\="
 | |
| 
 | |
| sy cluster cfmlAttribute
 | |
| \ contains=
 | |
|   \@cfmlQuotedValue,
 | |
|   \cfmlAttrEqualSign,
 | |
|   \cfmlAttrName,
 | |
|   \cfmlAttrValue,
 | |
|   \cfmlCoreKeyword,
 | |
|   \cfmlCoreScope
 | |
| " / ATTRIBUTE NAME AND VALUE }}}
 | |
| 
 | |
| " TAG REGION AND FOLDING {{{
 | |
| 
 | |
| " CFCOMPONENT REGION AND FOLD {{{
 | |
| " <cfcomponent
 | |
| " s^^^^^^^^^^^
 | |
| " </cfcomponent>
 | |
| " ^^^^^^^^^^^^^e
 | |
| sy region cfmlComponentTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cfcomponent"
 | |
|   \ end="\c</cfcomponent>"
 | |
| 
 | |
| " / CFCOMPONENT REGION AND FOLD }}}
 | |
| 
 | |
| " CFFUNCTION REGION AND FOLD {{{
 | |
| " <cffunction
 | |
| " s^^^^^^^^^^
 | |
| " </cffunction>
 | |
| " ^^^^^^^^^^^^e
 | |
| sy region cfmlFunctionTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cffunction"
 | |
|   \ end="\c</cffunction>"
 | |
| " / CFFUNCTION REGION AND FOLD }}}
 | |
| 
 | |
| " CFIF REGION AND FOLD {{{
 | |
| " <cfif
 | |
| " s^^^^
 | |
| " </cfif>
 | |
| " ^^^^^^e
 | |
| sy region cfmlIfTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cfif"
 | |
|   \ end="\c</cfif>"
 | |
| " / CFIF REGION AND FOLD }}}
 | |
| 
 | |
| " CFLOOP REGION AND FOLD {{{
 | |
| " <cfloop
 | |
| " s^^^^^^
 | |
| " </cfloop>
 | |
| " ^^^^^^^^e
 | |
| sy region cfmlLoopTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cfloop"
 | |
|   \ end="\c</cfloop>"
 | |
| " / CFLOOP REGION AND FOLD }}}
 | |
| 
 | |
| " CFOUTPUT REGION AND FOLD {{{
 | |
| " <cfoutput
 | |
| " s^^^^^^^^
 | |
| " </cfoutput>
 | |
| " ^^^^^^^^^^e
 | |
| sy region cfmlOutputTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cfoutput"
 | |
|   \ end="\c</cfoutput>"
 | |
| " / CFOUTPUT REGION AND FOLD }}}
 | |
| 
 | |
| " CFQUERY REGION AND FOLD {{{
 | |
| " <cfquery
 | |
| " s^^^^^^^
 | |
| " </cfquery>
 | |
| " ^^^^^^^^^e
 | |
|         "\@cfmlSqlStatement,
 | |
| sy region cfmlQueryTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cfquery"
 | |
|   \ end="\c</cfquery>"
 | |
|   \ contains=
 | |
|     \@cfmlSqlStatement,
 | |
|     \cfmlTagStart,
 | |
|     \cfmlTagEnd,
 | |
|     \cfmlTagComment
 | |
| " / CFQUERY REGION AND FOLD }}}
 | |
| 
 | |
| " SAVECONTENT REGION AND FOLD {{{
 | |
| " <savecontent
 | |
| " s^^^^^^^^^^^
 | |
| " </savecontent>
 | |
| " ^^^^^^^^^^^^^e
 | |
| sy region cfmlSavecontentTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cfsavecontent"
 | |
|   \ end="\c</cfsavecontent>"
 | |
| " / SAVECONTENT REGION AND FOLD }}}
 | |
| 
 | |
| " CFSCRIPT REGION AND FOLD {{{
 | |
| " <cfscript>
 | |
| " s^^^^^^^^^
 | |
| " </cfscript>
 | |
| " ^^^^^^^^^^e
 | |
| "\cfmlCustomScope,
 | |
| sy region cfmlScriptTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cfscript>"
 | |
|   \ end="\c</cfscript>"
 | |
|   \ contains=
 | |
|     \@cfmlComment,
 | |
|     \@cfmlFlowStatement,
 | |
|     \cfmlHashSurround,
 | |
|     \@cfmlOperator,
 | |
|     \@cfmlParenthesisRegion,
 | |
|     \@cfmlPunctuation,
 | |
|     \cfmlBoolean,
 | |
|     \cfmlBrace,
 | |
|     \cfmlCoreKeyword,
 | |
|     \cfmlCoreScope,
 | |
|     \cfmlCustomKeyword,
 | |
|     \cfmlCustomScope,
 | |
|     \cfmlEqualSign,
 | |
|     \cfmlFunctionDefinition,
 | |
|     \cfmlFunctionName,
 | |
|     \cfmlNumber,
 | |
|     \cfmlOddFunction,
 | |
|     \cfmlStorageKeyword,
 | |
|     \cfmlTagEnd,
 | |
|     \cfmlTagStart
 | |
| " / CFSCRIPT REGION AND FOLD }}}
 | |
| 
 | |
| " CFSWITCH REGION AND FOLD {{{
 | |
| " <cfswitch
 | |
| " s^^^^^^^^
 | |
| " </cfswitch>
 | |
| " ^^^^^^^^^^e
 | |
| sy region cfmlSwitchTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cfswitch"
 | |
|   \ end="\c</cfswitch>"
 | |
| " / CFSWITCH REGION AND FOLD }}}
 | |
| 
 | |
| " CFTRANSACTION REGION AND FOLD {{{
 | |
| " <cftransaction
 | |
| " s^^^^^^^^^^^^^
 | |
| " </cftransaction>
 | |
| " ^^^^^^^^^^^^^^^e
 | |
| sy region cfmlTransactionTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cftransaction"
 | |
|   \ end="\c</cftransaction>"
 | |
| " / CFTRANSACTION REGION AND FOLD }}}
 | |
| 
 | |
| " CUSTOM TAG REGION AND FOLD {{{
 | |
| " <cf_...>
 | |
| " s^^^   ^
 | |
| " </cf_...>
 | |
| " ^^^^^   e
 | |
| sy region cfmlCustomTagRegion
 | |
|   \ fold
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\c<cf_[^>]*>"
 | |
|   \ end="\c</cf_[^>]*>"
 | |
| " / CUSTOM TAG REGION AND FOLD }}}
 | |
| 
 | |
| " / TAG REGION AND FOLDING }}}
 | |
| 
 | |
| " COMMENT {{{
 | |
| 
 | |
| " COMMENT BLOCK {{{
 | |
| " /*...*/
 | |
| " s^   ^e
 | |
| sy region cfmlCommentBlock
 | |
|   \ keepend
 | |
|   \ start="/\*"
 | |
|   \ end="\*/"
 | |
|   \ contains=
 | |
|     \cfmlMetaData
 | |
| " / COMMENT BLOCK }}}
 | |
| 
 | |
| " COMMENT LINE {{{
 | |
| " //...
 | |
| " s^
 | |
| sy match cfmlCommentLine
 | |
|         \ "\/\/.*"
 | |
| " / COMMENT LINE }}}
 | |
| 
 | |
| sy cluster cfmlComment
 | |
|   \ contains=
 | |
|     \cfmlCommentBlock,
 | |
|     \cfmlCommentLine
 | |
| " / COMMENT }}}
 | |
| 
 | |
| " TAG COMMENT {{{
 | |
| " <!---...--->
 | |
| " s^^^^   ^^^e
 | |
| sy region cfmlTagComment
 | |
|   \ keepend
 | |
|     \ start="<!---"
 | |
|     \ end="--->"
 | |
|     \ contains=
 | |
|       \cfmlTagComment
 | |
| " / TAG COMMENT }}}
 | |
| 
 | |
| " FLOW STATEMENT {{{
 | |
| " BRANCH FLOW KEYWORD {{{
 | |
| sy keyword cfmlBranchFlowKeyword
 | |
|   \ break
 | |
|   \ continue
 | |
|   \ return
 | |
| 
 | |
| " / BRANCH KEYWORD }}}
 | |
| 
 | |
| " DECISION FLOW KEYWORD {{{
 | |
| sy keyword cfmlDecisionFlowKeyword
 | |
|   \ case
 | |
|   \ defaultcase
 | |
|   \ else
 | |
|   \ if
 | |
|   \ switch
 | |
| 
 | |
| " / DECISION FLOW KEYWORD }}}
 | |
| 
 | |
| " LOOP FLOW KEYWORD {{{
 | |
| sy keyword cfmlLoopFlowKeyword
 | |
|   \ do
 | |
|   \ for
 | |
|   \ in
 | |
|   \ while
 | |
| 
 | |
| " / LOOP FLOW KEYWORD }}}
 | |
| 
 | |
| " TRY FLOW KEYWORD {{{
 | |
| sy keyword cfmlTryFlowKeyword
 | |
|   \ catch
 | |
|   \ finally
 | |
|   \ rethrow
 | |
|   \ throw
 | |
|   \ try
 | |
| 
 | |
| " / TRY FLOW KEYWORD }}}
 | |
| 
 | |
| sy cluster cfmlFlowStatement
 | |
|   \ contains=
 | |
|     \cfmlBranchFlowKeyword,
 | |
|     \cfmlDecisionFlowKeyword,
 | |
|     \cfmlLoopFlowKeyword,
 | |
|     \cfmlTryFlowKeyword
 | |
| 
 | |
| " / FLOW STATEMENT }}}
 | |
| 
 | |
| " STORAGE KEYWORD {{{
 | |
| sy keyword cfmlStorageKeyword
 | |
|     \ var
 | |
| " / STORAGE KEYWORD }}}
 | |
| 
 | |
| " STORAGE TYPE {{{
 | |
| sy match cfmlStorageType
 | |
|   \ contained
 | |
|   \ "\v<
 | |
|     \(any
 | |
|     \|array
 | |
|     \|binary
 | |
|     \|boolean
 | |
|     \|date
 | |
|     \|numeric
 | |
|     \|query
 | |
|     \|string
 | |
|     \|struct
 | |
|     \|uuid
 | |
|     \|void
 | |
|     \|xml
 | |
|   \){1}\ze(\s*\=)@!"
 | |
| " / STORAGE TYPE }}}
 | |
| 
 | |
| " CORE KEYWORD {{{
 | |
| sy match cfmlCoreKeyword
 | |
|   \ "\v<
 | |
|     \(new
 | |
|     \|required
 | |
|     \)\ze\s"
 | |
| " / CORE KEYWORD }}}
 | |
| 
 | |
| " CORE SCOPE {{{
 | |
| sy match cfmlCoreScope
 | |
|   \ "\v<
 | |
|     \(application
 | |
|     \|arguments
 | |
|     \|attributes
 | |
|     \|caller
 | |
|     \|cfcatch
 | |
|     \|cffile
 | |
|     \|cfhttp
 | |
|     \|cgi
 | |
|     \|client
 | |
|     \|cookie
 | |
|     \|form
 | |
|     \|local
 | |
|     \|request
 | |
|     \|server
 | |
|     \|session
 | |
|     \|super
 | |
|     \|this
 | |
|     \|thisTag
 | |
|     \|thread
 | |
|     \|variables
 | |
|     \|url
 | |
|     \){1}\ze(,|\.|\[|\)|\s)"
 | |
| " / CORE SCOPE }}}
 | |
| 
 | |
| " SQL STATEMENT {{{
 | |
| sy cluster cfmlSqlStatement
 | |
|   \ contains=
 | |
|     \@cfmlParenthesisRegion,
 | |
|     \@cfmlQuote,
 | |
|     \@cfmlQuotedValue,
 | |
|     \@sqlSyntax,
 | |
|     \cfmlBoolean,
 | |
|     \cfmlDot,
 | |
|     \cfmlEqualSign,
 | |
|     \cfmlFunctionName,
 | |
|     \cfmlHashSurround,
 | |
|     \cfmlNumber
 | |
| " / SQL STATEMENT }}}
 | |
| 
 | |
| " TAG IN SCRIPT {{{
 | |
| sy match cfmlTagNameInScript
 | |
|     \ "\vcf_*\w+\s*\ze\("
 | |
| " / TAG IN SCRIPT }}}
 | |
| 
 | |
| " METADATA {{{
 | |
| sy region cfmlMetaData
 | |
|   \ contained
 | |
|   \ keepend
 | |
|   \ start="@\w\+"
 | |
|   \ end="$"
 | |
|   \ contains=
 | |
|     \cfmlMetaDataName
 | |
| 
 | |
| sy match cfmlMetaDataName
 | |
|     \ contained
 | |
|     \ "@\w\+"
 | |
| " / METADATA }}}
 | |
| 
 | |
| " COMPONENT DEFINITION {{{
 | |
| sy region cfmlComponentDefinition
 | |
|   \ start="component"
 | |
|   \ end="{"me=e-1
 | |
|   \ contains=
 | |
|     \@cfmlAttribute,
 | |
|     \cfmlComponentKeyword
 | |
| 
 | |
| sy match cfmlComponentKeyword
 | |
|   \ contained
 | |
|   \ "\v<component>"
 | |
| " / COMPONENT DEFINITION }}}
 | |
| 
 | |
| " INTERFACE DEFINITION {{{
 | |
| sy match cfmlInterfaceDefinition
 | |
|   \ "interface\s.*{"me=e-1
 | |
|   \ contains=
 | |
|     \cfmlInterfaceKeyword
 | |
| 
 | |
| sy match cfmlInterfaceKeyword
 | |
|     \ contained
 | |
|     \ "\v<interface>"
 | |
| " / INTERFACE DEFINITION }}}
 | |
| 
 | |
| " PROPERTY {{{
 | |
| sy region cfmlProperty
 | |
|   \ transparent
 | |
|   \ start="\v<property>"
 | |
|   \ end=";"me=e-1
 | |
|   \ contains=
 | |
|     \@cfmlQuotedValue,
 | |
|     \cfmlAttrEqualSign,
 | |
|     \cfmlAttrName,
 | |
|     \cfmlAttrValue,
 | |
|     \cfmlPropertyKeyword
 | |
| 
 | |
| sy match cfmlPropertyKeyword
 | |
|         \ contained
 | |
|         \ "\v<property>"
 | |
| " / PROPERTY }}}
 | |
| 
 | |
| " FUNCTION DEFINITION {{{
 | |
| sy match cfmlFunctionDefinition
 | |
|   \ "\v
 | |
|     \(<(public|private|package)\s){,1}
 | |
|     \(<
 | |
|       \(any
 | |
|       \|array
 | |
|       \|binary
 | |
|       \|boolean
 | |
|       \|date
 | |
|       \|numeric
 | |
|       \|query
 | |
|       \|string
 | |
|       \|struct
 | |
|       \|uuid
 | |
|       \|void
 | |
|       \|xml
 | |
|     \)\s){,1}
 | |
|   \<function\s\w+\s*\("me=e-1
 | |
|   \ contains=
 | |
|     \cfmlFunctionKeyword,
 | |
|     \cfmlFunctionModifier,
 | |
|     \cfmlFunctionName,
 | |
|     \cfmlFunctionReturnType
 | |
| 
 | |
| " FUNCTION KEYWORD {{{
 | |
| sy match cfmlFunctionKeyword
 | |
|   \ contained
 | |
|   \ "\v<function>"
 | |
| " / FUNCTION KEYWORD }}}
 | |
| 
 | |
| " FUNCTION MODIFIER {{{
 | |
| sy match cfmlFunctionModifier
 | |
|   \ contained
 | |
|     \ "\v<
 | |
|     \(public
 | |
|     \|private
 | |
|     \|package
 | |
|     \)>"
 | |
| " / FUNCTION MODIFIER }}}
 | |
| 
 | |
| " FUNCTION RETURN TYPE {{{
 | |
| sy match cfmlFunctionReturnType
 | |
|   \ contained
 | |
|     \ "\v
 | |
|     \(any
 | |
|     \|array
 | |
|     \|binary
 | |
|     \|boolean
 | |
|     \|date
 | |
|     \|numeric
 | |
|     \|query
 | |
|     \|string
 | |
|     \|struct
 | |
|     \|uuid
 | |
|     \|void
 | |
|     \|xml
 | |
|     \)"
 | |
| " / FUNCTION RETURN TYPE }}}
 | |
| 
 | |
| " FUNCTION NAME {{{
 | |
| " specific regex for core functions decreases performance
 | |
| " so use the same highlighting for both function types
 | |
| sy match cfmlFunctionName
 | |
|     \ "\v<(cf|if|elseif|throw)@!\w+\s*\ze\("
 | |
| " / FUNCTION NAME }}}
 | |
| 
 | |
| " / FUNCTION DEFINITION }}}
 | |
| 
 | |
| " ODD FUNCTION {{{
 | |
| sy region cfmlOddFunction
 | |
|   \ transparent
 | |
|   \ start="\v<
 | |
|     \(abort
 | |
|     \|exit
 | |
|     \|import
 | |
|     \|include
 | |
|     \|lock
 | |
|     \|pageencoding
 | |
|     \|param
 | |
|     \|savecontent
 | |
|     \|thread
 | |
|     \|transaction
 | |
|     \){1}"
 | |
|   \ end="\v(\{|;)"me=e-1
 | |
|   \ contains=
 | |
|     \@cfmlQuotedValue,
 | |
|     \cfmlAttrEqualSign,
 | |
|     \cfmlAttrName,
 | |
|     \cfmlAttrValue,
 | |
|     \cfmlCoreKeyword,
 | |
|     \cfmlOddFunctionKeyword,
 | |
|     \cfmlCoreScope
 | |
| 
 | |
| " ODD FUNCTION KEYWORD {{{
 | |
| sy match cfmlOddFunctionKeyword
 | |
|   \ contained
 | |
|     \ "\v<
 | |
|     \(abort
 | |
|     \|exit
 | |
|     \|import
 | |
|     \|include
 | |
|     \|lock
 | |
|     \|pageencoding
 | |
|     \|param
 | |
|     \|savecontent
 | |
|     \|thread
 | |
|     \|transaction
 | |
|     \)\ze(\s|$|;)"
 | |
| " / ODD FUNCTION KEYWORD }}}
 | |
| 
 | |
| " / ODD FUNCTION }}}
 | |
| 
 | |
| " CUSTOM {{{
 | |
| 
 | |
| " CUSTOM KEYWORD {{{
 | |
| sy match cfmlCustomKeyword
 | |
|   \ contained
 | |
|     \ "\v<
 | |
|     \(customKeyword1
 | |
|     \|customKeyword2
 | |
|     \|customKeyword3
 | |
|     \)>"
 | |
| " / CUSTOM KEYWORD }}}
 | |
| 
 | |
| " CUSTOM SCOPE {{{
 | |
| sy match cfmlCustomScope
 | |
|   \ contained
 | |
|     \ "\v<
 | |
|     \(prc
 | |
|     \|rc
 | |
|     \|event
 | |
|     \|(\w+Service)
 | |
|     \){1}\ze(\.|\[)"
 | |
| " / CUSTOM SCOPE }}}
 | |
| 
 | |
| " / CUSTOM }}}
 | |
| 
 | |
| " SGML TAG START AND END {{{
 | |
| " SGML tag start
 | |
| " <...>
 | |
| " s^^^e
 | |
| sy region cfmlSGMLTagStart
 | |
|   \ keepend
 | |
|   \ transparent
 | |
|   \ start="\v(\<cf)@!\zs\<\w+"
 | |
|   \ end=">"
 | |
|   \ contains=
 | |
|     \@cfmlAttribute,
 | |
|     \@cfmlComment,
 | |
|     \@cfmlOperator,
 | |
|     \@cfmlParenthesisRegion,
 | |
|     \@cfmlPunctuation,
 | |
|     \@cfmlQuote,
 | |
|     \@cfmlQuotedValue,
 | |
|     \cfmlAttrEqualSign,
 | |
|     \cfmlBoolean,
 | |
|     \cfmlBrace,
 | |
|     \cfmlCoreKeyword,
 | |
|     \cfmlCoreScope,
 | |
|     \cfmlCustomKeyword,
 | |
|     \cfmlCustomScope,
 | |
|     \cfmlEqualSign,
 | |
|     \cfmlFunctionName,
 | |
|     \cfmlNumber,
 | |
|     \cfmlStorageKeyword,
 | |
|     \cfmlStorageType,
 | |
|     \cfmlTagBracket,
 | |
|     \cfmlSGMLTagName
 | |
| 
 | |
| " SGML tag end
 | |
| " </...>
 | |
| " s^^^^e
 | |
| sy match cfmlSGMLTagEnd
 | |
|   \ transparent
 | |
|   \ "\v(\<\/cf)@!\zs\<\/\w+\>"
 | |
|   \ contains=
 | |
|     \cfmlTagBracket,
 | |
|     \cfmlSGMLTagName
 | |
| 
 | |
| " SGML tag name
 | |
| " <...>
 | |
| " s^^^e
 | |
| sy match cfmlSGMLTagName
 | |
|   \ contained
 | |
|   \ "\v(\<\/*)\zs\w+"
 | |
| 
 | |
| " / SGML TAG START AND END }}}
 | |
| 
 | |
| " HIGHLIGHTING {{{
 | |
| 
 | |
| hi link cfmlNumber Number
 | |
| hi link cfmlBoolean Boolean
 | |
| hi link cfmlEqualSign Keyword
 | |
| " HASH SURROUND
 | |
| hi link cfmlHash PreProc
 | |
| hi link cfmlHashSurround PreProc
 | |
| " OPERATOR
 | |
| hi link cfmlArithmeticOperator Function
 | |
| hi link cfmlBooleanOperator Function
 | |
| hi link cfmlDecisionOperator Function
 | |
| hi link cfmlStringOperator Function
 | |
| hi link cfmlTernaryOperator Function
 | |
| " PARENTHESIS
 | |
| hi link cfmlParenthesis1 Statement
 | |
| hi link cfmlParenthesis2 String
 | |
| hi link cfmlParenthesis3 Delimiter
 | |
| " BRACE
 | |
| hi link cfmlBrace PreProc
 | |
| " PUNCTUATION - BRACKET
 | |
| hi link cfmlBracket Statement
 | |
| " PUNCTUATION - CHAR
 | |
| hi link cfmlComma Comment
 | |
| hi link cfmlDot Comment
 | |
| hi link cfmlSemiColon Comment
 | |
| " PUNCTUATION - QUOTE
 | |
| hi link cfmlDoubleQuote String
 | |
| hi link cfmlDoubleQuotedValue String
 | |
| hi link cfmlSingleQuote String
 | |
| hi link cfmlSingleQuotedValue String
 | |
| " TAG START AND END
 | |
| hi link cfmlTagName Function
 | |
| hi link cfmlTagBracket Comment
 | |
| " ATTRIBUTE NAME AND VALUE
 | |
| hi link cfmlAttrName Type
 | |
| hi link cfmlAttrValue Special
 | |
| " COMMENT
 | |
| hi link cfmlCommentBlock Comment
 | |
| hi link cfmlCommentLine Comment
 | |
| hi link cfmlTagComment Comment
 | |
| " FLOW STATEMENT
 | |
| hi link cfmlDecisionFlowKeyword Conditional
 | |
| hi link cfmlLoopFlowKeyword Repeat
 | |
| hi link cfmlTryFlowKeyword Exception
 | |
| hi link cfmlBranchFlowKeyword Keyword
 | |
| " STORAGE KEYWORD
 | |
| hi link cfmlStorageKeyword Keyword
 | |
| " STORAGE TYPE
 | |
| hi link cfmlStorageType Keyword
 | |
| " CORE KEYWORD
 | |
| hi link cfmlCoreKeyword PreProc
 | |
| " CORE SCOPE
 | |
| hi link cfmlCoreScope Keyword
 | |
| " TAG IN SCRIPT
 | |
| hi link cfmlTagNameInScript Function
 | |
| " METADATA
 | |
| " meta data value = cfmlMetaData
 | |
| hi link cfmlMetaData String
 | |
| hi link cfmlMetaDataName Type
 | |
| " COMPONENT DEFINITION
 | |
| hi link cfmlComponentKeyword Keyword
 | |
| " INTERFACE DEFINITION
 | |
| hi link cfmlInterfaceKeyword Keyword
 | |
| " PROPERTY
 | |
| hi link cfmlPropertyKeyword Keyword
 | |
| " FUNCTION DEFINITION
 | |
| hi link cfmlFunctionKeyword Keyword
 | |
| hi link cfmlFunctionModifier Keyword
 | |
| hi link cfmlFunctionReturnType Keyword
 | |
| hi link cfmlFunctionName Function
 | |
| " ODD FUNCTION
 | |
| hi link cfmlOddFunctionKeyword Function
 | |
| " CUSTOM
 | |
| hi link cfmlCustomKeyword Keyword
 | |
| hi link cfmlCustomScope Structure
 | |
| " SGML TAG
 | |
| hi link cfmlSGMLTagName Ignore
 | |
| 
 | |
| " / HIGHLIGHTING }}}
 | |
| 
 | |
| let b:current_syntax = "cfml"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 |