如何访问VSCode创建的AST

我为UI5 JavaScript编写VSCode扩展。最缺少的功能是为UI5提供IntelliSense。使用UI5类型,它将工作,但不是。如何访问VSCode创建的AST

这工作:

var testvar1 = new sap.m.Button(); 

现在我可以在testvar1在VSCode使用IntelliSense。

存在的问题例如为:

sap.ui.define([ 

"sap/ui/core/mvc/Controller"

],

function (Controller) {

"use strict";

return Controller.extend("", {

});

});

在这种情况下,存在在功能的控制器变量,该变量与之前的命名空间定义。我现在搜索一下可能性,在我的扩展中使用命名空间分配这个变量。我知道这可以在AST做,但我现在已经爱迪尔如何获得访问AST设置:

Controller = sap.ui.core.mvc.Controller 

的目标是现在有完整的IntelliSense在变量控制器

希望到目前为止,我很清楚自己想要什么。

回答:

如果你只需要提供一个类型为Controller,请尝试使用jsdocs:

sap.ui.define([ 

"sap/ui/core/mvc/Controller"

],

function (/** @type {sap.m.Controller} */ Controller) {

...

});

要回答原来的问题,你可以用一个TypeScript server plugin访问/修改AST。这是不平凡的,所以我会尽量避免这样做,除非你真的需要

以上是 如何访问VSCode创建的AST 的全部内容, 来源链接: utcz.com/qa/260268.html

回到顶部