|
288 | 288 | "match": "(?:\\b|(?<=\\^\\d))(this|super|arguments)\\b" |
289 | 289 | }, |
290 | 290 | { |
| 291 | + "comment": "UPPER_SNAKE_CASE constants", |
291 | 292 | "name": "variable.other.constant.noshift", |
292 | 293 | "match": "(?:\\b|(?<=\\^\\d))[A-Z][A-Z0-9_]{2,}\\b" |
293 | 294 | }, |
294 | 295 | { |
295 | | - "comment": "PascalCase: starts with ^3 (= uppercase first letter) or raw [A-Z]", |
| 296 | + "comment": "^3-capitalized ALL_CAPS constant (e.g. ^3m^3a^3x_^3s^3i^3z^3e)", |
| 297 | + "name": "variable.other.constant.noshift", |
| 298 | + "match": "(?:\\b|(?=\\^3))(?:\\^3[a-zA-Z])(?:\\^3[a-zA-Z0-9]|_)*(?![a-zA-Z0-9_$])" |
| 299 | + }, |
| 300 | + { |
| 301 | + "comment": "Class/type name after class/extends/new keyword", |
| 302 | + "name": "entity.name.type.noshift", |
| 303 | + "match": "(?<=\\b(?:class|extends|new)\\s)((?:\\^3)?[a-zA-Z_$](?:(?:\\^3)?[a-zA-Z0-9_$])*)" |
| 304 | + }, |
| 305 | + { |
| 306 | + "comment": "Raw PascalCase identifier (starts with uppercase letter)", |
296 | 307 | "name": "entity.name.type.noshift", |
297 | | - "match": "(?:\\b|(?<=\\^\\d)|(?=\\^3))(?:\\^3[a-zA-Z](?:(?:\\^3)?[a-zA-Z0-9_$])*|[A-Z][a-zA-Z0-9_$]*)" |
| 308 | + "match": "(?:\\b|(?<=\\^\\d))[A-Z][a-zA-Z0-9_$]*\\b" |
298 | 309 | }, |
299 | 310 | { |
| 311 | + "comment": "Regular variable (may contain ^3 for camelCase)", |
300 | 312 | "name": "variable.other.noshift", |
301 | | - "match": "(?:\\b|(?<=\\^\\d))[a-zA-Z_$](?:(?:\\^3)?[a-zA-Z0-9_$])*" |
| 313 | + "match": "(?:\\b|(?<=\\^\\d)|(?=\\^3))(?:\\^3)?[a-zA-Z_$](?:(?:\\^3)?[a-zA-Z0-9_$])*" |
302 | 314 | } |
303 | 315 | ] |
304 | 316 | } |
|
0 commit comments