1

我正在尝试让 Eclipse 对谷歌库进行代码辅助,但似乎代码辅助解析器无法胜任。

发现DOM是使用以下语法(Document的定义)进行代码辅助的:

function HTMLElement(){};
HTMLElement.prototype = new Element();
Document.prototype.getElementById=function(elementId){return new HTMLElement();};

因此,我尝试使用 deps.js 和一些 javascript 生成该代码,它看起来像这样:

$goog=function(){};
$goog$Delay=function(){};
$goog.prototype.Delay=new $goog$Delay()
$goog$Disposable=function(){};
$goog.prototype.Disposable=new $goog$Disposable()
Window.prototype.goog=new $goog();

它将代码辅助,但完整的 deps.js 将生成 5850 行,当将该代码添加到我的项目并键入goog.时,它不仅会崩溃,而且会使我的计算机完全停止,直到我踢 Ecliple 的进程。

它看起来很多,但实际上并没有那么多需要处理,在我看到的关于 typescript 的视频中,我看到它的代码支持整个 dom(包括 Eclipse 中缺少的元素样式)。甚至在线 IDE也为我提供了整个 dom 的代码帮助。我的猜测是,如果 javascript IDE 可以比已编译的 Java 程序做得更好,那么代码辅助解析器就急需改进。

有没有一种方法可以在没有 IDE 阻塞的情况下添加这些定义以进行代码辅助?

如果我要键入document.getElementById然后将光标放在 getElementById 函数中的某个位置并按 F3,它将打开 baseBrowserLibrary.js 但该文件是在临时目录中创建的,因此它表明它实际上是在某个地方编译的。我想知道添加一个定义闭包库的编译库有多难。

到目前为止,我会改进脚本并让它读取定义 goog.provide(d) 对象的文件,这样我也可以添加注释。但是如果编译它太麻烦了,最好忘记它,因为提供一个带有定义的 javascript 文件对于 Eclipse/JSDT 来说太多了。

[更新]

我在 ecipe/pligins/org.eclipse.wst.jsdt.core_1.1.202.v201208171701.jar 中看到目录库,其中包含 baseBrowserLibrary.js 这看起来与 eclipse 打开的文件相同的文件,当你去定义的document.getElementById例如。不知道为什么添加我自己的 js 文件会使代码辅助非常缓慢。试图将 js 文件包装进去,user library但这根本没有提高速度。

4

0 回答 0