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