我们正在编写一个 VSCode 扩展,使用 API 在打开的文件中查找方法。
到目前为止一切正常,当我们在扩展开发主机中打开一个新文件时,会找到方法,因此 DocumentSymbolProvider 会触发/执行。
扩展程序是这样的:
但是当我们切换回一个已经打开的文件时它不会触发。为了再次触发,您必须关闭文件(vscode 中的选项卡)并再次打开它。
是否有什么要实现的,以便在切换文件选项卡时 DocumentSymbolProvider 也会触发?我们已经试过把
onDidChangeEmitter = new vscode.EventEmitter<vscode.Uri>();
onDidChange = this.onDidChangeEmitter.event;
进入 DocumentSymbolProvider 所以它看起来像这样:
class JavaDocumentSymbolProvider implements vscode.DocumentSymbolProvider {
onDidChangeEmitter = new vscode.EventEmitter<vscode.Uri>();
onDidChange = this.onDidChangeEmitter.event;
public provideDocumentSymbols(document: vscode.TextDocument, token: vscode.CancellationToken): Thenable<vscode.SymbolInformation[]> {
// code to find methods
}
}
正确的逻辑应该是,
对于第 2 步,您应该参考vscode.window.onDidChangeActiveTextEditor
,
https://code.visualstudio.com/api/references/vscode-api#window
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句