view runtime/syntax/cf.vim @ 16150:b23048205589 v8.1.1080

patch 8.1.1080: when a screendump test fails, moving the file is a hassle commit https://github.com/vim/vim/commit/ef7f0e367eeaf6fb31b1caa0e3de1a4b07e86af3 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 30 15:59:51 2019 +0100 patch 8.1.1080: when a screendump test fails, moving the file is a hassle Problem: When a screendump test fails, moving the file is a hassle. Solution: Instead of appending ".failed" to the file name, keep the same file name but put the screendump in the "failed" directory. Then the file name only needs to be typed once when moving a screendump.
author Bram Moolenaar <Bram@vim.org>
date Sat, 30 Mar 2019 16:00:06 +0100
parents 45987b1b77dc
children
line wrap: on
line source

" 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