在 vscode 扩展名上添加文档符号层次结构
Add document symbol hierarchy on a vscode extension
我正在开发一个 vscode 扩展,我想添加一个显示符号层次结构的 DocumentSymbolProvider
。但由于某些未知原因,以下实例代码无法正常工作:
const documentSymbolProvider: DocumentSymbolProvider = {
provideDocumentSymbols(document) {
const symbolsTest: DocumentSymbol = {
name: 'test',
detail: 'details',
kind: SymbolKind.Boolean,
range: new Range(new Position(0, 0), new Position(0, 10)),
selectionRange: new Range(new Position(0, 0), new Position(0, 10)),
children: [
{
name: 'child',
detail: 'child details',
kind: SymbolKind.Array,
range: new Range(new Position(0, 11), new Position(0, 15)),
selectionRange: new Range(new Position(0, 11), new Position(0, 15)),
children: [],
},
],
}
return [symbolsTest]
},
}
我设置了两个硬编码符号,但vscode不会同时显示这两个符号。
我该如何使用这个API?
问题是因为我使用普通 { }
而不是 new
运算符创建对象 DocumentSymbol
- 必须使用 new
创建才能继承.
代码已修复:
const symbolsTest1 = new DocumentSymbol(
'test',
'details',
SymbolKind.Boolean,
new Range(new Position(0, 0), new Position(0, 15)),
new Range(new Position(0, 0), new Position(0, 15))
)
symbolsTest1.children = [
new DocumentSymbol(
'child',
'child details',
SymbolKind.Array,
new Range(new Position(0, 11), new Position(0, 15)),
new Range(new Position(0, 11), new Position(0, 15))
),
]
我正在开发一个 vscode 扩展,我想添加一个显示符号层次结构的 DocumentSymbolProvider
。但由于某些未知原因,以下实例代码无法正常工作:
const documentSymbolProvider: DocumentSymbolProvider = {
provideDocumentSymbols(document) {
const symbolsTest: DocumentSymbol = {
name: 'test',
detail: 'details',
kind: SymbolKind.Boolean,
range: new Range(new Position(0, 0), new Position(0, 10)),
selectionRange: new Range(new Position(0, 0), new Position(0, 10)),
children: [
{
name: 'child',
detail: 'child details',
kind: SymbolKind.Array,
range: new Range(new Position(0, 11), new Position(0, 15)),
selectionRange: new Range(new Position(0, 11), new Position(0, 15)),
children: [],
},
],
}
return [symbolsTest]
},
}
我设置了两个硬编码符号,但vscode不会同时显示这两个符号。
我该如何使用这个API?
问题是因为我使用普通 { }
而不是 new
运算符创建对象 DocumentSymbol
- 必须使用 new
创建才能继承.
代码已修复:
const symbolsTest1 = new DocumentSymbol(
'test',
'details',
SymbolKind.Boolean,
new Range(new Position(0, 0), new Position(0, 15)),
new Range(new Position(0, 0), new Position(0, 15))
)
symbolsTest1.children = [
new DocumentSymbol(
'child',
'child details',
SymbolKind.Array,
new Range(new Position(0, 11), new Position(0, 15)),
new Range(new Position(0, 11), new Position(0, 15))
),
]