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