【问题标题】:How to use "Go to Declaration" with NetBeans and javascript?如何在 NetBeans 和 javascript 中使用“Go to Declaration”?
【发布时间】:2011-12-20 16:56:18
【问题描述】:

我知道我们可以在 NetBeans 中使用 Ctrl+Click 或 Ctrl+B,但是当我' m 编写 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 可以找到它。我现在用它来代替“Go to Declaration”。
  4. 我注意到我也没有代码完成功能。按照上面的例子,如果我写“an”(Ctrl+Space)我可以看到很多函数和方法但是我找不到my 函数 (anyName)。

我认为我做错了什么,但我不知道是什么。

【问题讨论】:

    标签: javascript netbeans go-to-definition


    【解决方案1】:

    我认为简短的回答是 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。

    【讨论】:

    • 是的,我知道 javascript 对于一个 IDE 来说不是一件容易的事,但你不能做出一个好的和智能的解析器并不是真的,更重要的是,Go to Declaration 是它的功能之一netbeans(也在 javascript 中)看到这个:netbeans.org/kb/docs/ide/javascript-editor.html,但我不知道为什么它对我不起作用(我已经更新了我的问题以添加更多信息)
    • 啊,是的,看起来他们试图支持它。上次我使用 NetBeans 时,各种东西都坏了,我决定不理会它。当我报告这些问题时,人们会说“是的,我们知道它已经坏了......也许我们有一天会修复它。”
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多