From e2a3b38f5a53bfc31a0eb6516025c0b9c5893f25 Mon Sep 17 00:00:00 2001 From: Alexandros Naskos Date: Thu, 18 Jun 2020 21:31:52 +0300 Subject: [PATCH] Align info --- src/semantic_tokens.zig | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/semantic_tokens.zig b/src/semantic_tokens.zig index dcda1eb..9d52add 100644 --- a/src/semantic_tokens.zig +++ b/src/semantic_tokens.zig @@ -499,7 +499,6 @@ fn writeNodeTokens(builder: *Builder, arena: *std.heap.ArenaAllocator, store: *D if (try analysis.lookupSymbolContainer(store, arena, .{ .node = left_type_node, .handle = lhs_type.handle }, rhs_str, !lhs_type.type.is_type_val)) |decl_type| { switch (decl_type.decl.*) { .ast_node => |decl_node| { - // @TODO Other field types? if (decl_node.id == .ContainerField) { const tok_type: ?TokenType = if (left_type_node.cast(ast.Node.ContainerDecl)) |container_decl| fieldTokenType(container_decl, lhs_type.handle) @@ -539,11 +538,15 @@ fn writeNodeTokens(builder: *Builder, arena: *std.heap.ArenaAllocator, store: *D .SliceType, .PtrType => |info| { if (prefix_op.op == .PtrType) try writeToken(builder, prefix_op.op_token, tok_type); - // TODO Fix align info - // if (info.align_info) |align_info| { - // try writeToken(builder, align_info.node.firstToken() - 2, .keyword); - // try await @asyncCall(child_frame, {}, writeNodeTokens, builder, arena, store, align_info.node); - // } + // @TODO Fix align info + if (info.align_info) |align_info| { + if (prefix_op.op == .PtrType) { + try writeToken(builder, prefix_op.op_token + 1, .keyword); + } else { + try writeToken(builder, prefix_op.op_token + 2, .keyword); + } + try await @asyncCall(child_frame, {}, writeNodeTokens, builder, arena, store, align_info.node); + } try writeToken(builder, info.const_token, .keyword); try writeToken(builder, info.volatile_token, .keyword); try writeToken(builder, info.allowzero_token, .keyword);