in server/src/jsonStore.ts [424:444]
private toDocumentSymbol(value: RangeBasedDocumentSymbol): lsp.DocumentSymbol | undefined {
let range = this.vertices.ranges.get(value.id)!;
let tag = range.tag;
if (tag === undefined || !(tag.type === 'declaration' || tag.type === 'definition')) {
return undefined;
}
let result: lsp.DocumentSymbol = lsp.DocumentSymbol.create(
tag.text, tag.detail || '', tag.kind,
tag.fullRange, this.asRange(range)
);
if (value.children && value.children.length > 0) {
result.children = [];
for (let child of value.children) {
let converted = this.toDocumentSymbol(child);
if (converted !== undefined) {
result.children.push(converted);
}
}
}
return result;
}