github-linguist 7.5.1 → 7.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +122 -24
  3. data/grammars/etc.json +7 -0
  4. data/grammars/hint.haskell.json +122 -24
  5. data/grammars/hint.message.haskell.json +122 -24
  6. data/grammars/hint.type.haskell.json +122 -24
  7. data/grammars/injections.etc.json +48 -10
  8. data/grammars/source.abnf.json +180 -353
  9. data/grammars/source.ballerina.json +205 -50
  10. data/grammars/source.bnf.json +191 -0
  11. data/grammars/source.cabal.json +1 -1
  12. data/grammars/source.ditroff.desc.json +1 -1
  13. data/grammars/source.ebnf.json +157 -147
  14. data/grammars/source.editorconfig.json +30 -5
  15. data/grammars/source.emacs.lisp.json +4 -4
  16. data/grammars/source.gremlin.json +200 -0
  17. data/grammars/source.haproxy-config.json +65 -13
  18. data/grammars/source.haskell.json +122 -24
  19. data/grammars/source.hql.json +1 -1
  20. data/grammars/source.hsig.json +122 -24
  21. data/grammars/source.hx.json +5 -5
  22. data/grammars/source.hxml.json +4 -4
  23. data/grammars/source.ideal.json +4 -4
  24. data/grammars/source.igor.json +325 -0
  25. data/grammars/source.jlex.json +322 -0
  26. data/grammars/source.julia.json +132 -1
  27. data/grammars/source.lean.json +103 -54
  28. data/grammars/source.lex.json +232 -0
  29. data/grammars/source.lex.regexp.json +269 -0
  30. data/grammars/source.logos.json +1 -1
  31. data/grammars/source.meson.json +1 -1
  32. data/grammars/source.mlir.json +389 -0
  33. data/grammars/source.nanorc.json +3 -0
  34. data/grammars/source.pic.json +19 -19
  35. data/grammars/source.plist.json +336 -0
  36. data/grammars/source.powershell.json +2 -2
  37. data/grammars/source.purescript.json +2 -2
  38. data/grammars/source.rascal.json +1 -0
  39. data/grammars/source.regexp.extended.json +544 -6
  40. data/grammars/source.regexp.json +408 -31
  41. data/grammars/source.renpy.json +3 -1
  42. data/grammars/source.scala.json +199 -97
  43. data/grammars/source.smpl.json +314 -0
  44. data/grammars/source.solidity.json +1 -1
  45. data/grammars/source.sourcepawn.json +654 -0
  46. data/grammars/source.sqf.json +5 -1
  47. data/grammars/source.swift.json +56 -11
  48. data/grammars/source.sy.json +800 -0
  49. data/grammars/source.ts.json +64 -47
  50. data/grammars/source.tsx.json +65 -48
  51. data/grammars/source.v.json +1184 -0
  52. data/grammars/source.viml.json +31 -31
  53. data/grammars/source.wollok.json +1 -1
  54. data/grammars/source.xojo.json +2 -2
  55. data/grammars/source.yacc.json +626 -0
  56. data/grammars/source.yara.json +1 -1
  57. data/grammars/source.yasnippet.json +15 -25
  58. data/grammars/source.zeek.json +4 -4
  59. data/grammars/source.zig.json +594 -195
  60. data/grammars/text.eml.basic.json +19 -6
  61. data/grammars/text.html.php.blade.json +3 -3
  62. data/grammars/text.plain.json +18 -0
  63. data/grammars/text.roff.json +926 -437
  64. data/grammars/text.runoff.json +3 -3
  65. data/grammars/text.tex.latex.haskell.json +122 -24
  66. data/grammars/text.texinfo.json +1525 -0
  67. data/grammars/text.xml.plist.json +664 -0
  68. data/grammars/text.xml.svg.json +556 -0
  69. data/grammars/version +1 -1
  70. data/lib/linguist.rb +3 -1
  71. data/lib/linguist/VERSION +1 -1
  72. data/lib/linguist/generated.rb +62 -17
  73. data/lib/linguist/heuristics.yml +13 -0
  74. data/lib/linguist/language.rb +1 -11
  75. data/lib/linguist/languages.json +1 -1
  76. data/lib/linguist/languages.yml +179 -19
  77. data/lib/linguist/samples.json +2778 -732
  78. data/lib/linguist/strategy/manpage.rb +42 -0
  79. metadata +22 -5
  80. data/grammars/source.bison.json +0 -55
  81. data/grammars/source.sp.json +0 -113
@@ -33,7 +33,7 @@
33
33
  }
34
34
  },
35
35
  {
36
- "match": "\\b(address\\s*payable|address|string|bytes?\\d*|int\\d*|uint\\d*|bool|u?fixed\\d+x\\d+)\\s*(?:\\[(\\d*)\\])?\\s*(?:\\[(\\d*)\\])?\\s*(?:(indexed|memory|storage|calldata|payable)?\\s*(\\b[A-Za-z_]\\w*)\\s*)?(?=[,\\)])",
36
+ "match": "\\b(address\\s*payable|address|string|bytes?\\d*|int\\d*|uint\\d*|bool|u?fixed\\d+x\\d+)\\s*(?:\\[(\\d*)\\])?\\s*(?:\\[(\\d*)\\])?\\s*(?:(indexed|memory|storage|calldata|payable)?\\s*(\\b[A-Za-z_]\\w*)?\\s*)?(?=[,\\)])",
37
37
  "captures": {
38
38
  "1": {
39
39
  "name": "constant.language"
@@ -0,0 +1,654 @@
1
+ {
2
+ "name": "SourcePawn",
3
+ "scopeName": "source.sourcepawn",
4
+ "patterns": [
5
+ {
6
+ "include": "#keywords"
7
+ },
8
+ {
9
+ "include": "#strings"
10
+ },
11
+ {
12
+ "include": "#comments"
13
+ },
14
+ {
15
+ "include": "#builtIns"
16
+ },
17
+ {
18
+ "name": "meta.include.sourcepawn",
19
+ "match": "(\\#include|\\#tryinclude)\\s*[\u003c\"](.+)[\u003e\"]",
20
+ "captures": {
21
+ "1": {
22
+ "name": "keyword.other.sourcepawn"
23
+ },
24
+ "2": {
25
+ "name": "string.sourcepawn"
26
+ }
27
+ }
28
+ },
29
+ {
30
+ "name": "meta.define.sourcepawn",
31
+ "match": "(\\#define)\\s([^ ]*)",
32
+ "captures": {
33
+ "1": {
34
+ "name": "keyword.other.sourcepawn"
35
+ },
36
+ "2": {
37
+ "name": "support.constant.core.sourcepawn"
38
+ }
39
+ }
40
+ },
41
+ {
42
+ "name": "keyword.other.sourcepawn",
43
+ "match": "#(endif|if|pragma|undef|endinput)"
44
+ },
45
+ {
46
+ "name": "support.type.core.sourcepawn",
47
+ "match": "\\b(bool|char|const|float|int|void|any)\\b"
48
+ },
49
+ {
50
+ "match": "\\b([A-Za-z_][A-Za-z0-9_]*)\\s*\\(",
51
+ "captures": {
52
+ "1": {
53
+ "name": "entity.name.function.sourcepawn"
54
+ }
55
+ }
56
+ },
57
+ {
58
+ "name": "constant.numeric.integer.sourcepawn",
59
+ "match": "\\b[0-9]+\\b"
60
+ },
61
+ {
62
+ "name": "constant.numeric.sourcepawn",
63
+ "match": "\\b0b[0-1]+\\b"
64
+ },
65
+ {
66
+ "name": "constant.numeric.sourcepawn",
67
+ "match": "\\b0x[0-9a-fA-F]+\\b"
68
+ },
69
+ {
70
+ "name": "constant.numeric.float.sourcepawn",
71
+ "match": "\\b[0-9]+\\.[0-9]+\\b"
72
+ },
73
+ {
74
+ "name": "constant.language.boolean.sourcepawn",
75
+ "match": "\\b(true|false)\\b"
76
+ }
77
+ ],
78
+ "repository": {
79
+ "builtIns": {
80
+ "patterns": [
81
+ {
82
+ "include": "#enums"
83
+ },
84
+ {
85
+ "include": "#constants"
86
+ },
87
+ {
88
+ "name": "support.type.core.sourcepawn",
89
+ "match": "\\b(Action|AmbientSHook|NormalSHook|Timer|AdminId|GroupId|AdminFlag|OverrideType|OverrideRule|AdminCachePart|AdmAccessMode|CookieAccess|CookieMenu|CookieMenuAction|CookieMenuHandler|AuthIdType|NetFlow|QueryCookie|Extension|SharedPlugin|ReplySource|CommandListener|ConCmd|SrvCmd|ConVarBounds|ConVar_Bounds|ConVarQueryResult|ConVarChanged|ConVarQueryFinished|Identity|ImmunityType|PluginInfo|PluginStatus|CSRoundEndReason|CSWeaponID|EventHook|DataPackPos|DBBindType|DBPriority|DBResult|PropFieldType|PropType|MoveType|RenderFx|RenderMode|EventHookMode|FileTimeMode|FileType|PathType|ExecType|ParamType|ClientRangeType|DialogType|EngineVersion|FindMapResult|KvDataTypes|MapChange|NominateResult|MenuAction|MenuSource|SQLConnectCallback|SQLQueryCallback|SQLTCallback|SQLTxnFailure|SQLTxnSuccess|GameLogHook|EntityOutput|MenuStyle|SDKHookCB|MenuHandler|VoteHandler|MultiTargetFilter|PlVers|RegexError|SDKHookType|UseType|SDKCallType|SDKFuncConfSource|TEHook|SortFunc1D|SortFunc2D|SortFuncADTArray|SDKLibrary|TraceEntityFilter|SDKPassMethod|SDKType|RoundState|RayType|ListenOverride|SortOrder|SortType|Address|APLRes|FeatureStatus|FeatureType|NumberType|TopMenuHandler|MsgHook|MsgPostHook|NativeCall|RequestFrameCallback|SMC_EndSection|SMC_KeyValue|SMC_NewSection|SMC_ParseEnd|SMC_ParseStart|SMC_RawLine|SMCError|SMCResult|TFClassType|TFCond|TFHoliday|TFObjectMode|TFObjectType|TFTeam|TFResourceType|TopMenuAction|TopMenuObject|TopMenuObjectType|TopMenuPosition|UserMessageType|UserMsg)\\b"
90
+ },
91
+ {
92
+ "name": "support.type.core.sourcepawn",
93
+ "match": "\\b(ArrayList|ArrayStack|StringMap|StringMapSnapshot|BfRead|BfWrite|DataPack)\\b"
94
+ },
95
+ {
96
+ "name": "support.type.core.sourcepawn",
97
+ "match": "\\b(Plugin|Handle|ConVar|Database|DBDriver|DBResultSet|DBStatement|Transaction|Event|File|DirectoryListing|KeyValues|Menu|Panel|Protobuf|Regex|SMCParser|TopMenu|Timer)\\b"
98
+ }
99
+ ]
100
+ },
101
+ "comments": {
102
+ "patterns": [
103
+ {
104
+ "name": "comment.sourcepawn",
105
+ "match": "\\/\\/.*"
106
+ },
107
+ {
108
+ "name": "comment.block.SourcePawn",
109
+ "begin": "/\\*",
110
+ "end": "\\*/",
111
+ "captures": {
112
+ "0": {
113
+ "name": "comment.sourcepawn"
114
+ }
115
+ }
116
+ }
117
+ ]
118
+ },
119
+ "constants": {
120
+ "patterns": [
121
+ {
122
+ "name": "support.constant.core.sourcepawn",
123
+ "match": "\\b(MAXPLAYERS|MaxClients|REQUIRE_PLUGIN|REQUIRE_EXTENSIONS|MAX_NAME_LENGTH|MAX_TARGET_LENGTH|INVALID_FCVAR_FLAGS|NULL_VECTOR|NULL_STRING|AUTOLOAD_EXTENSIONS|PLATFORM_MAX_PATH|Path_SM|SP_PARAMFLAG_BYREF|INVALID_ENT_REFERENCE|INVALID_HANDLE|null|LANG_SERVER|PB_FIELD_NOT_REPEATED|MAX_LIGHTSTYLES|FEATURECAP_PLAYERRUNCMD_11PARAMS|INVALID_STRING_TABLE|INVALID_STRING_INDEX|INVALID_TOPMENUOBJECT|INVALID_MESSAGE_ID|QUERYCOOKIE_FAILED)\\b"
124
+ },
125
+ {
126
+ "name": "support.constant.core.sourcepawn",
127
+ "match": "\\b(ADMFLAG_RESERVATION|ADMFLAG_GENERIC|ADMFLAG_KICK|ADMFLAG_BAN|ADMFLAG_UNBAN|ADMFLAG_SLAY|ADMFLAG_CHANGEMAP|ADMFLAG_CONVARS|ADMFLAG_CONFIG|ADMFLAG_CHAT|ADMFLAG_VOTE|ADMFLAG_PASSWORD|ADMFLAG_RCON|ADMFLAG_CHEATS|ADMFLAG_ROOT|ADMFLAG_CUSTOM1|ADMFLAG_CUSTOM2|ADMFLAG_CUSTOM3|ADMFLAG_CUSTOM4|ADMFLAG_CUSTOM5|ADMFLAG_CUSTOM6)\\b"
128
+ },
129
+ {
130
+ "name": "support.constant.core.sourcepawn",
131
+ "match": "\\b(AUTHMETHOD_STEAM|AUTHMETHOD_IP|AUTHMETHOD_NAME)\\b"
132
+ },
133
+ {
134
+ "name": "support.constant.core.sourcepawn",
135
+ "match": "\\b(INVALID_GROUP_ID|INVALID_ADMIN_ID)\\b"
136
+ },
137
+ {
138
+ "name": "support.constant.core.sourcepawn",
139
+ "match": "\\b(ADMINMENU_PLAYERCOMMANDS|ADMINMENU_SERVERCOMMANDS|ADMINMENU_VOTINGCOMMANDS)\\b"
140
+ },
141
+ {
142
+ "name": "support.constant.core.sourcepawn",
143
+ "match": "\\b(BANFLAG_AUTO|BANFLAG_IP|BANFLAG_AUTHID|BANFLAG_NOKICK)\\b"
144
+ },
145
+ {
146
+ "name": "support.constant.core.sourcepawn",
147
+ "match": "\\b(COMMAND_FILTER_ALIVE|COMMAND_FILTER_DEAD|COMMAND_FILTER_CONNECTED|COMMAND_FILTER_NO_IMMUNITY|COMMAND_FILTER_NO_MULTI|COMMAND_FILTER_NO_BOTS)\\b"
148
+ },
149
+ {
150
+ "name": "support.constant.core.sourcepawn",
151
+ "match": "\\b(COMMAND_TARGET_NONE|COMMAND_TARGET_NOT_ALIVE|COMMAND_TARGET_NOT_DEAD|COMMAND_TARGET_NOT_IN_GAME|COMMAND_TARGET_IMMUNE|COMMAND_TARGET_EMPTY_FILTER|COMMAND_TARGET_NOT_HUMAN|COMMAND_TARGET_AMBIGUOUS)\\b"
152
+ },
153
+ {
154
+ "name": "support.constant.core.sourcepawn",
155
+ "match": "\\b(FL_EDICT_CHANGED|FL_EDICT_FREE|FL_EDICT_FULL|FL_EDICT_FULLCHECK|FL_EDICT_ALWAYS|FL_EDICT_DONTSEND|FL_EDICT_PVSCHECK|FL_EDICT_PENDING_DORMANT_CHECK|FL_EDICT_DIRTY_PVS_INFORMATION|FL_FULL_EDICT_CHANGED)\\b"
156
+ },
157
+ {
158
+ "name": "support.constant.core.sourcepawn",
159
+ "match": "\\b(MOVETYPE_NONE|MOVETYPE_ISOMETRIC|MOVETYPE_WALK|MOVETYPE_STEP|MOVETYPE_FLY|MOVETYPE_FLYGRAVITY|MOVETYPE_VPHYSICS|MOVETYPE_PUSH|MOVETYPE_NOCLIP|MOVETYPE_LADDER|MOVETYPE_OBSERVER|MOVETYPE_CUSTOM)\\b"
160
+ },
161
+ {
162
+ "name": "support.constant.core.sourcepawn",
163
+ "match": "\\b(RENDER_NORMAL|RENDER_TRANSCOLOR|RENDER_TRANSTEXTURE|RENDER_GLOW|RENDER_TRANSALPHA|RENDER_TRANSADD|RENDER_ENVIRONMENTAL|RENDER_TRANSADDFRAMEBLEND|RENDER_TRANSALPHAADD|RENDER_WORLDGLOW|RENDER_NONE)\\b"
164
+ },
165
+ {
166
+ "name": "support.constant.core.sourcepawn",
167
+ "match": "\\b(RENDERFX_NONE|RENDERFX_PULSE_SLOW|RENDERFX_PULSE_FAST|RENDERFX_PULSE_SLOW_WIDE|RENDERFX_PULSE_FAST_WIDE|RENDERFX_FADE_SLOW|RENDERFX_FADE_FAST|RENDERFX_SOLID_SLOW|RENDERFX_SOLID_FAST|RENDERFX_STROBE_SLOW|RENDERFX_STROBE_FAST|RENDERFX_STROBE_FASTER|RENDERFX_FLICKER_SLOW|RENDERFX_FLICKER_FAST|RENDERFX_NO_DISSIPATION|RENDERFX_DISTORT|RENDERFX_HOLOGRAM|RENDERFX_EXPLODE|RENDERFX_GLOWSHELL|RENDERFX_CLAMP_MIN_SCALE|RENDERFX_ENV_RAIN|RENDERFX_ENV_SNOW|RENDERFX_SPOTLIGHT|RENDERFX_RAGDOLL|RENDERFX_PULSE_FAST_WIDER|RENDERFX_MAX)\\b"
168
+ },
169
+ {
170
+ "name": "support.constant.core.sourcepawn",
171
+ "match": "\\b(IN_ATTACK|IN_JUMP|IN_DUCK|IN_FORWARD|IN_BACK|IN_USE|IN_CANCEL|IN_LEFT|IN_RIGHT|IN_MOVELEFT|IN_MOVERIGHT|IN_ATTACK2|IN_RUN|IN_RELOAD|IN_ALT1|IN_ALT2|IN_SCORE|IN_SPEED|IN_WALK|IN_ZOOM|IN_WEAPON1|IN_WEAPON2|IN_BULLRUSH|IN_GRENADE1|IN_GRENADE2|IN_ATTACK3)\\b"
172
+ },
173
+ {
174
+ "name": "support.constant.core.sourcepawn",
175
+ "match": "\\b(FL_ONGROUND|FL_DUCKING|FL_WATERJUMP|FL_ONTRAIN|FL_INRAIN|FL_FROZEN|FL_ATCONTROLS|FL_CLIENT|FL_FAKECLIENT|PLAYER_FLAG_BITS|FL_INWATER|FL_FLY|FL_SWIM|FL_CONVEYOR|FL_NPC|FL_GODMODE|FL_NOTARGET|FL_AIMTARGET|FL_PARTIALGROUND|FL_STATICPROP|FL_GRAPHED|FL_GRENADE|FL_STEPMOVEMENT|FL_DONTTOUCH|FL_BASEVELOCITY|FL_WORLDBRUSH|FL_OBJECT|FL_KILLME|FL_ONFIRE|FL_DISSOLVING|FL_TRANSRAGDOLL|FL_UNBLOCKABLE_BY_PLAYER|FL_FREEZING|FL_EP2V_UNKNOWN1)\\b"
176
+ },
177
+ {
178
+ "name": "support.constant.core.sourcepawn",
179
+ "match": "\\b(SEEK_SET|SEEK_CUR|SEEK_END)\\b"
180
+ },
181
+ {
182
+ "name": "support.constant.core.sourcepawn",
183
+ "match": "\\b(SM_PARAM_COPYBACK|SM_PARAM_STRING_UTF8|SM_PARAM_STRING_COPY|SM_PARAM_STRING_BINARY)\\b"
184
+ },
185
+ {
186
+ "name": "support.constant.core.sourcepawn",
187
+ "match": "\\b(SP_ERROR_NONE|SP_ERROR_FILE_FORMAT|SP_ERROR_DECOMPRESSOR|SP_ERROR_HEAPLOW|SP_ERROR_PARAM|SP_ERROR_INVALID_ADDRESS|SP_ERROR_NOT_FOUND|SP_ERROR_INDEX|SP_ERROR_STACKLOW|SP_ERROR_NOTDEBUGGING|SP_ERROR_INVALID_INSTRUCTION|SP_ERROR_MEMACCESS|SP_ERROR_STACKMIN|SP_ERROR_HEAPMIN|SP_ERROR_DIVIDE_BY_ZERO|SP_ERROR_ARRAY_BOUNDS|SP_ERROR_INSTRUCTION_PARAM|SP_ERROR_STACKLEAK|SP_ERROR_HEAPLEAK|SP_ERROR_ARRAY_TOO_BIG|SP_ERROR_TRACKER_BOUNDS|SP_ERROR_INVALID_NATIVE|SP_ERROR_PARAMS_MAX|SP_ERROR_NATIVE|SP_ERROR_NOT_RUNNABLE|SP_ERROR_ABORTED)\\b"
188
+ },
189
+ {
190
+ "name": "support.constant.core.sourcepawn",
191
+ "match": "\\b(SOURCE_SDK_UNKNOWN|SOURCE_SDK_ORIGINAL|SOURCE_SDK_DARKMESSIAH|SOURCE_SDK_EPISODE1|SOURCE_SDK_EPISODE2|SOURCE_SDK_BLOODYGOODTIME|SOURCE_SDK_EYE|SOURCE_SDK_CSS|SOURCE_SDK_EPISODE2VALVE|SOURCE_SDK_LEFT4DEAD|SOURCE_SDK_LEFT4DEAD2|SOURCE_SDK_ALIENSWARM|SOURCE_SDK_CSGO|SOURCE_SDK_DOTA)\\b"
192
+ },
193
+ {
194
+ "name": "support.constant.core.sourcepawn",
195
+ "match": "\\b(MOTDPANEL_TYPE_TEXT|MOTDPANEL_TYPE_INDEX|MOTDPANEL_TYPE_URL|MOTDPANEL_TYPE_FILE)\\b"
196
+ },
197
+ {
198
+ "name": "support.constant.core.sourcepawn",
199
+ "match": "\\b(MENU_ACTIONS_DEFAULT|MENU_ACTIONS_ALL|MENU_NO_PAGINATION|MENU_TIME_FOREVER)\\b"
200
+ },
201
+ {
202
+ "name": "support.constant.core.sourcepawn",
203
+ "match": "\\b(ITEMDRAW_DEFAULT|ITEMDRAW_DISABLED|ITEMDRAW_RAWLINE|ITEMDRAW_NOTEXT|ITEMDRAW_SPACER|ITEMDRAW_IGNORE|ITEMDRAW_CONTROL)\\b"
204
+ },
205
+ {
206
+ "name": "support.constant.core.sourcepawn",
207
+ "match": "\\b(MENUFLAG_BUTTON_EXIT|MENUFLAG_BUTTON_EXITBACK|MENUFLAG_NO_SOUND|MENUFLAG_BUTTON_NOVOTE)\\b"
208
+ },
209
+ {
210
+ "name": "support.constant.core.sourcepawn",
211
+ "match": "\\b(VOTEINFO_CLIENT_INDEX|VOTEINFO_CLIENT_ITEM|VOTEINFO_ITEM_INDEX|VOTEINFO_ITEM_VOTES|VOTEFLAG_NO_REVOTES)\\b"
212
+ },
213
+ {
214
+ "name": "support.constant.core.sourcepawn",
215
+ "match": "\\b(PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_DOLLAR_ENDONLY|PCRE_UNGREEDY|PCRE_NOTEMPTY|PCRE_UTF8|PCRE_NO_UTF8_CHECK|PCRE_UCP)\\b"
216
+ },
217
+ {
218
+ "name": "support.constant.core.sourcepawn",
219
+ "match": "\\b(VDECODE_FLAG_ALLOWNULL|VDECODE_FLAG_ALLOWNOTINGAME|VDECODE_FLAG_ALLOWWORLD|VDECODE_FLAG_BYREF|VENCODE_FLAG_COPYBACK)\\b"
220
+ },
221
+ {
222
+ "name": "support.constant.core.sourcepawn",
223
+ "match": "\\b(SOUND_FROM_PLAYER|SOUND_FROM_LOCAL_PLAYER|SOUND_FROM_WORLD)\\b"
224
+ },
225
+ {
226
+ "name": "support.constant.core.sourcepawn",
227
+ "match": "\\b(SNDCHAN_REPLACE|SNDCHAN_AUTO|SNDCHAN_WEAPON|SNDCHAN_VOICE|SNDCHAN_ITEM|SNDCHAN_BODY|SNDCHAN_STREAM|SNDCHAN_STATIC|SNDCHAN_VOICE_BASE|SNDCHAN_USER_BASE)\\b"
228
+ },
229
+ {
230
+ "name": "support.constant.core.sourcepawn",
231
+ "match": "\\b(SND_NOFLAGS|SND_CHANGEVOL|SND_CHANGEPITCH|SND_STOP|SND_SPAWNING|SND_DELAY|SND_STOPLOOPING|SND_SPEAKER|SND_SHOULDPAUSE)\\b"
232
+ },
233
+ {
234
+ "name": "support.constant.core.sourcepawn",
235
+ "match": "\\b(SNDLEVEL_NONE|SNDLEVEL_RUSTLE|SNDLEVEL_WHISPER|SNDLEVEL_LIBRARY|SNDLEVEL_FRIDGE|SNDLEVEL_HOME|SNDLEVEL_CONVO|SNDLEVEL_DRYER|SNDLEVEL_DISHWASHER|SNDLEVEL_CAR|SNDLEVEL_NORMAL|SNDLEVEL_TRAFFIC|SNDLEVEL_MINIBIKE|SNDLEVEL_SCREAMING|SNDLEVEL_TRAIN|SNDLEVEL_HELICOPTER|SNDLEVEL_SNOWMOBILE|SNDLEVEL_AIRCRAFT|SNDLEVEL_RAIDSIREN|SNDLEVEL_GUNFIRE|SNDLEVEL_ROCKET)\\b"
236
+ },
237
+ {
238
+ "name": "support.constant.core.sourcepawn",
239
+ "match": "\\b(SNDVOL_NORMAL|SNDPITCH_NORMAL|SNDPITCH_LOW|SNDPITCH_HIGH|SNDATTN_NONE|SNDATTN_NORMAL|SNDATTN_STATIC|SNDATTN_RICOCHET|SNDATTN_IDLE)\\b"
240
+ },
241
+ {
242
+ "name": "support.constant.core.sourcepawn",
243
+ "match": "\\b(TE_EXPLFLAG_NONE|TE_EXPLFLAG_NOADDITIVE|TE_EXPLFLAG_NODLIGHTS|TE_EXPLFLAG_NOSOUND|TE_EXPLFLAG_NOPARTICLES|TE_EXPLFLAG_DRAWALPHA|TE_EXPLFLAG_ROTATE|TE_EXPLFLAG_NOFIREBALL|TE_EXPLFLAG_NOFIREBALLSMOKE)\\b"
244
+ },
245
+ {
246
+ "name": "support.constant.core.sourcepawn",
247
+ "match": "\\b(FBEAM_STARTENTITY|FBEAM_ENDENTITY|FBEAM_FADEIN|FBEAM_FADEOUT|FBEAM_SINENOISE|FBEAM_SOLID|FBEAM_SHADEIN|FBEAM_SHADEOUT|FBEAM_ONLYNOISEONCE|FBEAM_NOTILE|FBEAM_USE_HITBOXES|FBEAM_STARTVISIBLE|FBEAM_ENDVISIBLE|FBEAM_ISACTIVE|FBEAM_FOREVER|FBEAM_HALOBEAM)\\b"
248
+ },
249
+ {
250
+ "name": "support.constant.core.sourcepawn",
251
+ "match": "\\b(CONTENTS_EMPTY|CONTENTS_SOLID|CONTENTS_WINDOW|CONTENTS_AUX|CONTENTS_GRATE|CONTENTS_SLIME|CONTENTS_WATER|CONTENTS_MIST|CONTENTS_OPAQUE|LAST_VISIBLE_CONTENTS|ALL_VISIBLE_CONTENTS|CONTENTS_TESTFOGVOLUME|CONTENTS_UNUSED5|CONTENTS_UNUSED6|CONTENTS_TEAM1|CONTENTS_TEAM2|CONTENTS_IGNORE_NODRAW_OPAQUE|CONTENTS_MOVEABLE|CONTENTS_AREAPORTAL|CONTENTS_PLAYERCLIP|CONTENTS_MONSTERCLIP|CONTENTS_CURRENT_0|CONTENTS_CURRENT_90|CONTENTS_CURRENT_180|CONTENTS_CURRENT_270|CONTENTS_CURRENT_UP|CONTENTS_CURRENT_DOWN|CONTENTS_ORIGIN|CONTENTS_MONSTER|CONTENTS_DEBRIS|CONTENTS_DETAIL|CONTENTS_TRANSLUCENT|CONTENTS_LADDER|CONTENTS_HITBOX)\\b"
252
+ },
253
+ {
254
+ "name": "support.constant.core.sourcepawn",
255
+ "match": "\\b(MASK_ALL|MASK_SOLID|MASK_PLAYERSOLID|MASK_NPCSOLID|MASK_WATER|MASK_OPAQUE|MASK_OPAQUE_AND_NPCS|MASK_VISIBLE|MASK_VISIBLE_AND_NPCS|MASK_SHOT|MASK_SHOT_HULL|MASK_SHOT_PORTAL|MASK_SOLID_BRUSHONLY|MASK_PLAYERSOLID_BRUSHONLY|MASK_NPCSOLID_BRUSHONLY|MASK_NPCWORLDSTATIC|MASK_SPLITAREAPORTAL)\\b"
256
+ },
257
+ {
258
+ "name": "support.constant.core.sourcepawn",
259
+ "match": "\\b(VOICE_NORMAL|VOICE_MUTED|VOICE_SPEAKALL|VOICE_LISTENALL|VOICE_TEAM|VOICE_LISTENTEAM)\\b"
260
+ },
261
+ {
262
+ "name": "support.constant.core.sourcepawn",
263
+ "match": "\\b(TF_STUNFLAG_SLOWDOWN|TF_STUNFLAG_BONKSTUCK|TF_STUNFLAG_LIMITMOVEMENT|TF_STUNFLAG_CHEERSOUND|TF_STUNFLAG_NOSOUNDOREFFECT|TF_STUNFLAG_THIRDPERSON|TF_STUNFLAG_GHOSTEFFECT|TF_STUNFLAGS_LOSERSTATE|TF_STUNFLAGS_GHOSTSCARE|TF_STUNFLAGS_SMALLBONK|TF_STUNFLAGS_NORMALBONK|TF_STUNFLAGS_BIGBONK)\\b"
264
+ },
265
+ {
266
+ "name": "support.constant.core.sourcepawn",
267
+ "match": "\\b(TF_CONDFLAG_NONE|TF_CONDFLAG_SLOWED|TF_CONDFLAG_ZOOMED|TF_CONDFLAG_DISGUISING|TF_CONDFLAG_DISGUISED|TF_CONDFLAG_CLOAKED|TF_CONDFLAG_UBERCHARGED|TF_CONDFLAG_TELEPORTGLOW|TF_CONDFLAG_TAUNTING|TF_CONDFLAG_UBERCHARGEFADE|TF_CONDFLAG_CLOAKFLICKER|TF_CONDFLAG_TELEPORTING|TF_CONDFLAG_KRITZKRIEGED|TF_CONDFLAG_DEADRINGERED|TF_CONDFLAG_BONKED|TF_CONDFLAG_DAZED|TF_CONDFLAG_BUFFED|TF_CONDFLAG_CHARGING|TF_CONDFLAG_DEMOBUFF|TF_CONDFLAG_CRITCOLA|TF_CONDFLAG_INHEALRADIUS|TF_CONDFLAG_HEALING|TF_CONDFLAG_ONFIRE|TF_CONDFLAG_OVERHEALED|TF_CONDFLAG_JARATED|TF_CONDFLAG_BLEEDING|TF_CONDFLAG_DEFENSEBUFFED|TF_CONDFLAG_MILKED|TF_CONDFLAG_MEGAHEAL|TF_CONDFLAG_REGENBUFFED|TF_CONDFLAG_MARKEDFORDEATH)\\b"
268
+ },
269
+ {
270
+ "name": "support.constant.core.sourcepawn",
271
+ "match": "\\b(TF_DEATHFLAG_KILLERDOMINATION|TF_DEATHFLAG_ASSISTERDOMINATION|TF_DEATHFLAG_KILLERREVENGE|TF_DEATHFLAG_ASSISTERREVENGE|TF_DEATHFLAG_FIRSTBLOOD|TF_DEATHFLAG_DEADRINGER|TF_DEATHFLAG_INTERRUPTED|TF_DEATHFLAG_GIBBED|TF_DEATHFLAG_PURGATORY)\\b"
272
+ },
273
+ {
274
+ "name": "support.constant.core.sourcepawn",
275
+ "match": "\\b(USERMSG_RELIABLE|USERMSG_INITMSG|USERMSG_BLOCKHOOKS)\\b"
276
+ },
277
+ {
278
+ "name": "support.constant.core.sourcepawn",
279
+ "match": "\\b(SOURCEMOD_V_TAG|SOURCEMOD_V_REV|SOURCEMOD_V_CSET|SOURCEMOD_V_MAJOR|SOURCEMOD_V_MINOR|SOURCEMOD_V_RELEASE|SOURCEMOD_VERSION)\\b"
280
+ },
281
+ {
282
+ "name": "support.constant.core.sourcepawn",
283
+ "match": "\\b(DBPrio_High|DBPrio_Normal|DBPrio_Low)\\b"
284
+ },
285
+ {
286
+ "name": "support.constant.core.sourcepawn",
287
+ "match": "\\b(TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE|TIMER_HNDL_CLOSE|TIMER_DATA_HNDL_CLOSE)\\b"
288
+ },
289
+ {
290
+ "name": "support.constant.core.sourcepawn",
291
+ "match": "\\b(DMG_GENERIC|DMG_CRUSH|DMG_BULLET|DMG_SLASH|DMG_BURN|DMG_VEHICLE|DMG_FALL|DMG_BLAST|DMG_CLUB|DMG_SHOCK|DMG_SONIC|DMG_ENERGYBEAM|DMG_PREVENT_PHYSICS_FORCE|DMG_NEVERGIB|DMG_ALWAYSGIB|DMG_DROWN|DMG_PARALYZE|DMG_NERVEGAS|DMG_POISON|DMG_RADIATION|DMG_DROWNRECOVER|DMG_ACID|DMG_SLOWBURN|DMG_REMOVENORAGDOLL|DMG_PHYSGUN|DMG_PLASMA|DMG_AIRBOAT|DMG_DISSOLVE|DMG_BLAST_SURFACE|DMG_DIRECT|DMG_BUCKSHOT|DMG_CRIT)\\b"
292
+ },
293
+ {
294
+ "name": "support.constant.core.sourcepawn",
295
+ "match": "\\b(CS_TEAM_NONE|CS_TEAM_SPECTATOR|CS_TEAM_T|CS_TEAM_CT)\\b"
296
+ },
297
+ {
298
+ "name": "support.constant.core.sourcepawn",
299
+ "match": "\\b(CS_SLOT_PRIMARY|CS_SLOT_SECONDARY|CS_SLOT_KNIFE|CS_SLOT_GRENADE|CS_SLOT_C4)\\b"
300
+ },
301
+ {
302
+ "name": "support.constant.core.sourcepawn",
303
+ "match": "\\b(CS_DMG_HEADSHOT)\\b"
304
+ },
305
+ {
306
+ "name": "support.constant.core.sourcepawn",
307
+ "match": "\\b(FCVAR_PLUGIN|FCVAR_LAUNCHER|FCVAR_NONE|FCVAR_UNREGISTERED|FCVAR_DEVELOPMENTONLY|FCVAR_GAMEDLL|FCVAR_CLIENTDLL|FCVAR_MATERIAL_SYSTEM|FCVAR_HIDDEN|FCVAR_PROTECTED|FCVAR_SPONLY|FCVAR_ARCHIVE|FCVAR_NOTIFY|FCVAR_USERINFO|FCVAR_PRINTABLEONLY|FCVAR_UNLOGGED|FCVAR_NEVER_AS_STRING|FCVAR_REPLICATED|FCVAR_CHEAT|FCVAR_SS|FCVAR_DEMO|FCVAR_DONTRECORD|FCVAR_SS_ADDED|FCVAR_RELEASE|FCVAR_RELOAD_MATERIALS|FCVAR_RELOAD_TEXTURES|FCVAR_NOT_CONNECTED|FCVAR_MATERIAL_SYSTEM_THREAD|FCVAR_ARCHIVE_XBOX|FCVAR_ARCHIVE_GAMECONSOLE|FCVAR_ACCESSIBLE_FROM_THREADS|FCVAR_SERVER_CAN_EXECUTE|FCVAR_SERVER_CANNOT_QUERY|FCVAR_CLIENTCMD_CAN_EXECUTE)\\b"
308
+ }
309
+ ]
310
+ },
311
+ "enums": {
312
+ "patterns": [
313
+ {
314
+ "name": "support.constant.core.sourcepawn",
315
+ "match": "\\b(Plugin_Handled|Plugin_Continue|Plugin_Stop|Plugin_Changed)\\b"
316
+ },
317
+ {
318
+ "name": "support.constant.core.sourcepawn",
319
+ "match": "\\b(Identity_Core|Identity_Extension|Identity_Plugin)\\b"
320
+ },
321
+ {
322
+ "name": "support.constant.core.sourcepawn",
323
+ "match": "\\b(Plugin_Running|Plugin_Paused|Plugin_Error|Plugin_Loaded|Plugin_Failed|Plugin_Created|Plugin_Uncompiled|Plugin_BadLoad|Plugin_Evicted)\\b"
324
+ },
325
+ {
326
+ "name": "support.constant.core.sourcepawn",
327
+ "match": "\\b(Admin_Reservation|Admin_Generic|Admin_Kick|Admin_Ban|Admin_Unban|Admin_Slay|Admin_Changemap|Admin_Convars|Admin_Config|Admin_Chat|Admin_Vote|Admin_Password|Admin_RCON|Admin_Cheats|Admin_Root|Admin_Custom1|Admin_Custom2|Admin_Custom3|Admin_Custom4|Admin_Custom5|Admin_Custom6)\\b"
328
+ },
329
+ {
330
+ "name": "support.constant.core.sourcepawn",
331
+ "match": "\\b(Access_Real|Access_Effective)\\b"
332
+ },
333
+ {
334
+ "name": "support.constant.core.sourcepawn",
335
+ "match": "\\b(AdminCache_Overrides|AdminCache_Groups|AdminCache_Admins)\\b"
336
+ },
337
+ {
338
+ "name": "support.constant.core.sourcepawn",
339
+ "match": "\\b(CookieAccess_Public|CookieAccess_Protected|CookieAccess_Private)\\b"
340
+ },
341
+ {
342
+ "name": "support.constant.core.sourcepawn",
343
+ "match": "\\b(CookieMenu_YesNo|CookieMenu_YesNo_Int|CookieMenu_OnOff|CookieMenu_OnOff_Int)\\b"
344
+ },
345
+ {
346
+ "name": "support.constant.core.sourcepawn",
347
+ "match": "\\b(CookieMenuAction_DisplayOption|CookieMenuAction_SelectOption)\\b"
348
+ },
349
+ {
350
+ "name": "support.constant.core.sourcepawn",
351
+ "match": "\\b(SM_REPLY_TO_CONSOLE|SM_REPLY_TO_CHAT)\\b"
352
+ },
353
+ {
354
+ "name": "support.constant.core.sourcepawn",
355
+ "match": "\\b(ConVarBound_Upper|ConVarBound_Lower)\\b"
356
+ },
357
+ {
358
+ "name": "support.constant.core.sourcepawn",
359
+ "match": "\\b(ConVarQuery_Okay|ConVarQuery_NotFound|ConVarQuery_NotValid|ConVarQuery_Protected)\\b"
360
+ },
361
+ {
362
+ "name": "support.constant.core.sourcepawn",
363
+ "match": "\\b(PlInfo_Name|PlInfo_Author|PlInfo_Description|PlInfo_Version|PlInfo_URL)\\b"
364
+ },
365
+ {
366
+ "name": "support.constant.core.sourcepawn",
367
+ "match": "\\b(DBVal_Error|DBVal_TypeMismatch|DBVal_Null|DBVal_Data)\\b"
368
+ },
369
+ {
370
+ "name": "support.constant.core.sourcepawn",
371
+ "match": "\\b(DBBind_Int|DBBind_Float|DBBind_String)\\b"
372
+ },
373
+ {
374
+ "name": "support.constant.core.sourcepawn",
375
+ "match": "\\b(Prop_Send|Prop_Data)\\b"
376
+ },
377
+ {
378
+ "name": "support.constant.core.sourcepawn",
379
+ "match": "\\b(PropField_Unsupported|PropField_Integer|PropField_Float|PropField_Entity|PropField_Vector|PropField_String|PropField_String_T)\\b"
380
+ },
381
+ {
382
+ "name": "support.constant.core.sourcepawn",
383
+ "match": "\\b(EventHookMode_Pre|EventHookMode_Post|EventHookMode_PostNoCopy)\\b"
384
+ },
385
+ {
386
+ "name": "support.constant.core.sourcepawn",
387
+ "match": "\\b(FileType_Unknown|FileType_Directory|FileType_File)\\b"
388
+ },
389
+ {
390
+ "name": "support.constant.core.sourcepawn",
391
+ "match": "\\b(FileTime_LastAccess|FileTime_Created|FileTime_LastChange)\\b"
392
+ },
393
+ {
394
+ "name": "support.constant.core.sourcepawn",
395
+ "match": "\\b(Param_Any|Param_Cell|Param_Float|Param_String|Param_Array|Param_VarArgs|Param_CellByRef|Param_FloatByRef)\\b"
396
+ },
397
+ {
398
+ "name": "support.constant.core.sourcepawn",
399
+ "match": "\\b(ET_Ignore|ET_Single|ET_Event|ET_Hook)\\b"
400
+ },
401
+ {
402
+ "name": "support.constant.core.sourcepawn",
403
+ "match": "\\b(DialogType_Msg|DialogType_Menu|DialogType_Text|DialogType_Entry|DialogType_AskConnect)\\b"
404
+ },
405
+ {
406
+ "name": "support.constant.core.sourcepawn",
407
+ "match": "\\b(Engine_Unknown|Engine_Original|Engine_SourceSDK2006|Engine_SourceSDK2007|Engine_Left4Dead|Engine_DarkMessiah|Engine_Left4Dead2|Engine_AlienSwarm|Engine_BloodyGoodTime|Engine_EYE|Engine_Portal2|Engine_CSGO|Engine_CSS|Engine_DOTA|Engine_HL2DM|Engine_DODS|Engine_TF2|Engine_NuclearDawn|Engine_SDK2013|Engine_Blade|Engine_Insurgency|Engine_Contagion|Engine_BlackMesa)\\b"
408
+ },
409
+ {
410
+ "name": "support.constant.core.sourcepawn",
411
+ "match": "\\b(FindMap_Found|FindMap_NotFound|FindMap_FuzzyMatch|FindMap_NonCanonical|FindMap_PossiblyAvailable)\\b"
412
+ },
413
+ {
414
+ "name": "support.constant.core.sourcepawn",
415
+ "match": "\\b(KvData_None|KvData_String|KvData_Int|KvData_Float|KvData_Ptr|KvData_WString|KvData_Color|KvData_UInt64|KvData_NUMTYPES)\\b"
416
+ },
417
+ {
418
+ "name": "support.constant.core.sourcepawn",
419
+ "match": "\\b(Nominate_Added|Nominate_Replaced|Nominate_AlreadyInVote|Nominate_InvalidMap|Nominate_VoteFull)\\b"
420
+ },
421
+ {
422
+ "name": "support.constant.core.sourcepawn",
423
+ "match": "\\b(MapChange_Instant|MapChange_RoundEnd|MapChange_MapEnd)\\b"
424
+ },
425
+ {
426
+ "name": "support.constant.core.sourcepawn",
427
+ "match": "\\b(MenuStyle_Default|MenuStyle_Valve|MenuStyle_Radio)\\b"
428
+ },
429
+ {
430
+ "name": "support.constant.core.sourcepawn",
431
+ "match": "\\b(MenuCancel_Disconnected|MenuCancel_Interrupted|MenuCancel_Exit|MenuCancel_NoDisplay|MenuCancel_Timeout|MenuCancel_ExitBack)\\b"
432
+ },
433
+ {
434
+ "name": "support.constant.core.sourcepawn",
435
+ "match": "\\b(VoteCancel_Generic|VoteCancel_NoVotes)\\b"
436
+ },
437
+ {
438
+ "name": "support.constant.core.sourcepawn",
439
+ "match": "\\b(MenuEnd_Selected|MenuEnd_VotingDone|MenuEnd_VotingCancelled|MenuEnd_Cancelled|MenuEnd_Exit|MenuEnd_ExitBack)\\b"
440
+ },
441
+ {
442
+ "name": "support.constant.core.sourcepawn",
443
+ "match": "\\b(MenuSource_None|MenuSource_External|MenuSource_Normal|MenuSource_RawPanel)\\b"
444
+ },
445
+ {
446
+ "name": "support.constant.core.sourcepawn",
447
+ "match": "\\b(REGEX_ERROR_NONE|REGEX_ERROR_NOMATCH|REGEX_ERROR_NULL|REGEX_ERROR_BADOPTION|REGEX_ERROR_BADMAGIC|REGEX_ERROR_UNKNOWN_OPCODE|REGEX_ERROR_NOMEMORY|REGEX_ERROR_NOSUBSTRING|REGEX_ERROR_MATCHLIMIT|REGEX_ERROR_CALLOUT|REGEX_ERROR_BADUTF8|REGEX_ERROR_BADUTF8_OFFSET|REGEX_ERROR_PARTIAL|REGEX_ERROR_BADPARTIAL|REGEX_ERROR_INTERNAL|REGEX_ERROR_BADCOUNT|REGEX_ERROR_DFA_UITEM|REGEX_ERROR_DFA_UCOND|REGEX_ERROR_DFA_UMLIMIT|REGEX_ERROR_DFA_WSSIZE|REGEX_ERROR_DFA_RECURSE|REGEX_ERROR_RECURSIONLIMIT|REGEX_ERROR_NULLWSLIMIT|REGEX_ERROR_BADNEWLINE|REGEX_ERROR_BADOFFSET|REGEX_ERROR_SHORTUTF8|REGEX_ERROR_RECURSELOOP|REGEX_ERROR_JIT_STACKLIMIT|REGEX_ERROR_BADMODE|REGEX_ERROR_BADENDIANNESS|REGEX_ERROR_DFA_BADRESTART|REGEX_ERROR_JIT_BADOPTION|REGEX_ERROR_BADLENGTH)\\b"
448
+ },
449
+ {
450
+ "name": "support.constant.core.sourcepawn",
451
+ "match": "\\b(Use_Off|Use_On|Use_Set|Use_Toggle)\\b"
452
+ },
453
+ {
454
+ "name": "support.constant.core.sourcepawn",
455
+ "match": "\\b(SDKCall_Static|SDKCall_Entity|SDKCall_Player|SDKCall_GameRules|SDKCall_EntityList|SDKCall_Raw)\\b"
456
+ },
457
+ {
458
+ "name": "support.constant.core.sourcepawn",
459
+ "match": "\\b(SDKLibrary_Server|SDKLibrary_Engine)\\b"
460
+ },
461
+ {
462
+ "name": "support.constant.core.sourcepawn",
463
+ "match": "\\b(SDKConf_Virtual|SDKConf_Signature|SDKConf_Address)\\b"
464
+ },
465
+ {
466
+ "name": "support.constant.core.sourcepawn",
467
+ "match": "\\b(SDKType_CBaseEntity|SDKType_CBasePlayer|SDKType_Vector|SDKType_QAngle|SDKType_PlainOldData|SDKType_Float|SDKType_Edict|SDKType_String|SDKType_Bool)\\b"
468
+ },
469
+ {
470
+ "name": "support.constant.core.sourcepawn",
471
+ "match": "\\b(SDKPass_Pointer|SDKPass_Plain|SDKPass_ByValue|SDKPass_ByRef)\\b"
472
+ },
473
+ {
474
+ "name": "support.constant.core.sourcepawn",
475
+ "match": "\\b(RoundState_Init|RoundState_Pregame|RoundState_StartGame|RoundState_Preround|RoundState_RoundRunning|RoundState_TeamWin|RoundState_Restart|RoundState_Stalemate|RoundState_GameOver|RoundState_Bonus|RoundState_BetweenRounds)\\b"
476
+ },
477
+ {
478
+ "name": "support.constant.core.sourcepawn",
479
+ "match": "\\b(SMCParse_Continue|SMCParse_Halt|SMCParse_HaltFail)\\b"
480
+ },
481
+ {
482
+ "name": "support.constant.core.sourcepawn",
483
+ "match": "\\b(SMCError_Okay|SMCError_StreamOpen|SMCError_StreamError|SMCError_Custom|SMCError_InvalidSection1|SMCError_InvalidSection2|SMCError_InvalidSection3|SMCError_InvalidSection4|SMCError_InvalidSection5|SMCError_InvalidTokens|SMCError_TokenOverflow|SMCError_InvalidProperty1)\\b"
484
+ },
485
+ {
486
+ "name": "support.constant.core.sourcepawn",
487
+ "match": "\\b(TFHoliday_Invalid|TFHoliday_Birthday|TFHoliday_Halloween|TFHoliday_Christmas|TFHoliday_EndOfTheLine|TFHoliday_CommunityUpdate|TFHoliday_ValentinesDay|TFHoliday_MeetThePyro|TFHoliday_SpyVsEngyWar|TFHoliday_FullMoon|TFHoliday_HalloweenOrFullMoon|TFHoliday_HalloweenOrFullMoonOrValentines|TFHoliday_AprilFools)\\b"
488
+ },
489
+ {
490
+ "name": "support.constant.core.sourcepawn",
491
+ "match": "\\b(TF_CUSTOM_HEADSHOT|TF_CUSTOM_BACKSTAB|TF_CUSTOM_BURNING|TF_CUSTOM_WRENCH_FIX|TF_CUSTOM_MINIGUN|TF_CUSTOM_SUICIDE|TF_CUSTOM_TAUNT_HADOUKEN|TF_CUSTOM_BURNING_FLARE|TF_CUSTOM_TAUNT_HIGH_NOON|TF_CUSTOM_TAUNT_GRAND_SLAM|TF_CUSTOM_PENETRATE_MY_TEAM|TF_CUSTOM_PENETRATE_ALL_PLAYERS|TF_CUSTOM_TAUNT_FENCING|TF_CUSTOM_PENETRATE_HEADSHOT|TF_CUSTOM_TAUNT_ARROW_STAB|TF_CUSTOM_TELEFRAG|TF_CUSTOM_BURNING_ARROW|TF_CUSTOM_FLYINGBURN|TF_CUSTOM_PUMPKIN_BOMB|TF_CUSTOM_DECAPITATION|TF_CUSTOM_TAUNT_GRENADE|TF_CUSTOM_BASEBALL|TF_CUSTOM_CHARGE_IMPACT|TF_CUSTOM_TAUNT_BARBARIAN_SWING|TF_CUSTOM_AIR_STICKY_BURST|TF_CUSTOM_DEFENSIVE_STICKY|TF_CUSTOM_PICKAXE|TF_CUSTOM_ROCKET_DIRECTHIT|TF_CUSTOM_TAUNT_UBERSLICE|TF_CUSTOM_PLAYER_SENTRY|TF_CUSTOM_STANDARD_STICKY|TF_CUSTOM_SHOTGUN_REVENGE_CRIT|TF_CUSTOM_TAUNT_ENGINEER_SMASH|TF_CUSTOM_BLEEDING|TF_CUSTOM_GOLD_WRENCH|TF_CUSTOM_CARRIED_BUILDING|TF_CUSTOM_COMBO_PUNCH|TF_CUSTOM_TAUNT_ENGINEER_ARM|TF_CUSTOM_FISH_KILL|TF_CUSTOM_TRIGGER_HURT|TF_CUSTOM_DECAPITATION_BOSS|TF_CUSTOM_STICKBOMB_EXPLOSION|TF_CUSTOM_AEGIS_ROUND|TF_CUSTOM_FLARE_EXPLOSION|TF_CUSTOM_BOOTS_STOMP|TF_CUSTOM_PLASMA|TF_CUSTOM_PLASMA_CHARGED|TF_CUSTOM_PLASMA_GIB|TF_CUSTOM_PRACTICE_STICKY|TF_CUSTOM_EYEBALL_ROCKET|TF_CUSTOM_HEADSHOT_DECAPITATION|TF_CUSTOM_TAUNT_ARMAGEDDON|TF_CUSTOM_FLARE_PELLET|TF_CUSTOM_CLEAVER|TF_CUSTOM_CLEAVER_CRIT|TF_CUSTOM_SAPPER_RECORDER_DEATH|TF_CUSTOM_MERASMUS_PLAYER_BOMB|TF_CUSTOM_MERASMUS_GRENADE|TF_CUSTOM_MERASMUS_ZAP|TF_CUSTOM_MERASMUS_DECAPITATION|TF_CUSTOM_CANNONBALL_PUSH|TF_CUSTOM_TAUNT_ALLCLASS_GUITAR_RIFF|TF_CUSTOM_THROWABLE|TF_CUSTOM_THROWABLE_KILL|TF_CUSTOM_SPELL_TELEPORT|TF_CUSTOM_SPELL_SKELETON|TF_CUSTOM_SPELL_MIRV|TF_CUSTOM_SPELL_METEOR|TF_CUSTOM_SPELL_LIGHTNING|TF_CUSTOM_SPELL_FIREBALL|TF_CUSTOM_SPELL_MONOCULUS|TF_CUSTOM_SPELL_BLASTJUMP|TF_CUSTOM_SPELL_BATS|TF_CUSTOM_SPELL_TINY|TF_CUSTOM_KART|TF_CUSTOM_GIANT_HAMMER|TF_CUSTOM_RUNE_REFLECT)\\b"
492
+ },
493
+ {
494
+ "name": "support.constant.core.sourcepawn",
495
+ "match": "\\b(TF_WEAPON_NONE|TF_WEAPON_BAT|TF_WEAPON_BAT_WOOD|TF_WEAPON_BOTTLE|TF_WEAPON_FIREAXE|TF_WEAPON_CLUB|TF_WEAPON_CROWBAR|TF_WEAPON_KNIFE|TF_WEAPON_FISTS|TF_WEAPON_SHOVEL|TF_WEAPON_WRENCH|TF_WEAPON_BONESAW|TF_WEAPON_SHOTGUN_PRIMARY|TF_WEAPON_SHOTGUN_SOLDIER|TF_WEAPON_SHOTGUN_HWG|TF_WEAPON_SHOTGUN_PYRO|TF_WEAPON_SCATTERGUN|TF_WEAPON_SNIPERRIFLE|TF_WEAPON_MINIGUN|TF_WEAPON_SMG|TF_WEAPON_SYRINGEGUN_MEDIC|TF_WEAPON_TRANQ|TF_WEAPON_ROCKETLAUNCHER|TF_WEAPON_GRENADELAUNCHER|TF_WEAPON_PIPEBOMBLAUNCHER|TF_WEAPON_FLAMETHROWER|TF_WEAPON_GRENADE_NORMAL|TF_WEAPON_GRENADE_CONCUSSION|TF_WEAPON_GRENADE_NAIL|TF_WEAPON_GRENADE_MIRV|TF_WEAPON_GRENADE_MIRV_DEMOMAN|TF_WEAPON_GRENADE_NAPALM|TF_WEAPON_GRENADE_GAS|TF_WEAPON_GRENADE_EMP|TF_WEAPON_GRENADE_CALTROP|TF_WEAPON_GRENADE_PIPEBOMB|TF_WEAPON_GRENADE_SMOKE_BOMB|TF_WEAPON_GRENADE_HEAL|TF_WEAPON_GRENADE_STUNBALL|TF_WEAPON_GRENADE_JAR|TF_WEAPON_GRENADE_JAR_MILK|TF_WEAPON_PISTOL|TF_WEAPON_PISTOL_SCOUT|TF_WEAPON_REVOLVER|TF_WEAPON_NAILGUN|TF_WEAPON_PDA|TF_WEAPON_PDA_ENGINEER_BUILD|TF_WEAPON_PDA_ENGINEER_DESTROY|TF_WEAPON_PDA_SPY|TF_WEAPON_BUILDER|TF_WEAPON_MEDIGUN|TF_WEAPON_GRENADE_MIRVBOMB|TF_WEAPON_FLAMETHROWER_ROCKET|TF_WEAPON_GRENADE_DEMOMAN|TF_WEAPON_SENTRY_BULLET|TF_WEAPON_SENTRY_ROCKET|TF_WEAPON_DISPENSER|TF_WEAPON_INVIS|TF_WEAPON_FLAREGUN|TF_WEAPON_LUNCHBOX|TF_WEAPON_JAR|TF_WEAPON_COMPOUND_BOW|TF_WEAPON_BUFF_ITEM|TF_WEAPON_PUMPKIN_BOMB|TF_WEAPON_SWORD|TF_WEAPON_DIRECTHIT|TF_WEAPON_LIFELINE|TF_WEAPON_LASER_POINTER|TF_WEAPON_DISPENSER_GUN|TF_WEAPON_SENTRY_REVENGE|TF_WEAPON_JAR_MILK|TF_WEAPON_HANDGUN_SCOUT_PRIMARY|TF_WEAPON_BAT_FISH|TF_WEAPON_CROSSBOW|TF_WEAPON_STICKBOMB|TF_WEAPON_HANDGUN_SCOUT_SEC|TF_WEAPON_SODA_POPPER|TF_WEAPON_SNIPERRIFLE_DECAP|TF_WEAPON_RAYGUN|TF_WEAPON_PARTICLE_CANNON|TF_WEAPON_MECHANICAL_ARM|TF_WEAPON_DRG_POMSON|TF_WEAPON_BAT_GIFTWRAP|TF_WEAPON_GRENADE_ORNAMENT|TF_WEAPON_RAYGUN_REVENGE|TF_WEAPON_PEP_BRAWLER_BLASTER|TF_WEAPON_CLEAVER|TF_WEAPON_GRENADE_CLEAVER|TF_WEAPON_STICKY_BALL_LAUNCHER|TF_WEAPON_GRENADE_STICKY_BALL|TF_WEAPON_SHOTGUN_BUILDING_RESCUE|TF_WEAPON_CANNON|TF_WEAPON_THROWABLE|TF_WEAPON_GRENADE_THROWABLE|TF_WEAPON_PDA_SPY_BUILD|TF_WEAPON_GRENADE_WATERBALLOON|TF_WEAPON_HARVESTER_SAW|TF_WEAPON_SPELLBOOK|TF_WEAPON_SPELLBOOK_PROJECTILE|TF_WEAPON_SNIPERRIFLE_CLASSIC|TF_WEAPON_PARACHUTE|TF_WEAPON_GRAPPLINGHOOK|TF_WEAPON_PASSTIME_GUN|TF_WEAPON_CHARGED_SMG)\\b"
496
+ },
497
+ {
498
+ "name": "support.constant.core.sourcepawn",
499
+ "match": "\\b(TFWeaponSlot_Primary|TFWeaponSlot_Secondary|TFWeaponSlot_Melee|TFWeaponSlot_Grenade|TFWeaponSlot_Building|TFWeaponSlot_PDA|TFWeaponSlot_Item1|TFWeaponSlot_Item2)\\b"
500
+ },
501
+ {
502
+ "name": "support.constant.core.sourcepawn",
503
+ "match": "\\b(TF_FLAGEVENT_PICKEDUP|TF_FLAGEVENT_CAPTURED|TF_FLAGEVENT_DEFENDED|TF_FLAGEVENT_DROPPED|TF_FLAGEVENT_RETURNED)\\b"
504
+ },
505
+ {
506
+ "name": "support.constant.core.sourcepawn",
507
+ "match": "\\b(TFResource_Ping|TFResource_Score|TFResource_Deaths|TFResource_TotalScore|TFResource_Captures|TFResource_Defenses|TFResource_Dominations|TFResource_Revenge|TFResource_BuildingsDestroyed|TFResource_Headshots|TFResource_Backstabs|TFResource_HealPoints|TFResource_Invulns|TFResource_Teleports|TFResource_ResupplyPoints|TFResource_KillAssists|TFResource_MaxHealth|TFResource_PlayerClass)\\b"
508
+ },
509
+ {
510
+ "name": "support.constant.core.sourcepawn",
511
+ "match": "\\b(UM_BitBuf|UM_Protobuf)\\b"
512
+ },
513
+ {
514
+ "name": "support.constant.core.sourcepawn",
515
+ "match": "\\b(Command_Deny|Command_Allow)\\b"
516
+ },
517
+ {
518
+ "name": "support.constant.core.sourcepawn",
519
+ "match": "\\b(Override_Command|Override_CommandGroup)\\b"
520
+ },
521
+ {
522
+ "name": "support.constant.core.sourcepawn",
523
+ "match": "\\b(APLRes_Success|APLRes_Failure|APLRes_SilentFailure)\\b"
524
+ },
525
+ {
526
+ "name": "support.constant.core.sourcepawn",
527
+ "match": "\\b(Address_Null|Address_MinimumValid)\\b"
528
+ },
529
+ {
530
+ "name": "support.constant.core.sourcepawn",
531
+ "match": "\\b(Sort_Ascending|Sort_Descending|Sort_Random)\\b"
532
+ },
533
+ {
534
+ "name": "support.constant.core.sourcepawn",
535
+ "match": "\\b(Sort_Integer|Sort_Float|Sort_String)\\b"
536
+ },
537
+ {
538
+ "name": "support.constant.core.sourcepawn",
539
+ "match": "\\b(Listen_Default|Listen_Yes|Listen_No)\\b"
540
+ },
541
+ {
542
+ "name": "support.constant.core.sourcepawn",
543
+ "match": "\\b(RayType_Infinite|RayType_EndPoint)\\b"
544
+ },
545
+ {
546
+ "name": "support.constant.core.sourcepawn",
547
+ "match": "\\b(CSRoundEnd_TargetBombed|CSRoundEnd_VIPEscaped|CSRoundEnd_VIPKilled|CSRoundEnd_TerroristsEscaped|CSRoundEnd_CTStoppedEscape|CSRoundEnd_TerroristsStopped|CSRoundEnd_BombDefused|CSRoundEnd_CTWin|CSRoundEnd_TerroristWin|CSRoundEnd_Draw|CSRoundEnd_HostagesRescued|CSRoundEnd_TargetSaved|CSRoundEnd_HostagesNotRescued|CSRoundEnd_TerroristsNotEscaped|CSRoundEnd_VIPNotEscaped|CSRoundEnd_GameStart|CSRoundEnd_TerroristsSurrender|CSRoundEnd_CTSurrender|CSRoundEnd_TerroristsPlanted|CSRoundEnd_CTsReachedHostage)\\b"
548
+ },
549
+ {
550
+ "name": "support.constant.core.sourcepawn",
551
+ "match": "\\b(CSWeapon_NONE|CSWeapon_P228|CSWeapon_GLOCK|CSWeapon_SCOUT|CSWeapon_HEGRENADE|CSWeapon_XM1014|CSWeapon_C4|CSWeapon_MAC10|CSWeapon_AUG|CSWeapon_SMOKEGRENADE|CSWeapon_ELITE|CSWeapon_FIVESEVEN|CSWeapon_UMP45|CSWeapon_SG550|CSWeapon_GALIL|CSWeapon_FAMAS|CSWeapon_USP|CSWeapon_AWP|CSWeapon_MP5NAVY|CSWeapon_M249|CSWeapon_M3|CSWeapon_M4A1|CSWeapon_TMP|CSWeapon_G3SG1|CSWeapon_FLASHBANG|CSWeapon_DEAGLE|CSWeapon_SG552|CSWeapon_AK47|CSWeapon_KNIFE|CSWeapon_P90|CSWeapon_SHIELD|CSWeapon_KEVLAR|CSWeapon_ASSAULTSUIT|CSWeapon_NIGHTVISION|CSWeapon_GALILAR|CSWeapon_BIZON|CSWeapon_MAG7|CSWeapon_NEGEV|CSWeapon_SAWEDOFF|CSWeapon_TEC9|CSWeapon_TASER|CSWeapon_HKP2000|CSWeapon_MP7|CSWeapon_MP9|CSWeapon_NOVA|CSWeapon_P250|CSWeapon_SCAR17|CSWeapon_SCAR20|CSWeapon_SG556|CSWeapon_SSG08|CSWeapon_KNIFE_GG|CSWeapon_MOLOTOV|CSWeapon_DECOY|CSWeapon_INCGRENADE|CSWeapon_DEFUSER)\\b"
552
+ },
553
+ {
554
+ "name": "support.constant.core.sourcepawn",
555
+ "match": "\\b(AuthId_Engine|AuthId_Steam2|AuthId_Steam3|AuthId_SteamID64)\\b"
556
+ },
557
+ {
558
+ "name": "support.constant.core.sourcepawn",
559
+ "match": "\\b(NetFlow_Outgoing|NetFlow_Incoming|NetFlow_Both)\\b"
560
+ },
561
+ {
562
+ "name": "support.constant.core.sourcepawn",
563
+ "match": "\\b(MenuAction_Start|MenuAction_Display|MenuAction_Select|MenuAction_Cancel|MenuAction_End|MenuAction_VoteEnd|MenuAction_VoteStart|MenuAction_VoteCancel|MenuAction_DrawItem|MenuAction_DisplayItem)\\b"
564
+ },
565
+ {
566
+ "name": "support.constant.core.sourcepawn",
567
+ "match": "\\b(TopMenuAction_DisplayOption|TopMenuAction_DisplayTitle|TopMenuAction_SelectOption|TopMenuAction_DrawOption|TopMenuAction_RemoveObject)\\b"
568
+ },
569
+ {
570
+ "name": "support.constant.core.sourcepawn",
571
+ "match": "\\b(TopMenuObject_Category|TopMenuObject_Item)\\b"
572
+ },
573
+ {
574
+ "name": "support.constant.core.sourcepawn",
575
+ "match": "\\b(TopMenuPosition_Start|TopMenuPosition_LastRoot|TopMenuPosition_LastCategory)\\b"
576
+ },
577
+ {
578
+ "name": "support.constant.core.sourcepawn",
579
+ "match": "\\b(TFClass_Unknown|TFClass_Scout|TFClass_Sniper|TFClass_Soldier|TFClass_DemoMan|TFClass_Medic|TFClass_Heavy|TFClass_Pyro|TFClass_Spy|TFClass_Engineer)\\b"
580
+ },
581
+ {
582
+ "name": "support.constant.core.sourcepawn",
583
+ "match": "\\b(TFCond_Slowed|TFCond_Zoomed|TFCond_Disguising|TFCond_Disguised|TFCond_Cloaked|TFCond_Ubercharged|TFCond_TeleportedGlow|TFCond_Taunting|TFCond_UberchargeFading|TFCond_Unknown1|TFCond_CloakFlicker|TFCond_Teleporting|TFCond_Kritzkrieged|TFCond_Unknown2|TFCond_TmpDamageBonus|TFCond_DeadRingered|TFCond_Bonked|TFCond_Dazed|TFCond_Buffed|TFCond_Charging|TFCond_DemoBuff|TFCond_CritCola|TFCond_InHealRadius|TFCond_Healing|TFCond_OnFire|TFCond_Overhealed|TFCond_Jarated|TFCond_Bleeding|TFCond_DefenseBuffed|TFCond_Milked|TFCond_MegaHeal|TFCond_RegenBuffed|TFCond_MarkedForDeath|TFCond_NoHealingDamageBuff|TFCond_SpeedBuffAlly|TFCond_HalloweenCritCandy|TFCond_CritCanteen|TFCond_CritDemoCharge|TFCond_CritHype|TFCond_CritOnFirstBlood|TFCond_CritOnWin|TFCond_CritOnFlagCapture|TFCond_CritOnKill|TFCond_RestrictToMelee|TFCond_DefenseBuffNoCritBlock|TFCond_Reprogrammed|TFCond_CritMmmph|TFCond_DefenseBuffMmmph|TFCond_FocusBuff|TFCond_DisguiseRemoved|TFCond_MarkedForDeathSilent|TFCond_DisguisedAsDispenser|TFCond_Sapped|TFCond_UberchargedHidden|TFCond_UberchargedCanteen|TFCond_HalloweenBombHead|TFCond_HalloweenThriller|TFCond_RadiusHealOnDamage|TFCond_CritOnDamage|TFCond_UberchargedOnTakeDamage|TFCond_UberBulletResist|TFCond_UberBlastResist|TFCond_UberFireResist|TFCond_SmallBulletResist|TFCond_SmallBlastResist|TFCond_SmallFireResist|TFCond_Stealthed|TFCond_MedigunDebuff|TFCond_StealthedUserBuffFade|TFCond_BulletImmune|TFCond_BlastImmune|TFCond_FireImmune|TFCond_PreventDeath|TFCond_MVMBotRadiowave|TFCond_HalloweenSpeedBoost|TFCond_HalloweenQuickHeal|TFCond_HalloweenGiant|TFCond_HalloweenTiny|TFCond_HalloweenInHell|TFCond_HalloweenGhostMode|TFCond_DodgeChance|TFCond_Parachute|TFCond_BlastJumping|TFCond_HalloweenKart|TFCond_HalloweenKartDash|TFCond_BalloonHead|TFCond_MeleeOnly|TFCond_SwimmingCurse|TFCond_HalloweenKartNoTurn|TFCond_HalloweenKartCage|TFCond_HasRune|TFCond_RuneStrength|TFCond_RuneHaste|TFCond_RuneRegen|TFCond_RuneResist|TFCond_RuneVampire|TFCond_RuneWarlock|TFCond_RunePrecision|TFCond_RuneAgility|TFCond_MiniCritOnKill|TFCond_ObscuredSmoke|TFCond_FreezeInput|TFCond_GrapplingHook|TFCond_GrapplingHookSafeFall|TFCond_GrapplingHookLatched|TFCond_GrapplingHookBleeding|TFCond_AfterburnImmune|TFCond_RuneKnockout|TFCond_RuneImbalance|TFCond_CritRuneTemp|TFCond_PasstimeInterception|TFCond_SwimmingNoEffects|TFCond_EyeaductUnderworld|TFCond_KingRune|TFCond_PlagueRune|TFCond_SupernovaRune|TFCond_Plague|TFCond_KingAura|TFCond_SpawnOutline|TFCond_KnockedIntoAir|TFCond_CompetitiveWinner|TFCond_CompetitiveLoser|TFCond_NoTaunting|TFCondDuration_Infinite)\\b"
584
+ },
585
+ {
586
+ "name": "support.constant.core.sourcepawn",
587
+ "match": "\\b(TFObjectMode_None|TFObjectMode_Entrance|TFObjectMode_Exit)\\b"
588
+ },
589
+ {
590
+ "name": "support.constant.core.sourcepawn",
591
+ "match": "\\b(TFObject_CartDispenser|TFObject_Dispenser|TFObject_Teleporter|TFObject_Sentry|TFObject_Sapper)\\b"
592
+ },
593
+ {
594
+ "name": "support.constant.core.sourcepawn",
595
+ "match": "\\b(TFTeam_Unassigned|TFTeam_Spectator|TFTeam_Red|TFTeam_Blue)\\b"
596
+ },
597
+ {
598
+ "name": "support.constant.core.sourcepawn",
599
+ "match": "\\b(FeatureStatus_Available|FeatureStatus_Unavailable|FeatureStatus_Unknown)\\b"
600
+ },
601
+ {
602
+ "name": "support.constant.core.sourcepawn",
603
+ "match": "\\b(NumberType_Int8|NumberType_Int16|NumberType_Int32)\\b"
604
+ },
605
+ {
606
+ "name": "support.constant.core.sourcepawn",
607
+ "match": "\\b(FeatureType_Native|FeatureType_Capability)\\b"
608
+ },
609
+ {
610
+ "name": "support.constant.core.sourcepawn",
611
+ "match": "\\b(SDKHook_EndTouch|SDKHook_FireBulletsPost|SDKHook_OnTakeDamage|SDKHook_OnTakeDamagePost|SDKHook_PreThink|SDKHook_PostThink|SDKHook_SetTransmit|SDKHook_Spawn|SDKHook_StartTouch|SDKHook_Think|SDKHook_Touch|SDKHook_TraceAttack|SDKHook_TraceAttackPost|SDKHook_WeaponCanSwitchTo|SDKHook_WeaponCanUse|SDKHook_WeaponDrop|SDKHook_WeaponEquip|SDKHook_WeaponSwitch|SDKHook_ShouldCollide|SDKHook_PreThinkPost|SDKHook_PostThinkPost|SDKHook_ThinkPost|SDKHook_EndTouchPost|SDKHook_GroundEntChangedPost|SDKHook_SpawnPost|SDKHook_StartTouchPost|SDKHook_TouchPost|SDKHook_VPhysicsUpdate|SDKHook_VPhysicsUpdatePost|SDKHook_WeaponCanSwitchToPost|SDKHook_WeaponCanUsePost|SDKHook_WeaponDropPost|SDKHook_WeaponEquipPost|SDKHook_WeaponSwitchPost|SDKHook_Use|SDKHook_UsePost|SDKHook_Reload|SDKHook_ReloadPost|SDKHook_GetMaxHealth|SDKHook_Blocked|SDKHook_BlockedPost|SDKHook_OnTakeDamageAlive|SDKHook_OnTakeDamageAlivePost|SDKHook_CanBeAutobalanced)\\b"
612
+ }
613
+ ]
614
+ },
615
+ "keywords": {
616
+ "patterns": [
617
+ {
618
+ "name": "keyword.control.statement.sourcepawn",
619
+ "match": "\\b(if|else|for|while|do|switch|case|default)\\b"
620
+ },
621
+ {
622
+ "name": "keyword.sourcepawn",
623
+ "match": "\\b(return|break|continue|new|decl|delete|forward|native|property|public|stock|enum|funcenum|functag|methodmap|struct|typedef|typeset|static|view_as)\\b"
624
+ }
625
+ ]
626
+ },
627
+ "strings": {
628
+ "patterns": [
629
+ {
630
+ "name": "string.quoted.single.sourcepawn",
631
+ "begin": "'",
632
+ "end": "'",
633
+ "patterns": [
634
+ {
635
+ "name": "constant.character.escape.sourcepawn",
636
+ "match": "\\\\."
637
+ }
638
+ ]
639
+ },
640
+ {
641
+ "name": "string.quoted.double.sourcepawn",
642
+ "begin": "\"",
643
+ "end": "\"",
644
+ "patterns": [
645
+ {
646
+ "name": "constant.character.escape.sourcepawn",
647
+ "match": "\\\\."
648
+ }
649
+ ]
650
+ }
651
+ ]
652
+ }
653
+ }
654
+ }