如何使用NetBeans和javascript“转到声明”?

时间:2011-11-02 21:13:57

标签: javascript netbeans go-to-definition

我知道我们可以在NetBeans中使用 Ctrl +单击或 Ctrl + B 但是当我'时它对我不起作用我在写javascript文件。

I’m not the only one(遗憾的是,这个问题没有回复)。

我可以看到导航器上的功能,但我不能使用“转到声明”。

我以这种方式宣布我的职能:

function anyName(params...) { ... }

我尝试改为这种风格:

var anyName = function (params...) { ... }

但这也不起作用。

我正在使用Netbeans 6.9.1。

更多信息:

  1. NetBeans supports “Go to declaration” in javascript
  2. 正如我所说,该功能已被识别,因为我可以在导航器中看到它。
  3. 我可以使用 Ctrl + O 然后搜索我的函数,NetBeans可以在我这样做时找到它。我现在正在使用它作为“去声明”的不良替代品。
  4. 我注意到我也没有代码完成。按照上面的例子,如果我写“an”( Ctrl + Space ),我可以看到很多函数和方法,但我找不到 my < / strong> function(anyName)。
  5. 我认为我做错了什么,但我不知道是什么。

2 个答案:

答案 0 :(得分:2)

我认为简短的回答是NetBeans没有一个很好的JavaScript解析器。 JS是一种松散类型的语言,“转到”函数的实际定义可能非常困难。举几个例子:

function callStuff(myFunc)
{
   myFunc(); //Where does this go?
}

callStuff(function () { window.alert(123); });

或者:

var x = {
  X: function () { },
  Y: function () { },
};

x.Z = function () { };

x.Y(); //Where do I go?
x.Z(); //How about this?

或者也许:

string s = "window.alert(123);";
var callback = Function(s);
callback(); //Now we just made a function with a string, weird..

正如您所看到的,JavaScript IDE需要掌握有关脚本运行时执行的大量知识,以确切了解函数的定义位置。如果您使用标准语法或非常明显的函数声明,有一些IDE可以很好地伪造它,但我还没有看到在这方面有任何非常有用的东西。它很可能不是NetBeans努力支持的东西,因为它是一个以Java为中心的IDE。

答案 1 :(得分:1)

问题似乎在于将所有内容定义为“全球”。如果你在你自己的命名空间中工作 - 也就是说,创建一个全局对象并在那里定义所有东西 - 那么Netbeans可以更好地理解代码的位置,并且还可以为你提供类型提示。