1" Vim syntax file 2" Language: CL 3" (pronounced alphabetically, and NOT known as Clever) 4" (CL was created by Multibase, http://www.mbase.com.au) 5" Filename extensions: *.ent 6" *.eni 7" Maintainer: Philip Uren <[email protected]> Remove SPAX spam block 8" Version: 5 9" Last Change: Aug 16 2012 10 11" For version 5.x: Clear all syntax items 12" For version 6.x: Quit when a syntax file was already loaded 13if version < 600 14 syntax clear 15elseif exists("b:current_syntax") 16 finish 17endif 18 19if version >= 600 20 setlocal iskeyword=@,48-57,_,- 21else 22 set iskeyword=@,48-57,_,- 23endif 24 25syn case ignore 26 27syn sync lines=300 28 29"If/else/elsif/endif and while/wend mismatch errors 30syn match clifError "\<wend\>" 31syn match clifError "\<elsif\>" 32syn match clifError "\<else\>" 33syn match clifError "\<endif\>" 34 35syn match clSpaceError "\s\+$" 36 37" If and while regions 38syn region clLoop transparent matchgroup=clWhile start="\<while\>" matchgroup=clWhile end="\<wend\>" contains=ALLBUT,clBreak,clProcedure 39syn region clIf transparent matchgroup=clConditional start="\<if\>" matchgroup=clConditional end="\<endif\>" contains=ALLBUT,clBreak,clProcedure 40 41" Make those TODO notes and debugging stand out! 42syn keyword clTodo contained TODO BUG DEBUG FIX 43syn match clNeedsWork contained "NEED[S]*\s\s*WORK" 44syn keyword clDebug contained debug 45 46syn match clComment "#.*$" contains=clTodo,clNeedsWork,@Spell 47syn region clProcedure oneline start="^\s*[{}]" end="$" 48syn match clInclude "^\s*include\s.*" 49 50" We don't put "debug" in the clSetOptions; 51" we contain it in clSet so we can make it stand out. 52syn keyword clSetOptions transparent aauto abort align convert E fill fnum goback hangup justify null_exit output rauto rawprint rawdisplay repeat skip tab trim 53syn match clSet "^\s*set\s.*" contains=clSetOptions,clDebug 54 55syn match clPreProc "^\s*#P.*" 56 57syn keyword clConditional else elsif 58syn keyword clWhile continue endloop 59" 'break' needs to be a region so we can sync on it above. 60syn region clBreak oneline start="^\s*break" end="$" 61 62syn match clOperator "[!;|)(:.><+*=-]" 63 64syn match clNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" 65 66syn region clString matchgroup=clQuote start=+"+ end=+"+ skip=+\\"+ contains=@Spell 67syn region clString matchgroup=clQuote start=+'+ end=+'+ skip=+\\'+ contains=@Spell 68 69syn keyword clReserved ERROR EXIT INTERRUPT LOCKED LREPLY MODE MCOL MLINE MREPLY NULL REPLY V1 V2 V3 V4 V5 V6 V7 V8 V9 ZERO BYPASS GOING_BACK AAUTO ABORT ABORT ALIGN BIGE CONVERT FNUM GOBACK HANGUP JUSTIFY NEXIT OUTPUT RAUTO RAWDISPLAY RAWPRINT REPEAT SKIP TAB TRIM LCOUNT PCOUNT PLINES SLINES SCOLS MATCH LMATCH 70 71syn keyword clFunction asc asize chr name random slen srandom day getarg getcgi getenv lcase scat sconv sdel skey smult srep substr sword trim ucase match 72 73syn keyword clStatement clear clear_eol clear_eos close copy create unique with where empty define define ldefine delay_form delete escape exit_block exit_do exit_process field fork format get getfile getnext getprev goto head join maintain message no_join on_eop on_key on_exit on_delete openin openout openapp pause popenin popenout popenio print put range read redisplay refresh restart_block screen select sleep text unlock write and not or do 74 75" Define the default highlighting. 76" For version 5.7 and earlier: only when not done already 77" For version 5.8 and later: only when an item doesn't have highlighting yet 78if version >= 508 || !exists("did_cl_syntax_inits") 79 if version < 508 80 let did_cl_syntax_inits = 1 81 command -nargs=+ HiLink hi link <args> 82 else 83 command -nargs=+ HiLink hi def link <args> 84 endif 85 86 HiLink clifError Error 87 HiLink clSpaceError Error 88 HiLink clWhile Repeat 89 HiLink clConditional Conditional 90 HiLink clDebug Debug 91 HiLink clNeedsWork Todo 92 HiLink clTodo Todo 93 HiLink clComment Comment 94 HiLink clProcedure Procedure 95 HiLink clBreak Procedure 96 HiLink clInclude Include 97 HiLink clSetOption Statement 98 HiLink clSet Identifier 99 HiLink clPreProc PreProc 100 HiLink clOperator Operator 101 HiLink clNumber Number 102 HiLink clString String 103 HiLink clQuote Delimiter 104 HiLink clReserved Identifier 105 HiLink clFunction Function 106 HiLink clStatement Statement 107 108 delcommand HiLink 109endif 110 111let b:current_syntax = "cl" 112 113" vim: ts=8 sw=8 114