blob: 057d005cae6d746d228eda2ceb892315adcd72d5 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar34700a62013-03-07 13:20:54 +01002" Language: CL
3" (pronounced alphabetically: "Cee-El".
4" CL stands for Clever Language,
5" but the language is CL, not "Clever".
6" CL was created by Multibase, http://www.mbase.com.au)
Bram Moolenaar1aeaf8c2012-05-18 13:46:39 +02007" Filename extensions: *.ent
Bram Moolenaar34700a62013-03-07 13:20:54 +01008" *.eni
Bram Moolenaar1aeaf8c2012-05-18 13:46:39 +02009" Maintainer: Philip Uren <philuSPAX@ieee.org> Remove SPAX spam block
Bram Moolenaar34700a62013-03-07 13:20:54 +010010" Version: 6
11" Last Change: Mar 06 2013
Bram Moolenaar071d4272004-06-13 20:20:40 +000012
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020013" quit when a syntax file was already loaded
14if exists("b:current_syntax")
Bram Moolenaard09acef2012-09-21 14:54:30 +020015 finish
Bram Moolenaar071d4272004-06-13 20:20:40 +000016endif
17
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020018setlocal iskeyword=@,48-57,_,-
Bram Moolenaar071d4272004-06-13 20:20:40 +000019
20syn case ignore
21
22syn sync lines=300
23
24"If/else/elsif/endif and while/wend mismatch errors
Bram Moolenaard09acef2012-09-21 14:54:30 +020025syn match clifError "\<wend\>"
26syn match clifError "\<elsif\>"
27syn match clifError "\<else\>"
28syn match clifError "\<endif\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000029
Bram Moolenaard09acef2012-09-21 14:54:30 +020030syn match clSpaceError "\s\+$"
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000031
Bram Moolenaar071d4272004-06-13 20:20:40 +000032" If and while regions
Bram Moolenaard09acef2012-09-21 14:54:30 +020033syn region clLoop transparent matchgroup=clWhile start="\<while\>" matchgroup=clWhile end="\<wend\>" contains=ALLBUT,clBreak,clProcedure
34syn region clIf transparent matchgroup=clConditional start="\<if\>" matchgroup=clConditional end="\<endif\>" contains=ALLBUT,clBreak,clProcedure
Bram Moolenaar071d4272004-06-13 20:20:40 +000035
36" Make those TODO notes and debugging stand out!
Bram Moolenaard09acef2012-09-21 14:54:30 +020037syn keyword clTodo contained TODO BUG DEBUG FIX
38syn match clNeedsWork contained "NEED[S]*\s\s*WORK"
39syn keyword clDebug contained debug
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
Bram Moolenaard09acef2012-09-21 14:54:30 +020041syn match clComment "#.*$" contains=clTodo,clNeedsWork,@Spell
42syn region clProcedure oneline start="^\s*[{}]" end="$"
43syn match clInclude "^\s*include\s.*"
Bram Moolenaar071d4272004-06-13 20:20:40 +000044
45" We don't put "debug" in the clSetOptions;
46" we contain it in clSet so we can make it stand out.
Bram Moolenaard09acef2012-09-21 14:54:30 +020047syn keyword clSetOptions transparent aauto abort align convert E fill fnum goback hangup justify null_exit output rauto rawprint rawdisplay repeat skip tab trim
48syn match clSet "^\s*set\s.*" contains=clSetOptions,clDebug
Bram Moolenaar071d4272004-06-13 20:20:40 +000049
Bram Moolenaard09acef2012-09-21 14:54:30 +020050syn match clPreProc "^\s*#P.*"
Bram Moolenaar071d4272004-06-13 20:20:40 +000051
Bram Moolenaard09acef2012-09-21 14:54:30 +020052syn keyword clConditional else elsif
53syn keyword clWhile continue endloop
Bram Moolenaar071d4272004-06-13 20:20:40 +000054" 'break' needs to be a region so we can sync on it above.
Bram Moolenaard09acef2012-09-21 14:54:30 +020055syn region clBreak oneline start="^\s*break" end="$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000056
Bram Moolenaard09acef2012-09-21 14:54:30 +020057syn match clOperator "[!;|)(:.><+*=-]"
Bram Moolenaar071d4272004-06-13 20:20:40 +000058
Bram Moolenaard09acef2012-09-21 14:54:30 +020059syn match clNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000060
Bram Moolenaard09acef2012-09-21 14:54:30 +020061syn region clString matchgroup=clQuote start=+"+ end=+"+ skip=+\\"+ contains=@Spell
62syn region clString matchgroup=clQuote start=+'+ end=+'+ skip=+\\'+ contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000063
Bram Moolenaard09acef2012-09-21 14:54:30 +020064syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
Bram Moolenaard09acef2012-09-21 14:54:30 +020066syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000067
Bram Moolenaard09acef2012-09-21 14:54:30 +020068syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000069
70" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020071" Only when an item doesn't have highlighting yet
72command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000073
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020074HiLink clifError Error
75HiLink clSpaceError Error
76HiLink clWhile Repeat
77HiLink clConditional Conditional
78HiLink clDebug Debug
79HiLink clNeedsWork Todo
80HiLink clTodo Todo
81HiLink clComment Comment
82HiLink clProcedure Procedure
83HiLink clBreak Procedure
84HiLink clInclude Include
85HiLink clSetOption Statement
86HiLink clSet Identifier
87HiLink clPreProc PreProc
88HiLink clOperator Operator
89HiLink clNumber Number
90HiLink clString String
91HiLink clQuote Delimiter
92HiLink clReserved Identifier
93HiLink clFunction Function
94HiLink clStatement Statement
Bram Moolenaar071d4272004-06-13 20:20:40 +000095
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020096delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000097
98let b:current_syntax = "cl"
99
Bram Moolenaard09acef2012-09-21 14:54:30 +0200100" vim: ts=8 sw=8