rewrite semantic token types union and opaque as type

The default themes on vscode color these the same as all other identifiers.
This commit is contained in:
Veikka Tuominen 2023-05-29 01:17:51 +03:00
parent 6471db5274
commit cda0fd4386
2 changed files with 11 additions and 8 deletions

View File

@ -115,9 +115,10 @@ const Builder = struct {
} }
} }
fn addDirect(self: *Builder, token_type: TokenType, token_modifiers: TokenModifiers, loc: offsets.Loc) error{OutOfMemory}!void { fn addDirect(self: *Builder, param_token_type: TokenType, token_modifiers: TokenModifiers, loc: offsets.Loc) error{OutOfMemory}!void {
std.debug.assert(loc.start <= loc.end); std.debug.assert(loc.start <= loc.end);
if (loc.start < self.previous_source_index) return; if (loc.start < self.previous_source_index) return;
var token_type = param_token_type;
switch (token_type) { switch (token_type) {
.type, .type,
.enumMember, .enumMember,
@ -127,9 +128,11 @@ const Builder = struct {
.namespace, .namespace,
.@"struct", .@"struct",
.@"enum", .@"enum",
=> {},
.@"union", .@"union",
.@"opaque", .@"opaque",
=> {}, => token_type = .type,
.parameter, .parameter,
.variable, .variable,

View File

@ -568,7 +568,7 @@ test "semantic tokens - union" {
\\const Foo = union {}; \\const Foo = union {};
, &.{ , &.{
.{ "const", .keyword, .{} }, .{ "const", .keyword, .{} },
.{ "Foo", .@"union", .{ .declaration = true } }, .{ "Foo", .type, .{ .declaration = true } },
.{ "=", .operator, .{} }, .{ "=", .operator, .{} },
.{ "union", .keyword, .{} }, .{ "union", .keyword, .{} },
}); });
@ -576,7 +576,7 @@ test "semantic tokens - union" {
\\const Foo = packed union(enum) {}; \\const Foo = packed union(enum) {};
, &.{ , &.{
.{ "const", .keyword, .{} }, .{ "const", .keyword, .{} },
.{ "Foo", .@"union", .{ .declaration = true } }, .{ "Foo", .type, .{ .declaration = true } },
.{ "=", .operator, .{} }, .{ "=", .operator, .{} },
.{ "packed", .keyword, .{} }, .{ "packed", .keyword, .{} },
.{ "union", .keyword, .{} }, .{ "union", .keyword, .{} },
@ -588,7 +588,7 @@ test "semantic tokens - union" {
\\}; \\};
, &.{ , &.{
.{ "const", .keyword, .{} }, .{ "const", .keyword, .{} },
.{ "Foo", .@"union", .{ .declaration = true } }, .{ "Foo", .type, .{ .declaration = true } },
.{ "=", .operator, .{} }, .{ "=", .operator, .{} },
.{ "union", .keyword, .{} }, .{ "union", .keyword, .{} },
.{ "E", .variable, .{} }, .{ "E", .variable, .{} },
@ -601,7 +601,7 @@ test "semantic tokens - union" {
\\}; \\};
, &.{ , &.{
.{ "const", .keyword, .{} }, .{ "const", .keyword, .{} },
.{ "Foo", .@"union", .{ .declaration = true } }, .{ "Foo", .type, .{ .declaration = true } },
.{ "=", .operator, .{} }, .{ "=", .operator, .{} },
.{ "union", .keyword, .{} }, .{ "union", .keyword, .{} },
.{ "E", .variable, .{} }, .{ "E", .variable, .{} },
@ -615,7 +615,7 @@ test "semantic tokens - union" {
\\}; \\};
, &.{ , &.{
.{ "const", .keyword, .{} }, .{ "const", .keyword, .{} },
.{ "Foo", .@"union", .{ .declaration = true } }, .{ "Foo", .type, .{ .declaration = true } },
.{ "=", .operator, .{} }, .{ "=", .operator, .{} },
.{ "union", .keyword, .{} }, .{ "union", .keyword, .{} },
.{ "E", .variable, .{} }, .{ "E", .variable, .{} },
@ -688,7 +688,7 @@ test "semantic tokens - opaque" {
\\const Foo = opaque {}; \\const Foo = opaque {};
, &.{ , &.{
.{ "const", .keyword, .{} }, .{ "const", .keyword, .{} },
.{ "Foo", .@"opaque", .{ .declaration = true } }, .{ "Foo", .type, .{ .declaration = true } },
.{ "=", .operator, .{} }, .{ "=", .operator, .{} },
.{ "opaque", .keyword, .{} }, .{ "opaque", .keyword, .{} },
}); });