VSCode JavaScript/Node.js 中的 DefinitionProvider

VSCode DefinitionProvider in JavaScript/Node.js

我想在我的 VSCode 扩展中实现 DefinitionProvider。 但我不确定在 Javascript 中我必须如何执行此操作,因为 registerDefinitionProvider 不接受我的 class.

module.exports = class ALDefinitionProvider {
    provideDefinition(textDocument, position, token) {
        console.log(textDocument);
        console.log(position);
    }
}

错误信息: 这里的文字: 'ALDefinitionProvider' 类型的参数不可分配给 'DefinitionProvider' 类型的参数。 'provideDefinition(...)' 返回的类型在这些类型之间不兼容。 类型 'void' 不可分配给类型 'ProviderResult<Location | Location[] | LocationLink[]>'.

我是这样注册的:

vscode.languages.registerDefinitionProvider('al', new ALDefinitionProvider());

我也试过类似的东西,但我不确定如何用这个来实现它:

class GoDefinitionProvider extends vscode.DefinitionProvider {
    provideDefinition(
        document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken):
        Thenable<vscode.Location> {
    }
}

有人知道如何在 Javascript/Node.js 中实现吗? :)

是的,是我的错... 我在我的函数中添加了一个 Promise,现在它可以工作了!

module.exports = class ALDefinitionProvider {
    provideDefinition(textDocument, position, token) {
        return new Promise((resolve) => {
            console.log(textDocument);
            console.log(position);
            return new Location(Uri.parse(''), position);
        });
    }
}