blob: 7db53106ad83fa1fee7e0c45c8e1b67a0bde7f3a [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar214641f2017-03-05 17:04:09 +01002" Language: Quake[1-3] configuration file
3" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2007-06-17
Bram Moolenaar57657d82006-04-21 22:12:41 +00005" quake_is_quake1 - the syntax is to be used for quake1 configs
Bram Moolenaar42eeac32005-06-29 22:40:58 +00006" 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
Bram Moolenaar214641f2017-03-05 17:04:09 +01008" Credits: Tomasz Kalkosinski wrote the original quake3Colors stuff
Bram Moolenaar071d4272004-06-13 20:20:40 +00009
Bram Moolenaar42eeac32005-06-29 22:40:58 +000010if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000011 finish
12endif
13
Bram Moolenaar42eeac32005-06-29 22:40:58 +000014let s:cpo_save = &cpo
15set cpo&vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000016
Bram Moolenaar8c8de832008-06-24 22:58:06 +000017setlocal iskeyword+=-,+
Bram Moolenaar071d4272004-06-13 20:20:40 +000018
Bram Moolenaar42eeac32005-06-29 22:40:58 +000019syn keyword quakeTodo contained TODO FIXME XXX NOTE
Bram Moolenaar071d4272004-06-13 20:20:40 +000020
Bram Moolenaar42eeac32005-06-29 22:40:58 +000021syn region quakeComment display oneline start='//' end='$' end=';'
22 \ keepend contains=quakeTodo,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000023
Bram Moolenaar42eeac32005-06-29 22:40:58 +000024syn region quakeString display oneline start=+"+ skip=+\\\\\|\\"+
Bram Moolenaar57657d82006-04-21 22:12:41 +000025 \ end=+"\|$+ contains=quakeNumbers,
26 \ @quakeCommands,@quake3Colors
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
Bram Moolenaar071d4272004-06-13 20:20:40 +000028syn case ignore
Bram Moolenaar071d4272004-06-13 20:20:40 +000029
Bram Moolenaar57657d82006-04-21 22:12:41 +000030syn match quakeNumbers display transparent '\<-\=\d\|\.\d'
Bram Moolenaar42eeac32005-06-29 22:40:58 +000031 \ contains=quakeNumber,quakeFloat,
32 \ quakeOctalError,quakeOctal
33syn match quakeNumber contained display '\d\+\>'
Bram Moolenaar42eeac32005-06-29 22:40:58 +000034syn match quakeFloat contained display '\d\+\.\d*'
35syn match quakeFloat contained display '\.\d\+\>'
Bram Moolenaar57657d82006-04-21 22:12:41 +000036
37if 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*'
42endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000043
Bram Moolenaar42eeac32005-06-29 22:40:58 +000044syn cluster quakeCommands contains=quakeCommand,quake1Command,
45 \ quake12Command,Quake2Command,Quake23Command,
46 \ Quake3Command
47
48syn keyword quakeCommand +attack +back +forward +left +lookdown +lookup
49syn keyword quakeCommand +mlook +movedown +moveleft +moveright +moveup
50syn keyword quakeCommand +right +speed +strafe -attack -back bind
51syn keyword quakeCommand bindlist centerview clear connect cvarlist dir
52syn keyword quakeCommand disconnect dumpuser echo error exec -forward
53syn keyword quakeCommand god heartbeat joy_advancedupdate kick kill
54syn keyword quakeCommand killserver -left -lookdown -lookup map
55syn keyword quakeCommand messagemode messagemode2 -mlook modellist
56syn keyword quakeCommand -movedown -moveleft -moveright -moveup play
57syn keyword quakeCommand quit rcon reconnect record -right say say_team
58syn keyword quakeCommand screenshot serverinfo serverrecord serverstop
59syn keyword quakeCommand set sizedown sizeup snd_restart soundinfo
60syn keyword quakeCommand soundlist -speed spmap status -strafe stopsound
61syn keyword quakeCommand toggleconsole unbind unbindall userinfo pause
62syn keyword quakeCommand vid_restart viewpos wait weapnext weapprev
Bram Moolenaar071d4272004-06-13 20:20:40 +000063
64if exists("quake_is_quake1")
Bram Moolenaar42eeac32005-06-29 22:40:58 +000065 syn keyword quake1Command sv
Bram Moolenaar071d4272004-06-13 20:20:40 +000066endif
67
68if exists("quake_is_quake1") || exists("quake_is_quake2")
Bram Moolenaar42eeac32005-06-29 22:40:58 +000069 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000072endif
73
74if exists("quake_is_quake2")
Bram Moolenaar42eeac32005-06-29 22:40:58 +000075 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000087endif
88
Bram Moolenaar42eeac32005-06-29 22:40:58 +000089if exists("quake_is_quake2") || exists("quake_is_quake3")
90 syn keyword quake23Command imagelist modellist path z_stats
Bram Moolenaar071d4272004-06-13 20:20:40 +000091endif
92
Bram Moolenaar42eeac32005-06-29 22:40:58 +000093if 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]\)\>"
117endif
118
Bram Moolenaar57657d82006-04-21 22:12:41 +0000119if exists("quake_is_quake3")
120 syn cluster quake3Colors contains=quake3Red,quake3Green,quake3Yellow,
121 \ quake3Blue,quake3Cyan,quake3Purple,quake3White,
122 \ quake3Orange,quake3Grey,quake3Black,quake3Shadow
123
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
135endif
136
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000137hi def link quakeComment Comment
138hi def link quakeTodo Todo
139hi def link quakeString String
140hi def link quakeNumber Number
141hi def link quakeOctal Number
142hi def link quakeOctalZero PreProc
143hi def link quakeFloat Number
144hi def link quakeOctalError Error
145hi def link quakeCommand quakeCommands
146hi def link quake1Command quakeCommands
147hi def link quake12Command quakeCommands
148hi def link quake2Command quakeCommands
149hi def link quake23Command quakeCommands
150hi def link quake3Command quakeCommands
151hi def link quakeCommands Keyword
152
Bram Moolenaar57657d82006-04-21 22:12:41 +0000153if 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
165endif
166
Bram Moolenaar42eeac32005-06-29 22:40:58 +0000167let b:current_syntax = "quake"
168
169let &cpo = s:cpo_save
170unlet s:cpo_save