Merge pull request #221 from GrayJack/highlight-patch0
Semantic Highlight changes
This commit is contained in:
		
						commit
						6a66a7eb43
					
				@ -8,7 +8,7 @@ pub const TokenType = enum(u32) {
 | 
				
			|||||||
    type,
 | 
					    type,
 | 
				
			||||||
    parameter,
 | 
					    parameter,
 | 
				
			||||||
    variable,
 | 
					    variable,
 | 
				
			||||||
    tagField,
 | 
					    enumMember,
 | 
				
			||||||
    field,
 | 
					    field,
 | 
				
			||||||
    errorTag,
 | 
					    errorTag,
 | 
				
			||||||
    function,
 | 
					    function,
 | 
				
			||||||
@ -28,6 +28,7 @@ pub const TokenModifiers = packed struct {
 | 
				
			|||||||
    @"enum": bool = false,
 | 
					    @"enum": bool = false,
 | 
				
			||||||
    @"union": bool = false,
 | 
					    @"union": bool = false,
 | 
				
			||||||
    @"opaque": bool = false,
 | 
					    @"opaque": bool = false,
 | 
				
			||||||
 | 
					    declaration: bool = false,
 | 
				
			||||||
    definition: bool = false,
 | 
					    definition: bool = false,
 | 
				
			||||||
    @"async": bool = false,
 | 
					    @"async": bool = false,
 | 
				
			||||||
    documentation: bool = false,
 | 
					    documentation: bool = false,
 | 
				
			||||||
@ -116,7 +117,7 @@ fn fieldTokenType(container_decl: *ast.Node.ContainerDecl, handle: *DocumentStor
 | 
				
			|||||||
    if (container_decl.kind_token > handle.tree.token_ids.len) return null;
 | 
					    if (container_decl.kind_token > handle.tree.token_ids.len) return null;
 | 
				
			||||||
    return @as(?TokenType, switch (handle.tree.token_ids[container_decl.kind_token]) {
 | 
					    return @as(?TokenType, switch (handle.tree.token_ids[container_decl.kind_token]) {
 | 
				
			||||||
        .Keyword_struct => .field,
 | 
					        .Keyword_struct => .field,
 | 
				
			||||||
        .Keyword_union, .Keyword_enum => .tagField,
 | 
					        .Keyword_union, .Keyword_enum => .enumMember,
 | 
				
			||||||
        else => null,
 | 
					        else => null,
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -291,9 +292,9 @@ fn writeNodeTokens(builder: *Builder, arena: *std.heap.ArenaAllocator, store: *D
 | 
				
			|||||||
            try writeToken(builder, var_decl.getComptimeToken(), .keyword);
 | 
					            try writeToken(builder, var_decl.getComptimeToken(), .keyword);
 | 
				
			||||||
            try writeToken(builder, var_decl.mut_token, .keyword);
 | 
					            try writeToken(builder, var_decl.mut_token, .keyword);
 | 
				
			||||||
            if (try analysis.resolveTypeOfNode(store, arena, .{ .node = node, .handle = handle })) |decl_type| {
 | 
					            if (try analysis.resolveTypeOfNode(store, arena, .{ .node = node, .handle = handle })) |decl_type| {
 | 
				
			||||||
                try colorIdentifierBasedOnType(builder, decl_type, var_decl.name_token, .{ .definition = true });
 | 
					                try colorIdentifierBasedOnType(builder, decl_type, var_decl.name_token, .{ .declaration = true });
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                try writeTokenMod(builder, var_decl.name_token, .variable, .{ .definition = true });
 | 
					                try writeTokenMod(builder, var_decl.name_token, .variable, .{ .declaration = true });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, var_decl.getTypeNode() });
 | 
					            try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, var_decl.getTypeNode() });
 | 
				
			||||||
            try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, var_decl.getAlignNode() });
 | 
					            try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, var_decl.getAlignNode() });
 | 
				
			||||||
@ -385,7 +386,7 @@ fn writeNodeTokens(builder: *Builder, arena: *std.heap.ArenaAllocator, store: *D
 | 
				
			|||||||
                if (param_decl.doc_comments) |docs| try writeDocComments(builder, handle.tree, docs);
 | 
					                if (param_decl.doc_comments) |docs| try writeDocComments(builder, handle.tree, docs);
 | 
				
			||||||
                try writeToken(builder, param_decl.noalias_token, .keyword);
 | 
					                try writeToken(builder, param_decl.noalias_token, .keyword);
 | 
				
			||||||
                try writeToken(builder, param_decl.comptime_token, .keyword);
 | 
					                try writeToken(builder, param_decl.comptime_token, .keyword);
 | 
				
			||||||
                try writeTokenMod(builder, param_decl.name_token, .parameter, .{ .definition = true });
 | 
					                try writeTokenMod(builder, param_decl.name_token, .parameter, .{ .declaration = true });
 | 
				
			||||||
                switch (param_decl.param_type) {
 | 
					                switch (param_decl.param_type) {
 | 
				
			||||||
                    .any_type => |var_node| try writeToken(builder, var_node.firstToken(), .type),
 | 
					                    .any_type => |var_node| try writeToken(builder, var_node.firstToken(), .type),
 | 
				
			||||||
                    .type_expr => |type_expr| try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, type_expr }),
 | 
					                    .type_expr => |type_expr| try await @asyncCall(child_frame, {}, writeNodeTokens, .{ builder, arena, store, type_expr }),
 | 
				
			||||||
@ -614,8 +615,8 @@ fn writeNodeTokens(builder: *Builder, arena: *std.heap.ArenaAllocator, store: *D
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        .EnumLiteral => {
 | 
					        .EnumLiteral => {
 | 
				
			||||||
            const enum_literal = node.cast(ast.Node.EnumLiteral).?;
 | 
					            const enum_literal = node.cast(ast.Node.EnumLiteral).?;
 | 
				
			||||||
            try writeToken(builder, enum_literal.dot, .tagField);
 | 
					            try writeToken(builder, enum_literal.dot, .enumMember);
 | 
				
			||||||
            try writeToken(builder, enum_literal.name, .tagField);
 | 
					            try writeToken(builder, enum_literal.name, .enumMember);
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        .FloatLiteral => {
 | 
					        .FloatLiteral => {
 | 
				
			||||||
            try writeToken(builder, node.firstToken(), .number);
 | 
					            try writeToken(builder, node.firstToken(), .number);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user