mirror of
https://github.com/neovim/neovim.git
synced 2026-01-02 17:36:56 +10:00
This reverts commits:
- 6b652a785033fd4164e049492a7327c1ed7c3e5f
- 2f689d5abde0ccddca9e20d8c93a0299bd054e32
- a025a46d4169587145fb54f04af349cd05cb6122
Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.
62d8f3dab5
N/A patch:
vim-patch:2f689d5: runtime: mark more invalid email addresses
Co-authored-by: Christian Brabandt <cb@256bit.org>
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
|