neovim/runtime/syntax/cf.vim
Bruno Michel b5e3fec621 vim-patch:2f0584910c0e
Update runtime files
2f0584910c
2018-10-12 21:33:13 +02: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