|
38 | 38 | "match": "\\b(const|extern|register|restrict|static|volatile|inline|nointerpolation|precise|row_major|column_major|snorm|unorm|globallycoherent|layout)\\b", |
39 | 39 | "name": "storage.modifier.slang" |
40 | 40 | }, |
41 | | - { |
42 | | - "match": "\\bk[A-Z]\\w*\\b", |
43 | | - "name": "constant.other.variable.mac-classic.slang" |
44 | | - }, |
45 | | - { |
46 | | - "match": "\\bg[A-Z]\\w*\\b", |
47 | | - "name": "variable.other.readwrite.global.mac-classic.slang" |
48 | | - }, |
49 | | - { |
50 | | - "match": "\\bs[A-Z]\\w*\\b", |
51 | | - "name": "variable.other.readwrite.static.mac-classic.slang" |
52 | | - }, |
53 | 41 | { |
54 | 42 | "match": "\\b(nullptr|none|true|false)\\b", |
55 | 43 | "name": "constant.language.slang" |
|
472 | 460 | "patterns": [ |
473 | 461 | { |
474 | 462 | "include": "#block_innards" |
| 463 | + }, |
| 464 | + { |
| 465 | + "name": "meta.variable.qualifer", |
| 466 | + "begin":"(?x) (\\b([a-zA-Z_][a-zA-Z_0-9]*)\\b)\\s*(?=:\\s*((read|write).*))", |
| 467 | + "beginCaptures": { |
| 468 | + "1": { |
| 469 | + "name": "variable.other.slang" |
| 470 | + }, |
| 471 | + "3": { |
| 472 | + "patterns": [ |
| 473 | + { |
| 474 | + "include": "#access_qualifier" |
| 475 | + } |
| 476 | + ] |
| 477 | + } |
| 478 | + }, |
| 479 | + "end": ";", |
| 480 | + "endCaptures": { |
| 481 | + "0": { |
| 482 | + "name": "punctuation.semicolon.slang" |
| 483 | + } |
| 484 | + }, |
| 485 | + "patterns": [ |
| 486 | + { |
| 487 | + "include": "#access_qualifier" |
| 488 | + } |
| 489 | + ] |
475 | 490 | } |
476 | 491 | ] |
477 | 492 | } |
|
2895 | 2910 | "name": "storage.type.built-in.primitive.slang" |
2896 | 2911 | }, |
2897 | 2912 | { |
2898 | | - "match": "\\b(namespace|enum|enum\\s+class|struct|class|interface)\\s+([A-Za-z0-9_]+)((\\.|::)([A-Za-z0-9_]+))*", |
| 2913 | + "match": "\\b(namespace|enum|enum\\s+class|struct|class|interface)\\s+(\\[.*\\])?\\s*([A-Za-z0-9_]+)((\\.|::)([A-Za-z0-9_]+))*", |
2899 | 2914 | "captures":{ |
2900 | 2915 | "1": {"name": "keyword.$1.slang" }, |
2901 | | - "2": {"name": "support.type.$1.slang" }, |
2902 | | - "4": {"name": "punctuation.separator.dot-access.slang"}, |
2903 | | - "5": {"name": "support.type.$1.slang" } |
| 2916 | + "3": { |
| 2917 | + "patterns": [ |
| 2918 | + { |
| 2919 | + "include": "meta.bracket.square.access.slang" |
| 2920 | + } |
| 2921 | + ] |
| 2922 | + }, |
| 2923 | + "4": {"name": "support.type.$1.slang" }, |
| 2924 | + "6": {"name": "punctuation.separator.dot-access.slang"}, |
| 2925 | + "7": {"name": "support.type.$1.slang" } |
2904 | 2926 | } |
2905 | 2927 | }, |
2906 | 2928 | { |
|
3351 | 3373 | ] |
3352 | 3374 | }, |
3353 | 3375 | "vararg_ellipses": { |
3354 | | - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", |
3355 | | - "name": "punctuation.vararg-ellipses.slang" |
| 3376 | + "match": "(?<!\\.)\\.\\.\\.(?!\\.)", |
| 3377 | + "name": "punctuation.vararg-ellipses.slang" |
| 3378 | + }, |
| 3379 | + "shader_stages": { |
| 3380 | + "match": "\\b(vertex|fragment|compute|hull|domain|geometry|raygen|intersection|anyhit|closesthit|miss|mesh|amplification|callable)\\b", |
| 3381 | + "name": "variable.other.constant.shader_stage" |
| 3382 | + }, |
| 3383 | + "access_qualifier": { |
| 3384 | + "name": "meta.variable.qualifer.access_qualifier", |
| 3385 | + "match": "(?x)(:)\\s*\\b(read|write)\\b \\((([A-z]+)(,\\s*([A-z]+)\\s*)*)?(\\))", |
| 3386 | + "captures": { |
| 3387 | + "1": { |
| 3388 | + "name": "punctuation.separator.delimiter.colon.slang" |
| 3389 | + }, |
| 3390 | + "2": { |
| 3391 | + "name": "keyword.other.additional.slang" |
| 3392 | + }, |
| 3393 | + "3": { |
| 3394 | + "patterns": [ |
| 3395 | + { |
| 3396 | + "include":"#shader_stages" |
| 3397 | + } |
| 3398 | + ] |
| 3399 | + }, |
| 3400 | + "5": { |
| 3401 | + "patterns": [ |
| 3402 | + { |
| 3403 | + "include":"#shader_stages" |
| 3404 | + } |
| 3405 | + ] |
| 3406 | + } |
| 3407 | + } |
3356 | 3408 | } |
3357 | 3409 | }, |
3358 | 3410 | "name": "Slang" |
|
0 commit comments