我正在尝试让 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
但这根本没有提高速度。