Я искал неправильные места для решения и, возможно, пропустил лес за деревьями после нескольких потерянных дней.Затем коллега посмотрел на проблему с девственностью, и через несколько часов он нашел решение, приведенное ниже.По сути, DocumentSymbolProvider - это то, что нужно.
Поиск по этому ключевому слову дает несколько примеров, например, здесь .Официальные документы 1010 *, тем не менее, не предоставляют ничего, кроме информации о том, что вы можете создать экземпляр, тогда как важный код о том, КАК ИСПОЛЬЗОВАТЬ ЭТО, представлен ...
.ВАУ - это то, что я называю документом -.-
Тем не менее, есть некоторые вещи, неясные, но по крайней мере теперь мы можем работать с этой базой:
class MLWDocumentSymbolProvider implements vscode.DocumentSymbolProvider {
public provideDocumentSymbols(document: vscode.TextDocument,
token: vscode.CancellationToken): Thenable<vscode.SymbolInformation[]> {
return new Promise((resolve, reject) => {
// that's the important variable. It must be a multidimensional array, one dimension for each level you need to display.
let symbols = [];
let icon_main = vscode.SymbolKind.Class;
let icon_second = vscode.SymbolKind.Field;
let icon_third = vscode.SymbolKind.String;
// check each line of the document about your keywords
for (let i = 0; i < document.lineCount; i++) {
let line = document.lineAt(i);
if(line.text.trim().startsWith("WORD")) {
symbols.push(new vscode.DocumentSymbol("Level 1: WORD", document.lineAt(i+1).text.trim(), icon_main, line.range, line.range ));
} /* elses for the levels below */
}
resolve(symbols);
});
}
}
Я думаю, что ответ Gamma11 был как-то близок.Из-за отсутствия информации в официальных документах о том, где и как ее использовать, к сожалению, она действительно не может нам помочь.
Получение знаний о VSC-кодировании кажется очень трудным из-за того, чтоДокументы не предоставляют много информации, кроме базовой структуры.Если кто-то знает сайт с полными примерами или описаниями классов / интерфейсов / функций, пожалуйста, оставьте комментарий.За почти 20 лет программирования я никогда не видел такого отсутствия документации такого огромного проекта, где основные части представлены ...
или в объекте просто ничего нет .-