blob: 1ae8c71afc1ea0cef1d474565723ee1e9283b0ee [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Quake[1-3] Configuration File
3" Maintainer: Nikolai Weibull <source@pcppopper.org>
4" URL: http://www.pcppopper.org/vim/syntax/pcp/quake/
5" Latest Revision: 2004-05-22
6" arch-tag: a95793d7-cab3-4544-a78c-1cea47b5870b
7" Variables: quake_is_quake1 - the syntax is to be used for quake1 configs
8" quake_is_quake2 - the syntax is to be used for quake2 configs
9" quake_is_quake3 - the syntax is to be used for quake3 configs
10
11
12if version < 600
13 syntax clear
14elseif exists("b:current_syntax")
15 finish
16endif
17
18
19" Set iskeyword since we need `-' (and potentially others) in keywords.
20" For version 5.x: Set it globally
21" For version 6.x: Set it locally
22if version >= 600
23 command -nargs=1 SetIsk setlocal iskeyword=<args>
24else
25 command -nargs=1 SetIsk set iskeyword=<args>
26endif
27SetIsk 48-57,65-90,97-122,+,-,_
28delcommand SetIsk
29
30
31" comments
32syn region quakeComment display oneline start="//" end="$" end=";" keepend contains=quakeTodo
33
34" todo
35syn keyword quakeTodo contained TODO FIXME XXX NOTE
36
37" string (can contain numbers (which should be hilighted as such)
38syn region quakeString display oneline start=+"+ skip=+\\"+ end=+"\|$+ contains=quakeNumbers,@quakeCommands
39
40" number
41syn case ignore
42syn match quakeNumbers display transparent "\<\d\|\.\d" contains=quakeNumber,quakeFloat,quakeOctalError,quakeOctal
43syn match quakeNumber display contained "\d\+\>"
44" Flag the first zero of an octal number as something special
45syn match quakeOctal display contained "0\o\+\>" contains=quakeOctalZero
46syn match quakeOctalZero display contained "\<0"
47" floating point number, with dot
48syn match quakeFloat display contained "\d\+\.\d*"
49" floating point number, starting with a dot
50syn match quakeFloat display contained "\.\d\+\>"
51" flag an octal number with wrong digits
52syn match quakeOctalError display contained "0\o*[89]\d*"
53syn case match
54
55" commands
56syn case ignore
57syn cluster quakeCommands contains=quakeCommand,quake1Command,quake12Command,Quake2Command,Quake23Command,Quake3Command
58
59syn keyword quakeCommand +attack +back +forward +left +lookdown +lookup
60syn keyword quakeCommand +mlook +movedown +moveleft +moveright +moveup
61syn keyword quakeCommand +right +speed +strafe -attack -back bind
62syn keyword quakeCommand bindlist centerview clear connect cvarlist dir
63syn keyword quakeCommand disconnect dumpuser echo error exec -forward
64syn keyword quakeCommand god heartbeat joy_advancedupdate kick kill
65syn keyword quakeCommand killserver -left -lookdown -lookup map
66syn keyword quakeCommand messagemode messagemode2 -mlook modellist
67syn keyword quakeCommand -movedown -moveleft -moveright -moveup play
68syn keyword quakeCommand quit rcon reconnect record -right say say_team
69syn keyword quakeCommand screenshot serverinfo serverrecord serverstop
70syn keyword quakeCommand set sizedown sizeup snd_restart soundinfo
71syn keyword quakeCommand soundlist -speed spmap status -strafe stopsound
72syn keyword quakeCommand toggleconsole unbind unbindall userinfo pause
73syn keyword quakeCommand vid_restart viewpos wait weapnext weapprev
74
75if exists("quake_is_quake1")
76syn keyword quake1Command sv
77endif
78
79if exists("quake_is_quake1") || exists("quake_is_quake2")
80syn keyword quake12Command +klook alias cd impulse link load save
81syn keyword quake12Command timerefresh changing info loading
82syn keyword quake12Command pingservers playerlist players score
83endif
84
85if exists("quake_is_quake2")
86syn keyword quake2Command cmd demomap +use condump download drop gamemap
87syn keyword quake2Command give gun_model setmaster sky sv_maplist wave
88syn keyword quake2Command cmdlist gameversiona gun_next gun_prev invdrop
89syn keyword quake2Command inven invnext invnextp invnextw invprev
90syn keyword quake2Command invprevp invprevw invuse menu_addressbook
91syn keyword quake2Command menu_credits menu_dmoptions menu_game
92syn keyword quake2Command menu_joinserver menu_keys menu_loadgame
93syn keyword quake2Command menu_main menu_multiplayer menu_options
94syn keyword quake2Command menu_playerconfig menu_quit menu_savegame
95syn keyword quake2Command menu_startserver menu_video
96syn keyword quake2Command notarget precache prog togglechat vid_front
97syn keyword quake2Command weaplast
98endif
99
100if exists("quake_is_quake2") || exists("quake_is_quake3")
101syn keyword quake23Command imagelist modellist path z_stats
102endif
103
104if exists("quake_is_quake3")
105syn keyword quake3Command +info +scores +zoom addbot arena banClient
106syn keyword quake3Command banUser callteamvote callvote changeVectors
107syn keyword quake3Command cinematic clientinfo clientkick cmd cmdlist
108syn keyword quake3Command condump configstrings crash cvar_restart devmap
109syn keyword quake3Command fdir follow freeze fs_openedList Fs_pureList
110syn keyword quake3Command Fs_referencedList gfxinfo globalservers
111syn keyword quake3Command hunk_stats in_restart -info levelshot
112syn keyword quake3Command loaddeferred localservers map_restart mem_info
113syn keyword quake3Command messagemode3 messagemode4 midiinfo model music
114syn keyword quake3Command modelist net_restart nextframe nextskin noclip
115syn keyword quake3Command notarget ping prevframe prevskin reset restart
116syn keyword quake3Command s_disable_a3d s_enable_a3d s_info s_list s_stop
117syn keyword quake3Command scanservers -scores screenshotJPEG sectorlist
118syn keyword quake3Command serverstatus seta setenv sets setu setviewpos
119syn keyword quake3Command shaderlist showip skinlist spdevmap startOribt
120syn keyword quake3Command stats stopdemo stoprecord systeminfo togglemenu
121syn keyword quake3Command tcmd team teamtask teamvote tell tell_attacker
122syn keyword quake3Command tell_target testgun testmodel testshader toggle
123syn keyword quake3Command touchFile vminfo vmprofile vmtest vosay
124syn keyword quake3Command vosay_team vote votell vsay vsay_team vstr
125syn keyword quake3Command vtaunt vtell vtell_attacker vtell_target weapon
126syn keyword quake3Command writeconfig -zoom
127syn match quake3Command display "\<[+-]button\(\d\|1[0-4]\)\>"
128endif
129
130syn case match
131
132" Define the default highlighting.
133" For version 5.7 and earlier: only when not done already
134" For version 5.8 and later: only when an item doesn't have highlighting yet
135if version >= 508 || !exists("did_screen_syn_inits")
136 if version < 508
137 let did_screen_syn_inits = 1
138 command -nargs=+ HiLink hi link <args>
139 else
140 command -nargs=+ HiLink hi def link <args>
141 endif
142
143 HiLink quakeComment Comment
144 HiLink quakeTodo Todo
145 HiLink quakeString String
146 HiLink quakeNumber Number
147 HiLink quakeOctal Number
148 HiLink quakeOctalZero Number
149 HiLink quakeFloat Number
150 HiLink quakeOctalError Error
151 HiLink quakeCommand quakeCommands
152 HiLink quake1Command quakeCommands
153 HiLink quake12Command quakeCommands
154 HiLink quake2Command quakeCommands
155 HiLink quake23Command quakeCommands
156 HiLink quake3Command quakeCommands
157 HiLink quakeCommands Keyword
158
159 delcommand HiLink
160endif
161
162" vim: set sts=2 sw=2: