xref: /vim-8.2.3635/runtime/syntax/mush.vim (revision f37506f6)
1071d4279SBram Moolenaar" MUSHcode syntax file
2a5792f58SBram Moolenaar" Maintainer: Rick Bird <[email protected]>
3a5792f58SBram Moolenaar" Based on vim Syntax file by: Bek Oberin <[email protected]>
4a5792f58SBram Moolenaar" Last Updated: Fri Nov 04 20:28:15 2005
5a5792f58SBram Moolenaar"
689bcfda6SBram Moolenaar" quit when a syntax file was already loaded
789bcfda6SBram Moolenaarif exists("b:current_syntax")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaar
11071d4279SBram Moolenaar
12071d4279SBram Moolenaar" regular mush functions
13071d4279SBram Moolenaar
14a5792f58SBram Moolenaarsyntax keyword mushFunction contained @@ abs accent accname acos add after align
15a5792f58SBram Moolenaarsyntax keyword mushFunction contained allof alphamax alphamin and andflags
16a5792f58SBram Moolenaarsyntax keyword mushFunction contained andlflags andlpowers andpowers ansi aposs art
17a5792f58SBram Moolenaarsyntax keyword mushFunction contained asin atan atan2 atrlock attrcnt band baseconv
18a5792f58SBram Moolenaarsyntax keyword mushFunction contained beep before blank2tilde bnand bnot bor bound
19a5792f58SBram Moolenaarsyntax keyword mushFunction contained brackets break bxor cand cansee capstr case
20a5792f58SBram Moolenaarsyntax keyword mushFunction contained caseall cat ceil center checkpass children
21a5792f58SBram Moolenaarsyntax keyword mushFunction contained chr clone cmds cnetpost comp con config conn
22a5792f58SBram Moolenaarsyntax keyword mushFunction contained controls convsecs convtime convutcsecs cor
23a5792f58SBram Moolenaarsyntax keyword mushFunction contained cos create ctime ctu dec decrypt default
24a5792f58SBram Moolenaarsyntax keyword mushFunction contained delete die dig digest dist2d dist3d div
25a5792f58SBram Moolenaarsyntax keyword mushFunction contained division divscope doing downdiv dynhelp e
26a5792f58SBram Moolenaarsyntax keyword mushFunction contained edefault edit element elements elist elock
27a5792f58SBram Moolenaarsyntax keyword mushFunction contained emit empire empower encrypt endtag entrances
28a5792f58SBram Moolenaarsyntax keyword mushFunction contained eq escape etimefmt eval exit exp extract fdiv
29a5792f58SBram Moolenaarsyntax keyword mushFunction contained filter filterbool findable first firstof
30a5792f58SBram Moolenaarsyntax keyword mushFunction contained flags flip floor floordiv fmod fold
31a5792f58SBram Moolenaarsyntax keyword mushFunction contained folderstats followers following foreach
32a5792f58SBram Moolenaarsyntax keyword mushFunction contained fraction fullname functions get get_eval grab
33a5792f58SBram Moolenaarsyntax keyword mushFunction contained graball grep grepi gt gte hasattr hasattrp
34a5792f58SBram Moolenaarsyntax keyword mushFunction contained hasattrpval hasattrval hasdivpower hasflag
35a5792f58SBram Moolenaarsyntax keyword mushFunction contained haspower haspowergroup hastype height hidden
36a5792f58SBram Moolenaarsyntax keyword mushFunction contained home host hostname html idle idlesecs
37a5792f58SBram Moolenaarsyntax keyword mushFunction contained idle_average idle_times idle_total if ifelse
38a5792f58SBram Moolenaarsyntax keyword mushFunction contained ilev iname inc index indiv indivall insert
39a5792f58SBram Moolenaarsyntax keyword mushFunction contained inum ipaddr isdaylight isdbref isint isnum
40a5792f58SBram Moolenaarsyntax keyword mushFunction contained isword itemize items iter itext last lattr
41a5792f58SBram Moolenaarsyntax keyword mushFunction contained lcon lcstr ldelete ldivisions left lemit
42a5792f58SBram Moolenaarsyntax keyword mushFunction contained level lexits lflags link list lit ljust lmath
43a5792f58SBram Moolenaarsyntax keyword mushFunction contained ln lnum loc localize locate lock loctree log
44a5792f58SBram Moolenaarsyntax keyword mushFunction contained lparent lplayers lports lpos lsearch lsearchr
45a5792f58SBram Moolenaarsyntax keyword mushFunction contained lstats lt lte lthings lvcon lvexits lvplayers
46a5792f58SBram Moolenaarsyntax keyword mushFunction contained lvthings lwho mail maildstats mailfrom
47a5792f58SBram Moolenaarsyntax keyword mushFunction contained mailfstats mailstats mailstatus mailsubject
48a5792f58SBram Moolenaarsyntax keyword mushFunction contained mailtime map match matchall max mean median
49a5792f58SBram Moolenaarsyntax keyword mushFunction contained member merge mid min mix mod modulo modulus
50a5792f58SBram Moolenaarsyntax keyword mushFunction contained money mtime mudname mul munge mwho name nand
51a5792f58SBram Moolenaarsyntax keyword mushFunction contained nattr ncon nearby neq nexits next nor not
52a5792f58SBram Moolenaarsyntax keyword mushFunction contained nplayers nsemit nslemit nsoemit nspemit
53a5792f58SBram Moolenaarsyntax keyword mushFunction contained nsremit nszemit nthings null num nvcon
54a5792f58SBram Moolenaarsyntax keyword mushFunction contained nvexits nvplayers nvthings obj objeval objid
55a5792f58SBram Moolenaarsyntax keyword mushFunction contained objmem oemit ooref open or ord orflags
56a5792f58SBram Moolenaarsyntax keyword mushFunction contained orlflags orlpowers orpowers owner parent
57a5792f58SBram Moolenaarsyntax keyword mushFunction contained parse pcreate pemit pi pickrand playermem
58a5792f58SBram Moolenaarsyntax keyword mushFunction contained pmatch poll ports pos poss power powergroups
59a5792f58SBram Moolenaarsyntax keyword mushFunction contained powers powover program prompt pueblo quitprog
60a5792f58SBram Moolenaarsyntax keyword mushFunction contained quota r rand randword recv regedit regeditall
61a5792f58SBram Moolenaarsyntax keyword mushFunction contained regeditalli regediti regmatch regmatchi
62a5792f58SBram Moolenaarsyntax keyword mushFunction contained regrab regraball regraballi regrabi regrep
63a5792f58SBram Moolenaarsyntax keyword mushFunction contained regrepi remainder remit remove repeat replace
64a5792f58SBram Moolenaarsyntax keyword mushFunction contained rest restarts restarttime reswitch
65a5792f58SBram Moolenaarsyntax keyword mushFunction contained reswitchall reswitchalli reswitchi reverse
66a5792f58SBram Moolenaarsyntax keyword mushFunction contained revwords right rjust rloc rnum room root
67a5792f58SBram Moolenaarsyntax keyword mushFunction contained round s scan scramble search secs secure sent
68a5792f58SBram Moolenaarsyntax keyword mushFunction contained set setdiff setinter setq setr setunion sha0
69a5792f58SBram Moolenaarsyntax keyword mushFunction contained shl shr shuffle sign signal sin sort sortby
70a5792f58SBram Moolenaarsyntax keyword mushFunction contained soundex soundlike soundslike space spellnum
71a5792f58SBram Moolenaarsyntax keyword mushFunction contained splice sql sqlescape sqrt squish ssl
72a5792f58SBram Moolenaarsyntax keyword mushFunction contained starttime stats stddev step strcat strinsert
73a5792f58SBram Moolenaarsyntax keyword mushFunction contained stripaccents stripansi strlen strmatch
74a5792f58SBram Moolenaarsyntax keyword mushFunction contained strreplace sub subj switch switchall t table
75a5792f58SBram Moolenaarsyntax keyword mushFunction contained tag tagwrap tan tel terminfo textfile
76a5792f58SBram Moolenaarsyntax keyword mushFunction contained tilde2blank time timefmt timestring tr
77a5792f58SBram Moolenaarsyntax keyword mushFunction contained trigger trim trimpenn trimtiny trunc type u
78a5792f58SBram Moolenaarsyntax keyword mushFunction contained ucstr udefault ufun uldefault ulocal updiv
79a5792f58SBram Moolenaarsyntax keyword mushFunction contained utctime v vadd val valid vcross vdim vdot
80a5792f58SBram Moolenaarsyntax keyword mushFunction contained version visible vmag vmax vmin vmul vsub
81a5792f58SBram Moolenaarsyntax keyword mushFunction contained vtattr vtcount vtcreate vtdestroy vtlcon
82a5792f58SBram Moolenaarsyntax keyword mushFunction contained vtloc vtlocate vtmaster vtname vtref vttel
83a5792f58SBram Moolenaarsyntax keyword mushFunction contained vunit wait where width wipe wordpos words
84a5792f58SBram Moolenaarsyntax keyword mushFunction contained wrap xcon xexits xget xor xplayers xthings
85a5792f58SBram Moolenaarsyntax keyword mushFunction contained xvcon xvexits xvplayers xvthings zemit zfun
86a5792f58SBram Moolenaarsyntax keyword mushFunction contained zmwho zone zwho
87a5792f58SBram Moolenaar
88a5792f58SBram Moolenaar" only highligh functions when they have an in-bracket immediately after
89a5792f58SBram Moolenaarsyntax match mushFunctionBrackets  "\i*(" contains=mushFunction
90a5792f58SBram Moolenaar"
91071d4279SBram Moolenaar" regular mush commands
92a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @ALLHALT @ALLQUOTA @ASSERT @ATRCHOWN @ATRLOCK @ATTRIBUTE @BOOT
93a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @BREAK @CEMIT @CHANNEL @CHAT @CHOWN @CHOWNALL @CHZONE @CHZONEALL
94a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @CLOCK @CLONE @COBJ @COMMAND @CONFIG @CPATTR @CREATE @CRPLOG @DBCK
95a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @DECOMPILE @DESTROY @DIG @DISABLE @DIVISION @DOING @DOLIST @DRAIN
96a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @DUMP @EDIT @ELOCK @EMIT @EMPOWER @ENABLE @ENTRANCES @EUNLOCK @FIND
97a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @FIRSTEXIT @FLAG @FORCE @FUNCTION @EDIT @GREP @HALT @HIDE @HOOK @KICK
98a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @LEMIT @LEVEL @LINK @LIST @LISTMOTD @LOCK @LOG @LOGWIPE @LSET @MAIL @MALIAS
99a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @MAP @MOTD @MVATTR @NAME @NEWPASSWORD @NOTIFY @NSCEMIT @NSEMIT @NSLEMIT
100a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @NSOEMIT @NSPEMIT @NSPEMIT @NSREMIT @NSZEMIT @NUKE @OEMIT @OPEN @PARENT @PASSWORD
101a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @PCREATE @PEMIT @POLL @POOR @POWERLEVEL @PROGRAM @PROMPT @PS @PURGE @QUOTA
102a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @READCACHE @RECYCLE @REJECTMOTD @REMIT @RESTART @SCAN @SEARCH @SELECT @SET
103a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @SHUTDOWN @SITELOCK @SNOOP @SQL @SQUOTA @STATS @SWITCH @SWEEP @SWITCH @TELEPORT
104a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @TRIGGER @ULOCK @UNDESTROY @UNLINK @UNLOCK @UNRECYCLE @UPTIME @UUNLOCK @VERB
105a5792f58SBram Moolenaarsyntax keyword mushAtCommandList contained @VERSION @WAIT @WALL @WARNINGS @WCHECK @WHEREIS @WIPE @ZCLONE @ZEMIT
106071d4279SBram Moolenaarsyntax match mushCommand  "@\i\I*" contains=mushAtCommandList
107071d4279SBram Moolenaar
108071d4279SBram Moolenaar
109a5792f58SBram Moolenaarsyntax keyword mushCommand AHELP ANEWS ATTRIB_SET BRIEF BRIEF BUY CHANGES DESERT
110a5792f58SBram Moolenaarsyntax keyword mushCommand DISMISS DROP EMPTY ENTER EXAMINE FOLLOW GET GIVE GOTO
111a5792f58SBram Moolenaarsyntax keyword mushCommand HELP HUH_COMMAND INVENTORY INVENTORY LOOK LEAVE LOOK
112a5792f58SBram Moolenaarsyntax keyword mushCommand GOTO NEWS PAGE PAGE POSE RULES SAY SCORE SEMIPOSE
113a5792f58SBram Moolenaarsyntax keyword mushCommand SPECIALNEWS TAKE TEACH THINK UNFOLLOW USE WHISPER WHISPER
114a5792f58SBram Moolenaarsyntax keyword mushCommand WARN_ON_MISSING WHISPER WITH
115071d4279SBram Moolenaar
116071d4279SBram Moolenaarsyntax match mushSpecial     "\*\|!\|=\|-\|\\\|+"
117071d4279SBram Moolenaarsyntax match mushSpecial2 contained     "\*"
118071d4279SBram Moolenaar
119a5792f58SBram Moolenaarsyn region    mushString         start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=mushSpecial,mushSpecial2,@Spell
120a5792f58SBram Moolenaar
121a5792f58SBram Moolenaar
122071d4279SBram Moolenaarsyntax match mushIdentifier   "&[^ ]\+"
123071d4279SBram Moolenaar
124071d4279SBram Moolenaarsyntax match mushVariable   "%r\|%t\|%cr\|%[A-Za-z0-9]\+\|%#\|##\|here"
125071d4279SBram Moolenaar
126071d4279SBram Moolenaar" numbers
127071d4279SBram Moolenaarsyntax match mushNumber	+[0-9]\++
128071d4279SBram Moolenaar
129071d4279SBram Moolenaar" A comment line starts with a or # or " at the start of the line
130071d4279SBram Moolenaar" or an @@
131071d4279SBram Moolenaarsyntax keyword mushTodo contained	TODO FIXME XXX
132a5792f58SBram Moolenaarsyntax cluster mushCommentGroup contains=mushTodo
133a5792f58SBram Moolenaarsyntax match	mushComment	"^\s*@@.*$"	contains=mushTodo
134a5792f58SBram Moolenaarsyntax match mushComment "^#[^define|^ifdef|^else|^pragma|^ifndef|^echo|^elif|^undef|^warning].*$" contains=mushTodo
135a5792f58SBram Moolenaarsyntax match mushComment "^#$" contains=mushTodo
136a5792f58SBram Moolenaarsyntax region mushComment        matchgroup=mushCommentStart start="/@@" end="@@/" contains=@mushCommentGroup,mushCommentStartError,mushCommentString,@Spell
137a5792f58SBram Moolenaarsyntax region mushCommentString  contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+@@/+me=s-1 contains=mushCommentSkip
138a5792f58SBram Moolenaarsyntax match  mushCommentSkip    contained "^\s*@@\($\|\s\+\)"
139a5792f58SBram Moolenaar
140a5792f58SBram Moolenaar
141a5792f58SBram Moolenaarsyntax match mushCommentStartError display "/@@"me=e-1 contained
142a5792f58SBram Moolenaar
143a5792f58SBram Moolenaar" syntax match	mushComment	+^".*$+	contains=mushTodo
144a5792f58SBram Moolenaar" Work on this one
145a5792f58SBram Moolenaar" syntax match	mushComment	+^#.*$+	contains=mushTodo
146a5792f58SBram Moolenaar
147a5792f58SBram Moolenaarsyn region      mushPreCondit      start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=mushComment
148a5792f58SBram Moolenaarsyn match       mushPreCondit      display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
149a5792f58SBram Moolenaar
150a5792f58SBram Moolenaarsyn cluster     mushPreProcGroup   contains=mushPreCondit,mushIncluded,mushInclude,mushDefine,mushSpecial,mushString,mushCommentSkip,mushCommentString,@mushCommentGroup,mushCommentStartError
151a5792f58SBram Moolenaar
152a5792f58SBram Moolenaarsyn region      mushIncluded       display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
153a5792f58SBram Moolenaarsyn match       mushIncluded       display contained "<[^>]*>"
154a5792f58SBram Moolenaarsyn match       mushInclude        display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=mushIncluded
155a5792f58SBram Moolenaarsyn region	mushDefine		start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@mushPreProcGroup,@Spell
156a5792f58SBram Moolenaarsyn region	mushPreProc	start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@mushPreProcGroup
157a5792f58SBram Moolenaar
158071d4279SBram Moolenaar
159071d4279SBram Moolenaarsyntax region	mushFuncBoundaries start="\[" end="\]" contains=mushFunction,mushFlag,mushAttributes,mushNumber,mushCommand,mushVariable,mushSpecial2
160071d4279SBram Moolenaar
161071d4279SBram Moolenaar" FLAGS
162071d4279SBram Moolenaarsyntax keyword mushFlag PLAYER ABODE BUILDER CHOWN_OK DARK FLOATING
163071d4279SBram Moolenaarsyntax keyword mushFlag GOING HAVEN INHERIT JUMP_OK KEY LINK_OK MONITOR
164071d4279SBram Moolenaarsyntax keyword mushFlag NOSPOOF OPAQUE QUIET STICKY TRACE UNFINDABLE VISUAL
165071d4279SBram Moolenaarsyntax keyword mushFlag WIZARD PARENT_OK ZONE AUDIBLE CONNECTED DESTROY_OK
166071d4279SBram Moolenaarsyntax keyword mushFlag ENTER_OK HALTED IMMORTAL LIGHT MYOPIC PUPPET TERSE
167071d4279SBram Moolenaarsyntax keyword mushFlag ROBOT SAFE TRANSPARENT VERBOSE CONTROL_OK COMMANDS
168071d4279SBram Moolenaar
169071d4279SBram Moolenaarsyntax keyword mushAttribute aahear aclone aconnect adesc adfail adisconnect
170071d4279SBram Moolenaarsyntax keyword mushAttribute adrop aefail aenter afail agfail ahear akill
171071d4279SBram Moolenaarsyntax keyword mushAttribute aleave alfail alias amhear amove apay arfail
172071d4279SBram Moolenaarsyntax keyword mushAttribute asucc atfail atport aufail ause away charges
173071d4279SBram Moolenaarsyntax keyword mushAttribute cost desc dfail drop ealias efail enter fail
174071d4279SBram Moolenaarsyntax keyword mushAttribute filter forwardlist gfail idesc idle infilter
175071d4279SBram Moolenaarsyntax keyword mushAttribute inprefix kill lalias last lastsite leave lfail
176071d4279SBram Moolenaarsyntax keyword mushAttribute listen move odesc odfail odrop oefail oenter
177071d4279SBram Moolenaarsyntax keyword mushAttribute ofail ogfail okill oleave olfail omove opay
178071d4279SBram Moolenaarsyntax keyword mushAttribute orfail osucc otfail otport oufail ouse oxenter
179071d4279SBram Moolenaarsyntax keyword mushAttribute oxleave oxtport pay prefix reject rfail runout
180071d4279SBram Moolenaarsyntax keyword mushAttribute semaphore sex startup succ tfail tport ufail
181071d4279SBram Moolenaarsyntax keyword mushAttribute use va vb vc vd ve vf vg vh vi vj vk vl vm vn
182071d4279SBram Moolenaarsyntax keyword mushAttribute vo vp vq vr vs vt vu vv vw vx vy vz
183071d4279SBram Moolenaar
184071d4279SBram Moolenaar
185071d4279SBram Moolenaar
186071d4279SBram Moolenaar" The default methods for highlighting.  Can be overridden later
187*f37506f6SBram Moolenaarhi def link mushAttribute  Constant
188*f37506f6SBram Moolenaarhi def link mushCommand    Function
189*f37506f6SBram Moolenaarhi def link mushNumber     Number
190*f37506f6SBram Moolenaarhi def link mushSetting    PreProc
191*f37506f6SBram Moolenaarhi def link mushFunction   Statement
192*f37506f6SBram Moolenaarhi def link mushVariable   Identifier
193*f37506f6SBram Moolenaarhi def link mushSpecial    Special
194*f37506f6SBram Moolenaarhi def link mushTodo       Todo
195*f37506f6SBram Moolenaarhi def link mushFlag       Special
196*f37506f6SBram Moolenaarhi def link mushIdentifier Identifier
197*f37506f6SBram Moolenaarhi def link mushDefine     Macro
198*f37506f6SBram Moolenaarhi def link mushPreProc    PreProc
199*f37506f6SBram Moolenaarhi def link mushPreProcGroup PreProc
200*f37506f6SBram Moolenaarhi def link mushPreCondit PreCondit
201*f37506f6SBram Moolenaarhi def link mushIncluded cString
202*f37506f6SBram Moolenaarhi def link mushInclude Include
203a5792f58SBram Moolenaar
204a5792f58SBram Moolenaar
205a5792f58SBram Moolenaar
206a5792f58SBram Moolenaar" Comments
207*f37506f6SBram Moolenaarhi def link mushCommentStart mushComment
208*f37506f6SBram Moolenaarhi def link mushComment    Comment
209*f37506f6SBram Moolenaarhi def link mushCommentString mushString
210a5792f58SBram Moolenaar
211071d4279SBram Moolenaar
212071d4279SBram Moolenaar
213071d4279SBram Moolenaarlet b:current_syntax = "mush"
214071d4279SBram Moolenaar
215071d4279SBram Moolenaar" mush: ts=17
216