Merged from the latest developing branch.
[MacVim.git] / runtime / syntax / quake.vim
blob3a9b68d6f38a8d8da57e2bd3f4ca8696723730cd
1 " Vim syntax file
2 " Language:         Quake[1-3] configuration file
3 " Maintainer:       Nikolai Weibull <now@bitwi.se>
4 " Latest Revision:  2007-06-17
5 "               quake_is_quake1 - the syntax is to be used for quake1 configs
6 "               quake_is_quake2 - the syntax is to be used for quake2 configs
7 "               quake_is_quake3 - the syntax is to be used for quake3 configs
8 " Credits:          Tomasz Kalkosinski wrote the original quake3Colors stuff
10 if exists("b:current_syntax")
11   finish
12 endif
14 let s:cpo_save = &cpo
15 set cpo&vim
17 setlocal iskeyword+=-,+
19 syn keyword quakeTodo         contained TODO FIXME XXX NOTE
21 syn region  quakeComment      display oneline start='//' end='$' end=';'
22                               \ keepend contains=quakeTodo,@Spell
24 syn region  quakeString       display oneline start=+"+ skip=+\\\\\|\\"+
25                               \ end=+"\|$+ contains=quakeNumbers,
26                               \ @quakeCommands,@quake3Colors
28 syn case ignore
30 syn match quakeNumbers        display transparent '\<-\=\d\|\.\d'
31                               \ contains=quakeNumber,quakeFloat,
32                               \ quakeOctalError,quakeOctal
33 syn match quakeNumber         contained display '\d\+\>'
34 syn match quakeFloat          contained display '\d\+\.\d*'
35 syn match quakeFloat          contained display '\.\d\+\>'
37 if exists("quake_is_quake1") || exists("quake_is_quake2")
38   syn match quakeOctal        contained display '0\o\+\>'
39                               \ contains=quakeOctalZero
40   syn match quakeOctalZero    contained display '\<0'
41   syn match quakeOctalError   contained display '0\o*[89]\d*'
42 endif
44 syn cluster quakeCommands     contains=quakeCommand,quake1Command,
45                               \ quake12Command,Quake2Command,Quake23Command,
46                               \ Quake3Command
48 syn keyword quakeCommand      +attack +back +forward +left +lookdown +lookup
49 syn keyword quakeCommand      +mlook +movedown +moveleft +moveright +moveup
50 syn keyword quakeCommand      +right +speed +strafe -attack -back bind
51 syn keyword quakeCommand      bindlist centerview clear connect cvarlist dir
52 syn keyword quakeCommand      disconnect dumpuser echo error exec -forward
53 syn keyword quakeCommand      god heartbeat joy_advancedupdate kick kill
54 syn keyword quakeCommand      killserver -left -lookdown -lookup map
55 syn keyword quakeCommand      messagemode messagemode2 -mlook modellist
56 syn keyword quakeCommand      -movedown -moveleft -moveright -moveup play
57 syn keyword quakeCommand      quit rcon reconnect record -right say say_team
58 syn keyword quakeCommand      screenshot serverinfo serverrecord serverstop
59 syn keyword quakeCommand      set sizedown sizeup snd_restart soundinfo
60 syn keyword quakeCommand      soundlist -speed spmap status -strafe stopsound
61 syn keyword quakeCommand      toggleconsole unbind unbindall userinfo pause
62 syn keyword quakeCommand      vid_restart viewpos wait weapnext weapprev
64 if exists("quake_is_quake1")
65   syn keyword quake1Command   sv
66 endif
68 if exists("quake_is_quake1") || exists("quake_is_quake2")
69   syn keyword quake12Command  +klook alias cd impulse link load save
70   syn keyword quake12Command  timerefresh changing info loading
71   syn keyword quake12Command  pingservers playerlist players score
72 endif
74 if exists("quake_is_quake2")
75   syn keyword quake2Command   cmd demomap +use condump download drop gamemap
76   syn keyword quake2Command   give gun_model setmaster sky sv_maplist wave
77   syn keyword quake2Command   cmdlist gameversiona gun_next gun_prev invdrop
78   syn keyword quake2Command   inven invnext invnextp invnextw invprev
79   syn keyword quake2Command   invprevp invprevw invuse menu_addressbook
80   syn keyword quake2Command   menu_credits menu_dmoptions menu_game
81   syn keyword quake2Command   menu_joinserver menu_keys menu_loadgame
82   syn keyword quake2Command   menu_main menu_multiplayer menu_options
83   syn keyword quake2Command   menu_playerconfig menu_quit menu_savegame
84   syn keyword quake2Command   menu_startserver menu_video
85   syn keyword quake2Command   notarget precache prog togglechat vid_front
86   syn keyword quake2Command   weaplast
87 endif
89 if exists("quake_is_quake2") || exists("quake_is_quake3")
90   syn keyword quake23Command  imagelist modellist path z_stats
91 endif
93 if exists("quake_is_quake3")
94   syn keyword quake3Command   +info +scores +zoom addbot arena banClient
95   syn keyword quake3Command   banUser callteamvote callvote changeVectors
96   syn keyword quake3Command   cinematic clientinfo clientkick cmd cmdlist
97   syn keyword quake3Command   condump configstrings crash cvar_restart devmap
98   syn keyword quake3Command   fdir follow freeze fs_openedList Fs_pureList
99   syn keyword quake3Command   Fs_referencedList gfxinfo globalservers
100   syn keyword quake3Command   hunk_stats in_restart -info levelshot
101   syn keyword quake3Command   loaddeferred localservers map_restart mem_info
102   syn keyword quake3Command   messagemode3 messagemode4 midiinfo model music
103   syn keyword quake3Command   modelist net_restart nextframe nextskin noclip
104   syn keyword quake3Command   notarget ping prevframe prevskin reset restart
105   syn keyword quake3Command   s_disable_a3d s_enable_a3d s_info s_list s_stop
106   syn keyword quake3Command   scanservers -scores screenshotJPEG sectorlist
107   syn keyword quake3Command   serverstatus seta setenv sets setu setviewpos
108   syn keyword quake3Command   shaderlist showip skinlist spdevmap startOribt
109   syn keyword quake3Command   stats stopdemo stoprecord systeminfo togglemenu
110   syn keyword quake3Command   tcmd team teamtask teamvote tell tell_attacker
111   syn keyword quake3Command   tell_target testgun testmodel testshader toggle
112   syn keyword quake3Command   touchFile vminfo vmprofile vmtest vosay
113   syn keyword quake3Command   vosay_team vote votell vsay vsay_team vstr
114   syn keyword quake3Command   vtaunt vtell vtell_attacker vtell_target weapon
115   syn keyword quake3Command   writeconfig -zoom
116   syn match   quake3Command   display "\<[+-]button\(\d\|1[0-4]\)\>"
117 endif
119 if exists("quake_is_quake3")
120   syn cluster quake3Colors    contains=quake3Red,quake3Green,quake3Yellow,
121                               \ quake3Blue,quake3Cyan,quake3Purple,quake3White,
122                               \ quake3Orange,quake3Grey,quake3Black,quake3Shadow
124   syn region quake3Red        contained start=+\^1+hs=e+1 end=+[$^"\n]+he=e-1
125   syn region quake3Green      contained start=+\^2+hs=e+1 end=+[$^"\n]+he=e-1
126   syn region quake3Yellow     contained start=+\^3+hs=e+1 end=+[$^"\n]+he=e-1
127   syn region quake3Blue       contained start=+\^4+hs=e+1 end=+[$^"\n]+he=e-1
128   syn region quake3Cyan       contained start=+\^5+hs=e+1 end=+[$^"\n]+he=e-1
129   syn region quake3Purple     contained start=+\^6+hs=e+1 end=+[$^"\n]+he=e-1
130   syn region quake3White      contained start=+\^7+hs=e+1 end=+[$^"\n]+he=e-1
131   syn region quake3Orange     contained start=+\^8+hs=e+1 end=+[$^\"\n]+he=e-1
132   syn region quake3Grey       contained start=+\^9+hs=e+1 end=+[$^"\n]+he=e-1
133   syn region quake3Black      contained start=+\^0+hs=e+1 end=+[$^"\n]+he=e-1
134   syn region quake3Shadow     contained start=+\^[Xx]+hs=e+1 end=+[$^"\n]+he=e-1
135 endif
137 hi def link quakeComment      Comment
138 hi def link quakeTodo         Todo
139 hi def link quakeString       String
140 hi def link quakeNumber       Number
141 hi def link quakeOctal        Number
142 hi def link quakeOctalZero    PreProc
143 hi def link quakeFloat        Number
144 hi def link quakeOctalError   Error
145 hi def link quakeCommand      quakeCommands
146 hi def link quake1Command     quakeCommands
147 hi def link quake12Command    quakeCommands
148 hi def link quake2Command     quakeCommands
149 hi def link quake23Command    quakeCommands
150 hi def link quake3Command     quakeCommands
151 hi def link quakeCommands     Keyword
153 if exists("quake_is_quake3")
154   hi quake3Red                ctermfg=Red         guifg=Red
155   hi quake3Green              ctermfg=Green       guifg=Green
156   hi quake3Yellow             ctermfg=Yellow      guifg=Yellow
157   hi quake3Blue               ctermfg=Blue        guifg=Blue
158   hi quake3Cyan               ctermfg=Cyan        guifg=Cyan
159   hi quake3Purple             ctermfg=DarkMagenta guifg=Purple
160   hi quake3White              ctermfg=White       guifg=White
161   hi quake3Black              ctermfg=Black       guifg=Black
162   hi quake3Orange             ctermfg=Brown       guifg=Orange
163   hi quake3Grey               ctermfg=LightGrey   guifg=LightGrey
164   hi quake3Shadow             cterm=underline     gui=underline
165 endif
167 let b:current_syntax = "quake"
169 let &cpo = s:cpo_save
170 unlet s:cpo_save