Skip to content

Commit

Permalink
Merge pull request #448 from ikrima/add-typefunc-outline-nodes
Browse files Browse the repository at this point in the history
add type function symbols to document symbol outline
  • Loading branch information
SuperAuguste authored Jan 13, 2022
2 parents 08f2638 + ca8ca06 commit fefabc6
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/analysis.zig
Original file line number Diff line number Diff line change
Expand Up @@ -1809,6 +1809,16 @@ fn getDocumentSymbolsInternal(allocator: std.mem.Allocator, tree: Ast, node: Ast
if (var_decl.ast.init_node != 0)
try addOutlineNodes(allocator, tree, var_decl.ast.init_node, &child_context);
}
if (tags[node] == .fn_decl) fn_ch: {
const fn_decl = tree.nodes.items(.data)[node];
var params: [1]Ast.Node.Index = undefined;
const fn_proto = ast.fnProto(tree, fn_decl.lhs, &params) orelse break :fn_ch;
if (!isTypeFunction(tree, fn_proto)) break :fn_ch;
const ret_stmt = findReturnStatement(tree, fn_proto, fn_decl.rhs) orelse break :fn_ch;
const type_decl = tree.nodes.items(.data)[ret_stmt].lhs;
if (type_decl != 0)
try addOutlineNodes(allocator, tree, type_decl, &child_context);
}
break :ch children.items;
},
};
Expand Down

0 comments on commit fefabc6

Please sign in to comment.