Merge branch 'hack/autopaste'
[vim-kana.git] / runtime / syntax / cf.vim
blob95184060904e5cf26e11b145a9d3564ce196b314
1 " Vim syntax file
2 "    Language: ColdFusion
3 "  Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com)
4 " Last Change: 2005 Nov 25
5 "   Filenames: *.cfc *.cfm
6 "     Version: Macromedia ColdFusion MX 7
7 "       Usage: Note that ColdFusion has its own comment syntax
8 "              i.e. <!--- --->
10 " For version 5.x, clear all syntax items.
11 " For version 6.x+, quit if a syntax file is already loaded.
12 if version < 600
13   syntax clear
14 elseif exists("b:current_syntax")
15   finish
16 endif
18 " Use all the stuff from the HTML syntax file.
19 " TODO remove this; CFML is not a superset of HTML
20 if version < 600
21   source <sfile>:p:h/html.vim
22 else
23   runtime! syntax/html.vim
24 endif
26 syn sync fromstart
27 syn sync maxlines=200
28 syn case ignore
30 " Scopes and keywords.
31 syn keyword cfScope contained cgi cffile request caller this thistag cfcatch variables application server session client form url attributes arguments
32 syn keyword cfBool contained yes no true false
34 " Operator strings.
35 " Not exhaustive, since there are longhand equivalents.
36 syn keyword cfOperator contained xor eqv and or lt le lte gt ge gte eq neq not is mod contains
37 syn match cfOperatorMatch contained "[\+\-\*\/\\\^\&][\+\-\*\/\\\^\&]\@!"
38 syn cluster cfOperatorCluster contains=cfOperator,cfOperatorMatch
40 " Tag names.
41 syn keyword cfTagName contained cfabort cfapplet cfapplication cfargument cfassociate cfbreak cfcache
42 syn keyword cfTagName contained cfcalendar cfcase cfcatch cfchart cfchartdata cfchartseries cfcol cfcollection
43 syn keyword cfTagName contained cfcomponent cfcontent cfcookie cfdefaultcase cfdirectory cfdocument
44 syn keyword cfTagName contained cfdocumentitem cfdocumentsection cfdump cfelse cfelseif cferror cfexecute
45 syn keyword cfTagName contained cfexit cffile cfflush cfform cfformgroup cfformitem cfftp cffunction cfgrid
46 syn keyword cfTagName contained cfgridcolumn cfgridrow cfgridupdate cfheader cfhtmlhead cfhttp cfhttpparam cfif
47 syn keyword cfTagName contained cfimport cfinclude cfindex cfinput cfinsert cfinvoke cfinvokeargument
48 syn keyword cfTagName contained cfldap cflocation cflock cflog cflogin cfloginuser cflogout cfloop cfmail
49 syn keyword cfTagName contained cfmailparam cfmailpart cfmodule cfNTauthenticate cfobject cfobjectcache
50 syn keyword cfTagName contained cfoutput cfparam cfpop cfprocessingdirective cfprocparam cfprocresult
51 syn keyword cfTagName contained cfproperty cfquery cfqueryparam cfregistry cfreport cfreportparam cfrethrow
52 syn keyword cfTagName contained cfreturn cfsavecontent cfschedule cfscript cfsearch cfselect cfset cfsetting
53 syn keyword cfTagName contained cfsilent cfslider cfstoredproc cfswitch cftable cftextarea cfthrow cftimer
54 syn keyword cfTagName contained cftrace cftransaction cftree cftreeitem cftry cfupdate cfwddx cfxml 
56 " Tag parameters.
57 syn keyword cfArg contained abort accept access accessible action addnewline addtoken addtoken agentname
58 syn keyword cfArg contained align appendkey appletsource application applicationtimeout applicationtoken
59 syn keyword cfArg contained archive argumentcollection arguments asciiextensionlist attachmentpath
60 syn keyword cfArg contained attributecollection attributes attributes autowidth backgroundcolor
61 syn keyword cfArg contained backgroundvisible basetag bcc bgcolor bind bindingname blockfactor body bold
62 syn keyword cfArg contained border branch cachedafter cachedwithin casesensitive categories category
63 syn keyword cfArg contained categorytree cc cfsqltype charset chartheight chartwidth checked class
64 syn keyword cfArg contained clientmanagement clientstorage codebase colheaderalign colheaderbold
65 syn keyword cfArg contained colheaderfont colheaderfontsize colheaderitalic colheaders colheadertextcolor
66 syn keyword cfArg contained collection colorlist colspacing columns completepath component condition
67 syn keyword cfArg contained connection contentid context contextbytes contexthighlightbegin
68 syn keyword cfArg contained contexthighlightend contextpassages cookiedomain criteria custom1 custom2
69 syn keyword cfArg contained custom3 custom4 data dataalign databackgroundcolor datacollection
70 syn keyword cfArg contained datalabelstyle datasource date daynames dbname dbserver dbtype dbvarname debug
71 syn keyword cfArg contained default delete deletebutton deletefile delimiter delimiters description
72 syn keyword cfArg contained destination detail directory disabled display displayname disposition dn domain
73 syn keyword cfArg contained enablecab enablecfoutputonly enabled encoded encryption enctype enddate
74 syn keyword cfArg contained endrange endrow endtime entry errorcode exception existing expand expires
75 syn keyword cfArg contained expireurl expression extendedinfo extends extensions external failifexists
76 syn keyword cfArg contained failto file filefield filename filter firstdayofweek firstrowasheaders font
77 syn keyword cfArg contained fontbold fontembed fontitalic fontsize foregroundcolor format formfields
78 syn keyword cfArg contained formula from generateuniquefilenames getasbinary grid griddataalign gridlines
79 syn keyword cfArg contained groovecolor group groupcasesensitive header headeralign headerbold headerfont
80 syn keyword cfArg contained headerfontsize headeritalic headerlines headertextcolor height highlighthref
81 syn keyword cfArg contained hint href hrefkey hscroll hspace htmltable id idletimeout img imgopen imgstyle
82 syn keyword cfArg contained index inline input insert insertbutton interval isolation italic item
83 syn keyword cfArg contained itemcolumn key keyonly label labelformat language list listgroups locale
84 syn keyword cfArg contained localfile log loginstorage lookandfeel mailerid mailto marginbottom marginleft
85 syn keyword cfArg contained marginright marginright margintop markersize markerstyle mask maxlength maxrows
86 syn keyword cfArg contained message messagenumber method mimeattach mimetype mode modifytype monthnames
87 syn keyword cfArg contained multipart multiple name namecomplict nameconflict namespace new newdirectory
88 syn keyword cfArg contained notsupported null numberformat object omit onchange onclick onerror onkeydown
89 syn keyword cfArg contained onkeyup onload onmousedown onmouseup onreset onsubmit onvalidate operation
90 syn keyword cfArg contained orderby orientation output outputfile overwrite ownerpassword pageencoding
91 syn keyword cfArg contained pageheight pagetype pagewidth paintstyle param_1 param_2 param_3 param_4
92 syn keyword cfArg contained param_5 parent passive passthrough password path pattern permissions picturebar
93 syn keyword cfArg contained pieslicestyle port porttypename prefix preloader preservedata previouscriteria
94 syn keyword cfArg contained procedure protocol provider providerdsn proxybypass proxypassword proxyport
95 syn keyword cfArg contained proxyserver proxyuser publish query queryasroot queryposition range rebind
96 syn keyword cfArg contained recurse redirect referral refreshlabel remotefile replyto report requesttimeout
97 syn keyword cfArg contained required reset resolveurl result resultset retrycount returnasbinary returncode
98 syn keyword cfArg contained returntype returnvariable roles rowheaderalign rowheaderbold rowheaderfont
99 syn keyword cfArg contained rowheaderfontsize rowheaderitalic rowheaders rowheadertextcolor rowheaderwidth
100 syn keyword cfArg contained rowheight scale scalefrom scaleto scope scriptprotect scriptsrc secure
101 syn keyword cfArg contained securitycontext select selectcolor selected selecteddate selectedindex
102 syn keyword cfArg contained selectmode separator seriescolor serieslabel seriesplacement server serviceport
103 syn keyword cfArg contained serviceportname sessionmanagement sessiontimeout setclientcookies setcookie
104 syn keyword cfArg contained setdomaincookies show3d showborder showdebugoutput showerror showlegend
105 syn keyword cfArg contained showmarkers showxgridlines showygridlines size skin sort sortascendingbutton
106 syn keyword cfArg contained sortcontrol sortdescendingbutton sortxaxis source spoolenable sql src start
107 syn keyword cfArg contained startdate startrange startrow starttime status statuscode statustext step
108 syn keyword cfArg contained stoponerror style subject suggestions suppresswhitespace tablename tableowner
109 syn keyword cfArg contained tablequalifier taglib target task template text textcolor textqualifier
110 syn keyword cfArg contained thread throwonerror throwonfailure throwontimeout time timeout timespan tipbgcolor tipstyle
111 syn keyword cfArg contained title to tooltip top toplevelvariable transfermode type uid unit url urlpath
112 syn keyword cfArg contained useragent username userpassword usetimezoneinfo validate validateat value
113 syn keyword cfArg contained valuecolumn values valuesdelimiter valuesdisplay var variable vertical visible
114 syn keyword cfArg contained vscroll vspace webservice width wmode wraptext wsdlfile xaxistitle xaxistype
115 syn keyword cfArg contained xoffset yaxistitle yaxistype yoffset
117 " ColdFusion Functions.
118 syn keyword cfFunctionName contained Abs GetFunctionList Max ACos GetGatewayHelper Mid AddSOAPRequestHeader
119 syn keyword cfFunctionName contained GetHttpRequestData Min AddSOAPResponseHeader GetHttpTimeString Minute
120 syn keyword cfFunctionName contained ArrayAppend GetLocale Month ArrayAvg GetLocaleDisplayName MonthAsString
121 syn keyword cfFunctionName contained ArrayClear GetMetaData Now ArrayDeleteAt GetMetricData NumberFormat
122 syn keyword cfFunctionName contained ArrayInsertAt GetPageContext ParagraphFormat ArrayIsEmpty GetProfileSections
123 syn keyword cfFunctionName contained ParseDateTime ArrayLen GetProfileString Pi ArrayMax GetSOAPRequest
124 syn keyword cfFunctionName contained PreserveSingleQuotes ArrayMin GetSOAPRequestHeader Quarter ArrayNew
125 syn keyword cfFunctionName contained GetSOAPResponse QueryAddColumn ArrayPrepend GetSOAPResponseHeader QueryAddRow
126 syn keyword cfFunctionName contained ArrayResize GetTempDirectory QueryNew ArraySet GetTempFile QuerySetCell
127 syn keyword cfFunctionName contained ArraySort GetTickCount QuotedValueList ArraySum GetTimeZoneInfo Rand ArraySwap
128 syn keyword cfFunctionName contained GetToken Randomize ArrayToList Hash RandRange Asc Hour REFind ASin
129 syn keyword cfFunctionName contained HTMLCodeFormat REFindNoCase Atn HTMLEditFormat ReleaseComObject BinaryDecode
130 syn keyword cfFunctionName contained IIf RemoveChars BinaryEncode IncrementValue RepeatString BitAnd InputBaseN
131 syn keyword cfFunctionName contained Replace BitMaskClear Insert ReplaceList BitMaskRead Int ReplaceNoCase
132 syn keyword cfFunctionName contained BitMaskSet IsArray REReplace BitNot IsBinary REReplaceNoCase BitOr IsBoolean
133 syn keyword cfFunctionName contained Reverse BitSHLN IsCustomFunction Right BitSHRN IsDate RJustify BitXor
134 syn keyword cfFunctionName contained IsDebugMode Round Ceiling IsDefined RTrim CharsetDecode IsLeapYear Second
135 syn keyword cfFunctionName contained CharsetEncode IsNumeric SendGatewayMessage Chr IsNumericDate SetEncoding
136 syn keyword cfFunctionName contained CJustify IsObject SetLocale Compare IsQuery SetProfileString CompareNoCase
137 syn keyword cfFunctionName contained IsSimpleValue SetVariable Cos IsSOAPRequest Sgn CreateDate IsStruct Sin
138 syn keyword cfFunctionName contained CreateDateTime IsUserInRole SpanExcluding CreateObject IsValid SpanIncluding
139 syn keyword cfFunctionName contained CreateODBCDate IsWDDX Sqr CreateODBCDateTime IsXML StripCR CreateODBCTime
140 syn keyword cfFunctionName contained IsXmlAttribute StructAppend CreateTime IsXmlDoc StructClear CreateTimeSpan
141 syn keyword cfFunctionName contained IsXmlElem StructCopy CreateUUID IsXmlNode StructCount DateAdd IsXmlRoot
142 syn keyword cfFunctionName contained StructDelete DateCompare JavaCast StructFind DateConvert JSStringFormat
143 syn keyword cfFunctionName contained StructFindKey DateDiff LCase StructFindValue DateFormat Left StructGet
144 syn keyword cfFunctionName contained DatePart Len StructInsert Day ListAppend StructIsEmpty DayOfWeek
145 syn keyword cfFunctionName contained ListChangeDelims StructKeyArray DayOfWeekAsString ListContains StructKeyExists
146 syn keyword cfFunctionName contained DayOfYear ListContainsNoCase StructKeyList DaysInMonth ListDeleteAt StructNew
147 syn keyword cfFunctionName contained DaysInYear ListFind StructSort DE ListFindNoCase StructUpdate DecimalFormat
148 syn keyword cfFunctionName contained ListFirst Tan DecrementValue ListGetAt TimeFormat Decrypt ListInsertAt
149 syn keyword cfFunctionName contained ToBase64 DeleteClientVariable ListLast ToBinary DirectoryExists ListLen
150 syn keyword cfFunctionName contained ToScript DollarFormat ListPrepend ToString Duplicate ListQualify Trim Encrypt
151 syn keyword cfFunctionName contained ListRest UCase Evaluate ListSetAt URLDecode Exp ListSort URLEncodedFormat
152 syn keyword cfFunctionName contained ExpandPath ListToArray URLSessionFormat FileExists ListValueCount Val Find
153 syn keyword cfFunctionName contained ListValueCountNoCase ValueList FindNoCase LJustify Week FindOneOf Log Wrap
154 syn keyword cfFunctionName contained FirstDayOfMonth Log10 WriteOutput Fix LSCurrencyFormat XmlChildPos FormatBaseN
155 syn keyword cfFunctionName contained LSDateFormat XmlElemNew GetTempDirectory LSEuroCurrencyFormat XmlFormat
156 syn keyword cfFunctionName contained GetAuthUser LSIsCurrency XmlGetNodeType GetBaseTagData LSIsDate XmlNew
157 syn keyword cfFunctionName contained GetBaseTagList LSIsNumeric XmlParse GetBaseTemplatePath LSNumberFormat
158 syn keyword cfFunctionName contained XmlSearch GetClientVariablesList LSParseCurrency XmlTransform
159 syn keyword cfFunctionName contained GetCurrentTemplatePath LSParseDateTime XmlValidate GetDirectoryFromPath
160 syn keyword cfFunctionName contained LSParseEuroCurrency Year GetEncoding LSParseNumber YesNoFormat GetException
161 syn keyword cfFunctionName contained LSTimeFormat GetFileFromPath LTrim 
163 syn cluster htmlTagNameCluster add=cfTagName
164 syn cluster htmlArgCluster add=cfArg,cfHashRegion,cfScope
165 syn cluster htmlPreproc add=cfHashRegion
167 syn cluster cfExpressionCluster contains=cfFunctionName,cfScope,@cfOperatorCluster,cfScriptStringD,cfScriptStringS,cfScriptNumber,cfBool
169 " Evaluation; skip strings ( this helps with cases like nested IIf() )
170 syn region cfHashRegion start=+#+ skip=+"[^"]*"\|'[^']*'+ end=+#+ contains=@cfExpressionCluster,cfScriptParenError
172 " <cfset>, <cfif>, <cfelseif>, <cfreturn> are analogous to hashmarks (implicit evaluation) and has 'var'
173 syn region cfSetRegion start="<cfset " start="<cfreturn " start="<cfelseif " start="<cfif " end='>' keepend contains=@cfExpressionCluster,cfSetLHSRegion,cfSetTagEnd,cfScriptType
174 syn region cfSetLHSRegion contained start="<cfreturn" start="<cfelseif" start="<cfif" start="<cfset" end=" " keepend contains=cfTagName,htmlTag
175 syn match  cfSetTagEnd contained '>'
177 " CF comments: similar to SGML comments
178 syn region  cfComment     start='<!---' end='--->' keepend contains=cfCommentTodo
179 syn keyword cfCommentTodo contained TODO FIXME XXX TBD WTF 
181 " CFscript 
182 syn match   cfScriptLineComment      contained "\/\/.*$" contains=cfCommentTodo
183 syn region  cfScriptComment          contained start="/\*"  end="\*/" contains=cfCommentTodo
184 " in CF, quotes are escaped by doubling
185 syn region  cfScriptStringD          contained start=+"+  skip=+\\\\\|""+  end=+"+  extend contains=@htmlPreproc,cfHashRegion
186 syn region  cfScriptStringS          contained start=+'+  skip=+\\\\\|''+  end=+'+  extend contains=@htmlPreproc,cfHashRegion
187 syn match   cfScriptNumber           contained "-\=\<\d\+L\=\>"
188 syn keyword cfScriptConditional      contained if else
189 syn keyword cfScriptRepeat           contained while for in
190 syn keyword cfScriptBranch           contained break switch case try catch continue
191 syn keyword cfScriptFunction         contained function
192 syn keyword cfScriptType             contained var
193 syn match   cfScriptBraces           contained "[{}]"
194 syn keyword cfScriptStatement        contained return
196 syn cluster cfScriptCluster contains=cfScriptParen,cfScriptLineComment,cfScriptComment,cfScriptStringD,cfScriptStringS,cfScriptFunction,cfScriptNumber,cfScriptRegexpString,cfScriptBoolean,cfScriptBraces,cfHashRegion,cfFunctionName,cfScope,@cfOperatorCluster,cfScriptConditional,cfScriptRepeat,cfScriptBranch,cfScriptType,@cfExpressionCluster,cfScriptStatement
198 " Errors caused by wrong parenthesis; skip strings
199 syn region  cfScriptParen       contained transparent skip=+"[^"]*"\|'[^']*'+ start=+(+ end=+)+ contains=@cfScriptCluster
200 syn match   cfScrParenError     contained +)+
202 syn region cfscriptBlock matchgroup=NONE start="<cfscript>"  end="<\/cfscript>"me=s-1 keepend contains=@cfScriptCluster,cfscriptTag,cfScrParenError
203 syn region  cfscriptTag contained start='<cfscript' end='>' keepend contains=cfTagName,htmlTag
205 " Define the default highlighting.
206 if version >= 508 || !exists("did_cf_syn_inits")
207   if version < 508
208     let did_cf_syn_inits = 1
209     command -nargs=+ HiLink hi link <args>
210   else
211     command -nargs=+ HiLink hi def link <args>
212   endif
214   HiLink cfTagName              Statement
215   HiLink cfArg                  Type
216   HiLink cfFunctionName         Function
217   HiLink cfHashRegion           PreProc
218   HiLink cfComment              Comment
219   HiLink cfCommentTodo          Todo
220   HiLink cfOperator             Operator
221   HiLink cfOperatorMatch        Operator
222   HiLink cfScope                Title
223   HiLink cfBool                 Constant
225   HiLink cfscriptBlock          Special
226   HiLink cfscriptTag            htmlTag
227   HiLink cfSetRegion            PreProc
228   HiLink cfSetLHSRegion         htmlTag
229   HiLink cfSetTagEnd            htmlTag
231   HiLink cfScriptLineComment    Comment
232   HiLink cfScriptComment        Comment
233   HiLink cfScriptStringS        String
234   HiLink cfScriptStringD        String
235   HiLink cfScriptNumber         cfScriptValue
236   HiLink cfScriptConditional    Conditional
237   HiLink cfScriptRepeat         Repeat
238   HiLink cfScriptBranch         Conditional
239   HiLink cfScriptType           Type
240   HiLink cfScriptStatement      Statement
241   HiLink cfScriptBraces         Function
242   HiLink cfScriptFunction       Function
243   HiLink cfScriptError          Error
244   HiLink cfScrParenError        cfScriptError
246   delcommand HiLink
247 endif
249 let b:current_syntax = "cf"
251 " vim: ts=8 sw=2