| " Vim syntax file |
| " Language: ColdFusion |
| " Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com) |
| " Last Change: 2005 Nov 25 |
| " 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 |