Files
neovim/runtime/syntax/cf.vim
zeertzjq ab20681c52 vim-patch:62d8f3d: runtime: Revert several "mark invalid contact addresses" commits (#37192)
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>
2026-01-02 06:53:44 +08:00

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