1" Vim syntax file 2" 3" Language: CFML (ColdFusion) 4" Author: Ernst M. van der Linden <[email protected]> 5" License: The MIT License (MIT) 6" 7" Maintainer: Ernst M. van der Linden <[email protected]> 8" URL: https://github.com/ernstvanderlinden/vim-coldfusion 9" Last Change: 2017 Nov 28 10" 11" Filenames: *.cfc *.cfm 12 13" Quit when a syntax file was already loaded. 14if exists("b:current_syntax") 15 finish 16endif 17 18" Using line continuation here. 19let s:cpo_save=&cpo 20set cpo-=C 21 22sy sync fromstart 23" 20171126: disabled as we have fast computers now. 24"sy sync maxlines=2000 25sy case ignore 26 27" INCLUDES {{{ 28sy include @sqlSyntax $VIMRUNTIME/syntax/sql.vim 29" 20161010: Disabled include html highlighting as it contains huge keywords 30" regex, so it will have impact on performance. Use own simple SGML tag 31" coloring instead. 32"runtime! syntax/html.vim 33" / INCLUDES }}} 34 35" NUMBER {{{ 36sy match cfmlNumber 37 \ "\v<\d+>" 38" / NUMBER }}} 39 40" EQUAL SIGN {{{ 41sy match cfmlEqualSign 42 \ "\v\=" 43" / EQUAL SIGN }}} 44 45" BOOLEAN {{{ 46sy match cfmlBoolean 47 \ "\v<(true|false)>" 48" / BOOLEAN }}} 49 50" HASH SURROUNDED {{{ 51sy region cfmlHashSurround 52 \ keepend 53 \ oneline 54 \ start="#" 55 \ end="#" 56 \ skip="##" 57 \ contains= 58 \@cfmlOperator, 59 \@cfmlPunctuation, 60 \cfmlBoolean, 61 \cfmlCoreKeyword, 62 \cfmlCoreScope, 63 \cfmlCustomKeyword, 64 \cfmlCustomScope, 65 \cfmlEqualSign, 66 \cfmlFunctionName, 67 \cfmlNumber 68" / HASH SURROUNDED }}} 69 70" OPERATOR {{{ 71 72" OPERATOR - ARITHMETIC {{{ 73" +7 -7 74" ++i --i 75" i++ i-- 76" + - * / % 77" += -= *= /= %= 78" ^ mod 79sy match cfmlArithmeticOperator 80 \ "\v 81 \(\+|-)\ze\d 82 \|(\+\+|--)\ze\w 83 \|\w\zs(\+\+|--) 84 \|(\s( 85 \(\+|-|\*|\/|\%){1}\={,1} 86 \|\^ 87 \|mod 88 \)\s) 89 \" 90" / OPERATOR - ARITHMETIC }}} 91 92" OPERATOR - BOOLEAN {{{ 93" not and or xor eqv imp 94" ! && || 95sy match cfmlBooleanOperator 96 \ "\v\s 97 \(not|and|or|xor|eqv|imp 98 \|\!|\&\&|\|\| 99 \)(\s|\)) 100 \|\s\!\ze\w 101 \" 102" / OPERATOR - BOOLEAN }}} 103 104" OPERATOR - DECISION {{{ 105"is|equal|eq 106"is not|not equal|neq 107"contains|does not contain 108"greater than|gt 109"less than|lt 110"greater than or equal to|gte|ge 111"less than or equal to|lte|le 112"==|!=|>|<|>=|<= 113sy match cfmlDecisionOperator 114 \ "\v\s 115 \(is|equal|eq 116 \|is not|not equal|neq 117 \|contains|does not contain 118 \|greater than|gt 119 \|less than|lt 120 \|greater than or equal to|gte|ge 121 \|less than or equal to|lte|le 122 \|(!|\<|\>|\=){1}\= 123 \|\< 124 \|\> 125 \)\s" 126" / OPERATOR - DECISION }}} 127 128" OPERATOR - STRING {{{ 129" & 130" &= 131sy match cfmlStringOperator 132 \ "\v\s\&\={,1}\s" 133" / OPERATOR - STRING }}} 134 135" OPERATOR - TERNARY {{{ 136" ? : 137sy match cfmlTernaryOperator 138 \ "\v\s 139 \\?|\: 140 \\s" 141" / OPERATOR - TERNARY }}} 142 143sy cluster cfmlOperator 144 \ contains= 145 \cfmlArithmeticOperator, 146 \cfmlBooleanOperator, 147 \cfmlDecisionOperator, 148 \cfmlStringOperator, 149 \cfmlTernaryOperator 150" / OPERATOR }}} 151 152" PARENTHESIS {{{ 153sy cluster cfmlParenthesisRegionContains 154 \ contains= 155 \@cfmlAttribute, 156 \@cfmlComment, 157 \@cfmlFlowStatement, 158 \@cfmlOperator, 159 \@cfmlPunctuation, 160 \cfmlBoolean, 161 \cfmlBrace, 162 \cfmlCoreKeyword, 163 \cfmlCoreScope, 164 \cfmlCustomKeyword, 165 \cfmlCustomScope, 166 \cfmlEqualSign, 167 \cfmlFunctionName, 168 \cfmlNumber, 169 \cfmlStorageKeyword, 170 \cfmlStorageType 171 172sy region cfmlParenthesisRegion1 173 \ extend 174 \ matchgroup=cfmlParenthesis1 175 \ transparent 176 \ start=/(/ 177 \ end=/)/ 178 \ contains= 179 \cfmlParenthesisRegion2, 180 \@cfmlParenthesisRegionContains 181sy region cfmlParenthesisRegion2 182 \ matchgroup=cfmlParenthesis2 183 \ transparent 184 \ start=/(/ 185 \ end=/)/ 186 \ contains= 187 \cfmlParenthesisRegion3, 188 \@cfmlParenthesisRegionContains 189sy region cfmlParenthesisRegion3 190 \ matchgroup=cfmlParenthesis3 191 \ transparent 192 \ start=/(/ 193 \ end=/)/ 194 \ contains= 195 \cfmlParenthesisRegion1, 196 \@cfmlParenthesisRegionContains 197sy cluster cfmlParenthesisRegion 198 \ contains= 199 \cfmlParenthesisRegion1, 200 \cfmlParenthesisRegion2, 201 \cfmlParenthesisRegion3 202" / PARENTHESIS }}} 203 204" BRACE {{{ 205sy match cfmlBrace 206 \ "{\|}" 207 208sy region cfmlBraceRegion 209 \ extend 210 \ fold 211 \ keepend 212 \ transparent 213 \ start="{" 214 \ end="}" 215" / BRACE }}} 216 217" PUNCTUATION {{{ 218 219" PUNCTUATION - BRACKET {{{ 220sy match cfmlBracket 221 \ "\(\[\|\]\)" 222 \ contained 223" / PUNCTUATION - BRACKET }}} 224 225" PUNCTUATION - CHAR {{{ 226sy match cfmlComma "," 227sy match cfmlDot "\." 228sy match cfmlSemiColon ";" 229 230" / PUNCTUATION - CHAR }}} 231 232" PUNCTUATION - QUOTE {{{ 233sy region cfmlSingleQuotedValue 234 \ matchgroup=cfmlSingleQuote 235 \ start=/'/ 236 \ skip=/''/ 237 \ end=/'/ 238 \ contains= 239 \cfmlHashSurround 240 241sy region cfmlDoubleQuotedValue 242 \ matchgroup=cfmlDoubleQuote 243 \ start=/"/ 244 \ skip=/""/ 245 \ end=/"/ 246 \ contains= 247 \cfmlHashSurround 248 249sy cluster cfmlQuotedValue 250 \ contains= 251 \cfmlDoubleQuotedValue, 252 \cfmlSingleQuotedValue 253 254sy cluster cfmlQuote 255 \ contains= 256 \cfmlDoubleQuote, 257 \cfmlSingleQuote 258" / PUNCTUATION - QUOTE }}} 259 260sy cluster cfmlPunctuation 261 \ contains= 262 \@cfmlQuote, 263 \@cfmlQuotedValue, 264 \cfmlBracket, 265 \cfmlComma, 266 \cfmlDot, 267 \cfmlSemiColon 268 269" / PUNCTUATION }}} 270 271" TAG START AND END {{{ 272" tag start 273" <cf...> 274" s^^ e 275sy region cfmlTagStart 276 \ keepend 277 \ transparent 278 \ start="\c<cf_*" 279 \ end=">" 280\ contains= 281 \@cfmlAttribute, 282 \@cfmlComment, 283 \@cfmlOperator, 284 \@cfmlParenthesisRegion, 285 \@cfmlPunctuation, 286 \@cfmlQuote, 287 \@cfmlQuotedValue, 288 \cfmlAttrEqualSign, 289 \cfmlBoolean, 290 \cfmlBrace, 291 \cfmlCoreKeyword, 292 \cfmlCoreScope, 293 \cfmlCustomKeyword, 294 \cfmlCustomScope, 295 \cfmlEqualSign, 296 \cfmlFunctionName, 297 \cfmlNumber, 298 \cfmlStorageKeyword, 299 \cfmlStorageType, 300 \cfmlTagBracket, 301 \cfmlTagName 302 303" tag end 304" </cf...> 305" s^^^ e 306sy match cfmlTagEnd 307 \ transparent 308 \ "\c</cf_*[^>]*>" 309 \ contains= 310 \cfmlTagBracket, 311 \cfmlTagName 312 313" tag bracket 314" </...> 315" ^^ ^ 316sy match cfmlTagBracket 317 \ contained 318 \ "\(<\|>\|\/\)" 319 320" tag name 321" <cf...> 322" s^^^e 323sy match cfmlTagName 324 \ contained 325 \ "\v<\/*\zs\ccf\w*" 326" / TAG START AND END }}} 327 328" ATTRIBUTE NAME AND VALUE {{{ 329sy match cfmlAttrName 330 \ contained 331 \ "\v(var\s)@<!\w+\ze\s*\=([^\=])+" 332 333sy match cfmlAttrValue 334 \ contained 335 \ "\v(\=\"*)\zs\s*\w*" 336 337sy match cfmlAttrEqualSign 338 \ contained 339 \ "\v\=" 340 341sy cluster cfmlAttribute 342\ contains= 343 \@cfmlQuotedValue, 344 \cfmlAttrEqualSign, 345 \cfmlAttrName, 346 \cfmlAttrValue, 347 \cfmlCoreKeyword, 348 \cfmlCoreScope 349" / ATTRIBUTE NAME AND VALUE }}} 350 351" TAG REGION AND FOLDING {{{ 352 353" CFCOMPONENT REGION AND FOLD {{{ 354" <cfcomponent 355" s^^^^^^^^^^^ 356" </cfcomponent> 357" ^^^^^^^^^^^^^e 358sy region cfmlComponentTagRegion 359 \ fold 360 \ keepend 361 \ transparent 362 \ start="\c<cfcomponent" 363 \ end="\c</cfcomponent>" 364 365" / CFCOMPONENT REGION AND FOLD }}} 366 367" CFFUNCTION REGION AND FOLD {{{ 368" <cffunction 369" s^^^^^^^^^^ 370" </cffunction> 371" ^^^^^^^^^^^^e 372sy region cfmlFunctionTagRegion 373 \ fold 374 \ keepend 375 \ transparent 376 \ start="\c<cffunction" 377 \ end="\c</cffunction>" 378" / CFFUNCTION REGION AND FOLD }}} 379 380" CFIF REGION AND FOLD {{{ 381" <cfif 382" s^^^^ 383" </cfif> 384" ^^^^^^e 385sy region cfmlIfTagRegion 386 \ fold 387 \ keepend 388 \ transparent 389 \ start="\c<cfif" 390 \ end="\c</cfif>" 391" / CFIF REGION AND FOLD }}} 392 393" CFLOOP REGION AND FOLD {{{ 394" <cfloop 395" s^^^^^^ 396" </cfloop> 397" ^^^^^^^^e 398sy region cfmlLoopTagRegion 399 \ fold 400 \ keepend 401 \ transparent 402 \ start="\c<cfloop" 403 \ end="\c</cfloop>" 404" / CFLOOP REGION AND FOLD }}} 405 406" CFOUTPUT REGION AND FOLD {{{ 407" <cfoutput 408" s^^^^^^^^ 409" </cfoutput> 410" ^^^^^^^^^^e 411sy region cfmlOutputTagRegion 412 \ fold 413 \ keepend 414 \ transparent 415 \ start="\c<cfoutput" 416 \ end="\c</cfoutput>" 417" / CFOUTPUT REGION AND FOLD }}} 418 419" CFQUERY REGION AND FOLD {{{ 420" <cfquery 421" s^^^^^^^ 422" </cfquery> 423" ^^^^^^^^^e 424 "\@cfmlSqlStatement, 425sy region cfmlQueryTagRegion 426 \ fold 427 \ keepend 428 \ transparent 429 \ start="\c<cfquery" 430 \ end="\c</cfquery>" 431 \ contains= 432 \@cfmlSqlStatement, 433 \cfmlTagStart, 434 \cfmlTagEnd, 435 \cfmlTagComment 436" / CFQUERY REGION AND FOLD }}} 437 438" SAVECONTENT REGION AND FOLD {{{ 439" <savecontent 440" s^^^^^^^^^^^ 441" </savecontent> 442" ^^^^^^^^^^^^^e 443sy region cfmlSavecontentTagRegion 444 \ fold 445 \ keepend 446 \ transparent 447 \ start="\c<cfsavecontent" 448 \ end="\c</cfsavecontent>" 449" / SAVECONTENT REGION AND FOLD }}} 450 451" CFSCRIPT REGION AND FOLD {{{ 452" <cfscript> 453" s^^^^^^^^^ 454" </cfscript> 455" ^^^^^^^^^^e 456"\cfmlCustomScope, 457sy region cfmlScriptTagRegion 458 \ fold 459 \ keepend 460 \ transparent 461 \ start="\c<cfscript>" 462 \ end="\c</cfscript>" 463 \ contains= 464 \@cfmlComment, 465 \@cfmlFlowStatement, 466 \cfmlHashSurround, 467 \@cfmlOperator, 468 \@cfmlParenthesisRegion, 469 \@cfmlPunctuation, 470 \cfmlBoolean, 471 \cfmlBrace, 472 \cfmlCoreKeyword, 473 \cfmlCoreScope, 474 \cfmlCustomKeyword, 475 \cfmlCustomScope, 476 \cfmlEqualSign, 477 \cfmlFunctionDefinition, 478 \cfmlFunctionName, 479 \cfmlNumber, 480 \cfmlOddFunction, 481 \cfmlStorageKeyword, 482 \cfmlTagEnd, 483 \cfmlTagStart 484" / CFSCRIPT REGION AND FOLD }}} 485 486" CFSWITCH REGION AND FOLD {{{ 487" <cfswitch 488" s^^^^^^^^ 489" </cfswitch> 490" ^^^^^^^^^^e 491sy region cfmlSwitchTagRegion 492 \ fold 493 \ keepend 494 \ transparent 495 \ start="\c<cfswitch" 496 \ end="\c</cfswitch>" 497" / CFSWITCH REGION AND FOLD }}} 498 499" CFTRANSACTION REGION AND FOLD {{{ 500" <cftransaction 501" s^^^^^^^^^^^^^ 502" </cftransaction> 503" ^^^^^^^^^^^^^^^e 504sy region cfmlTransactionTagRegion 505 \ fold 506 \ keepend 507 \ transparent 508 \ start="\c<cftransaction" 509 \ end="\c</cftransaction>" 510" / CFTRANSACTION REGION AND FOLD }}} 511 512" CUSTOM TAG REGION AND FOLD {{{ 513" <cf_...> 514" s^^^ ^ 515" </cf_...> 516" ^^^^^ e 517sy region cfmlCustomTagRegion 518 \ fold 519 \ keepend 520 \ transparent 521 \ start="\c<cf_[^>]*>" 522 \ end="\c</cf_[^>]*>" 523" / CUSTOM TAG REGION AND FOLD }}} 524 525" / TAG REGION AND FOLDING }}} 526 527" COMMENT {{{ 528 529" COMMENT BLOCK {{{ 530" /*...*/ 531" s^ ^e 532sy region cfmlCommentBlock 533 \ keepend 534 \ start="/\*" 535 \ end="\*/" 536 \ contains= 537 \cfmlMetaData 538" / COMMENT BLOCK }}} 539 540" COMMENT LINE {{{ 541" //... 542" s^ 543sy match cfmlCommentLine 544 \ "\/\/.*" 545" / COMMENT LINE }}} 546 547sy cluster cfmlComment 548 \ contains= 549 \cfmlCommentBlock, 550 \cfmlCommentLine 551" / COMMENT }}} 552 553" TAG COMMENT {{{ 554" <!---...---> 555" s^^^^ ^^^e 556sy region cfmlTagComment 557 \ keepend 558 \ start="<!---" 559 \ end="--->" 560 \ contains= 561 \cfmlTagComment 562" / TAG COMMENT }}} 563 564" FLOW STATEMENT {{{ 565" BRANCH FLOW KEYWORD {{{ 566sy keyword cfmlBranchFlowKeyword 567 \ break 568 \ continue 569 \ return 570 571" / BRANCH KEYWORD }}} 572 573" DECISION FLOW KEYWORD {{{ 574sy keyword cfmlDecisionFlowKeyword 575 \ case 576 \ defaultcase 577 \ else 578 \ if 579 \ switch 580 581" / DECISION FLOW KEYWORD }}} 582 583" LOOP FLOW KEYWORD {{{ 584sy keyword cfmlLoopFlowKeyword 585 \ do 586 \ for 587 \ in 588 \ while 589 590" / LOOP FLOW KEYWORD }}} 591 592" TRY FLOW KEYWORD {{{ 593sy keyword cfmlTryFlowKeyword 594 \ catch 595 \ finally 596 \ rethrow 597 \ throw 598 \ try 599 600" / TRY FLOW KEYWORD }}} 601 602sy cluster cfmlFlowStatement 603 \ contains= 604 \cfmlBranchFlowKeyword, 605 \cfmlDecisionFlowKeyword, 606 \cfmlLoopFlowKeyword, 607 \cfmlTryFlowKeyword 608 609" / FLOW STATEMENT }}} 610 611" STORAGE KEYWORD {{{ 612sy keyword cfmlStorageKeyword 613 \ var 614" / STORAGE KEYWORD }}} 615 616" STORAGE TYPE {{{ 617sy match cfmlStorageType 618 \ contained 619 \ "\v< 620 \(any 621 \|array 622 \|binary 623 \|boolean 624 \|date 625 \|numeric 626 \|query 627 \|string 628 \|struct 629 \|uuid 630 \|void 631 \|xml 632 \){1}\ze(\s*\=)@!" 633" / STORAGE TYPE }}} 634 635" CORE KEYWORD {{{ 636sy match cfmlCoreKeyword 637 \ "\v< 638 \(new 639 \|required 640 \)\ze\s" 641" / CORE KEYWORD }}} 642 643" CORE SCOPE {{{ 644sy match cfmlCoreScope 645 \ "\v< 646 \(application 647 \|arguments 648 \|attributes 649 \|caller 650 \|cfcatch 651 \|cffile 652 \|cfhttp 653 \|cgi 654 \|client 655 \|cookie 656 \|form 657 \|local 658 \|request 659 \|server 660 \|session 661 \|super 662 \|this 663 \|thisTag 664 \|thread 665 \|variables 666 \|url 667 \){1}\ze(,|\.|\[|\)|\s)" 668" / CORE SCOPE }}} 669 670" SQL STATEMENT {{{ 671sy cluster cfmlSqlStatement 672 \ contains= 673 \@cfmlParenthesisRegion, 674 \@cfmlQuote, 675 \@cfmlQuotedValue, 676 \@sqlSyntax, 677 \cfmlBoolean, 678 \cfmlDot, 679 \cfmlEqualSign, 680 \cfmlFunctionName, 681 \cfmlHashSurround, 682 \cfmlNumber 683" / SQL STATEMENT }}} 684 685" TAG IN SCRIPT {{{ 686sy match cfmlTagNameInScript 687 \ "\vcf_*\w+\s*\ze\(" 688" / TAG IN SCRIPT }}} 689 690" METADATA {{{ 691sy region cfmlMetaData 692 \ contained 693 \ keepend 694 \ start="@\w\+" 695 \ end="$" 696 \ contains= 697 \cfmlMetaDataName 698 699sy match cfmlMetaDataName 700 \ contained 701 \ "@\w\+" 702" / METADATA }}} 703 704" COMPONENT DEFINITION {{{ 705sy region cfmlComponentDefinition 706 \ start="component" 707 \ end="{"me=e-1 708 \ contains= 709 \@cfmlAttribute, 710 \cfmlComponentKeyword 711 712sy match cfmlComponentKeyword 713 \ contained 714 \ "\v<component>" 715" / COMPONENT DEFINITION }}} 716 717" INTERFACE DEFINITION {{{ 718sy match cfmlInterfaceDefinition 719 \ "interface\s.*{"me=e-1 720 \ contains= 721 \cfmlInterfaceKeyword 722 723sy match cfmlInterfaceKeyword 724 \ contained 725 \ "\v<interface>" 726" / INTERFACE DEFINITION }}} 727 728" PROPERTY {{{ 729sy region cfmlProperty 730 \ transparent 731 \ start="\v<property>" 732 \ end=";"me=e-1 733 \ contains= 734 \@cfmlQuotedValue, 735 \cfmlAttrEqualSign, 736 \cfmlAttrName, 737 \cfmlAttrValue, 738 \cfmlPropertyKeyword 739 740sy match cfmlPropertyKeyword 741 \ contained 742 \ "\v<property>" 743" / PROPERTY }}} 744 745" FUNCTION DEFINITION {{{ 746sy match cfmlFunctionDefinition 747 \ "\v 748 \(<(public|private|package)\s){,1} 749 \(< 750 \(any 751 \|array 752 \|binary 753 \|boolean 754 \|date 755 \|numeric 756 \|query 757 \|string 758 \|struct 759 \|uuid 760 \|void 761 \|xml 762 \)\s){,1} 763 \<function\s\w+\s*\("me=e-1 764 \ contains= 765 \cfmlFunctionKeyword, 766 \cfmlFunctionModifier, 767 \cfmlFunctionName, 768 \cfmlFunctionReturnType 769 770" FUNCTION KEYWORD {{{ 771sy match cfmlFunctionKeyword 772 \ contained 773 \ "\v<function>" 774" / FUNCTION KEYWORD }}} 775 776" FUNCTION MODIFIER {{{ 777sy match cfmlFunctionModifier 778 \ contained 779 \ "\v< 780 \(public 781 \|private 782 \|package 783 \)>" 784" / FUNCTION MODIFIER }}} 785 786" FUNCTION RETURN TYPE {{{ 787sy match cfmlFunctionReturnType 788 \ contained 789 \ "\v 790 \(any 791 \|array 792 \|binary 793 \|boolean 794 \|date 795 \|numeric 796 \|query 797 \|string 798 \|struct 799 \|uuid 800 \|void 801 \|xml 802 \)" 803" / FUNCTION RETURN TYPE }}} 804 805" FUNCTION NAME {{{ 806" specific regex for core functions decreases performance 807" so use the same highlighting for both function types 808sy match cfmlFunctionName 809 \ "\v<(cf|if|elseif|throw)@!\w+\s*\ze\(" 810" / FUNCTION NAME }}} 811 812" / FUNCTION DEFINITION }}} 813 814" ODD FUNCTION {{{ 815sy region cfmlOddFunction 816 \ transparent 817 \ start="\v< 818 \(abort 819 \|exit 820 \|import 821 \|include 822 \|lock 823 \|pageencoding 824 \|param 825 \|savecontent 826 \|thread 827 \|transaction 828 \){1}" 829 \ end="\v(\{|;)"me=e-1 830 \ contains= 831 \@cfmlQuotedValue, 832 \cfmlAttrEqualSign, 833 \cfmlAttrName, 834 \cfmlAttrValue, 835 \cfmlCoreKeyword, 836 \cfmlOddFunctionKeyword, 837 \cfmlCoreScope 838 839" ODD FUNCTION KEYWORD {{{ 840sy match cfmlOddFunctionKeyword 841 \ contained 842 \ "\v< 843 \(abort 844 \|exit 845 \|import 846 \|include 847 \|lock 848 \|pageencoding 849 \|param 850 \|savecontent 851 \|thread 852 \|transaction 853 \)\ze(\s|$|;)" 854" / ODD FUNCTION KEYWORD }}} 855 856" / ODD FUNCTION }}} 857 858" CUSTOM {{{ 859 860" CUSTOM KEYWORD {{{ 861sy match cfmlCustomKeyword 862 \ contained 863 \ "\v< 864 \(customKeyword1 865 \|customKeyword2 866 \|customKeyword3 867 \)>" 868" / CUSTOM KEYWORD }}} 869 870" CUSTOM SCOPE {{{ 871sy match cfmlCustomScope 872 \ contained 873 \ "\v< 874 \(prc 875 \|rc 876 \|event 877 \|(\w+Service) 878 \){1}\ze(\.|\[)" 879" / CUSTOM SCOPE }}} 880 881" / CUSTOM }}} 882 883" SGML TAG START AND END {{{ 884" SGML tag start 885" <...> 886" s^^^e 887sy region cfmlSGMLTagStart 888 \ keepend 889 \ transparent 890 \ start="\v(\<cf)@!\zs\<\w+" 891 \ end=">" 892 \ contains= 893 \@cfmlAttribute, 894 \@cfmlComment, 895 \@cfmlOperator, 896 \@cfmlParenthesisRegion, 897 \@cfmlPunctuation, 898 \@cfmlQuote, 899 \@cfmlQuotedValue, 900 \cfmlAttrEqualSign, 901 \cfmlBoolean, 902 \cfmlBrace, 903 \cfmlCoreKeyword, 904 \cfmlCoreScope, 905 \cfmlCustomKeyword, 906 \cfmlCustomScope, 907 \cfmlEqualSign, 908 \cfmlFunctionName, 909 \cfmlNumber, 910 \cfmlStorageKeyword, 911 \cfmlStorageType, 912 \cfmlTagBracket, 913 \cfmlSGMLTagName 914 915" SGML tag end 916" </...> 917" s^^^^e 918sy match cfmlSGMLTagEnd 919 \ transparent 920 \ "\v(\<\/cf)@!\zs\<\/\w+\>" 921 \ contains= 922 \cfmlTagBracket, 923 \cfmlSGMLTagName 924 925" SGML tag name 926" <...> 927" s^^^e 928sy match cfmlSGMLTagName 929 \ contained 930 \ "\v(\<\/*)\zs\w+" 931 932" / SGML TAG START AND END }}} 933 934" HIGHLIGHTING {{{ 935 936hi link cfmlNumber Number 937hi link cfmlBoolean Boolean 938hi link cfmlEqualSign Keyword 939" HASH SURROUND 940hi link cfmlHash PreProc 941hi link cfmlHashSurround PreProc 942" OPERATOR 943hi link cfmlArithmeticOperator Function 944hi link cfmlBooleanOperator Function 945hi link cfmlDecisionOperator Function 946hi link cfmlStringOperator Function 947hi link cfmlTernaryOperator Function 948" PARENTHESIS 949hi link cfmlParenthesis1 Statement 950hi link cfmlParenthesis2 String 951hi link cfmlParenthesis3 Delimiter 952" BRACE 953hi link cfmlBrace PreProc 954" PUNCTUATION - BRACKET 955hi link cfmlBracket Statement 956" PUNCTUATION - CHAR 957hi link cfmlComma Comment 958hi link cfmlDot Comment 959hi link cfmlSemiColon Comment 960" PUNCTUATION - QUOTE 961hi link cfmlDoubleQuote String 962hi link cfmlDoubleQuotedValue String 963hi link cfmlSingleQuote String 964hi link cfmlSingleQuotedValue String 965" TAG START AND END 966hi link cfmlTagName Function 967hi link cfmlTagBracket Comment 968" ATTRIBUTE NAME AND VALUE 969hi link cfmlAttrName Type 970hi link cfmlAttrValue Special 971" COMMENT 972hi link cfmlCommentBlock Comment 973hi link cfmlCommentLine Comment 974hi link cfmlTagComment Comment 975" FLOW STATEMENT 976hi link cfmlDecisionFlowKeyword Conditional 977hi link cfmlLoopFlowKeyword Repeat 978hi link cfmlTryFlowKeyword Exception 979hi link cfmlBranchFlowKeyword Keyword 980" STORAGE KEYWORD 981hi link cfmlStorageKeyword Keyword 982" STORAGE TYPE 983hi link cfmlStorageType Keyword 984" CORE KEYWORD 985hi link cfmlCoreKeyword PreProc 986" CORE SCOPE 987hi link cfmlCoreScope Keyword 988" TAG IN SCRIPT 989hi link cfmlTagNameInScript Function 990" METADATA 991" meta data value = cfmlMetaData 992hi link cfmlMetaData String 993hi link cfmlMetaDataName Type 994" COMPONENT DEFINITION 995hi link cfmlComponentKeyword Keyword 996" INTERFACE DEFINITION 997hi link cfmlInterfaceKeyword Keyword 998" PROPERTY 999hi link cfmlPropertyKeyword Keyword 1000" FUNCTION DEFINITION 1001hi link cfmlFunctionKeyword Keyword 1002hi link cfmlFunctionModifier Keyword 1003hi link cfmlFunctionReturnType Keyword 1004hi link cfmlFunctionName Function 1005" ODD FUNCTION 1006hi link cfmlOddFunctionKeyword Function 1007" CUSTOM 1008hi link cfmlCustomKeyword Keyword 1009hi link cfmlCustomScope Structure 1010" SGML TAG 1011hi link cfmlSGMLTagName Ignore 1012 1013" / HIGHLIGHTING }}} 1014 1015let b:current_syntax = "cfml" 1016 1017let &cpo = s:cpo_save 1018unlet s:cpo_save 1019