我正在尝试编写Dart代码,它将生成相当于此的粗略代码:
var disposable = vscode['commands'].registerCommand(
'extension.sayHello',
function () {
vscode['window'].showInformationMessage('Hello World!');
}
);
context.subscriptions.push(disposable);
变量vscode
和context
都是JavaScript中的全局变量,它正在执行我的Dart(使用Dart Dev Compiler编译为JS)。
我很高兴context / vscode现在完全没有类型,但是我很难弯曲JS package来输出这样的代码(例如,如果我把@JS()放在存根上{ {1}},我得到vscode
)。
答案 0 :(得分:2)
您可以使用基础dart:js features
请注意,context
恰好是javascript背景的dart名称。
var disposable = context['vscode']['commands'].callMethod('registerCommand', [
'extension.sayHello',
() {
context['vscode']['window'].callMethod('showInformationMessage', ['Hello World!']);
}]);
);
context['context']['subscriptions'].callMethod('push', [disposable]);
答案 1 :(得分:1)
让我在github上用package:js
汇总一个快速示例。
修改:好的,你走了: https://github.com/matanlurey/js-interop-examples
我花了几次尝试这个包:js语法正确(我们可能需要更多的文档和示例),但我最终创建了一个“假的”可视化工作室代码API(vscode.js),并用它进行干预细
如果您希望自己的示例在Dartium中运行,请注意您需要使用allowInterop
包装函数。