Как использовать «Перейти к декларации» с NetBeans и javascript? - PullRequest
4 голосов
/ 03 ноября 2011

Я знаю, что мы можем использовать Ctrl + Click или Ctrl + B в NetBeans, но это не работает для меня, когда я пишу JavaScript файлы.

И Я не единственный (к сожалению, на этот вопрос нет ответа).

Я вижу функции навигатора, но не могу использовать «Перейти к объявлению».

Я объявляю свои функции следующим образом:

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

Я пытался перейти на этот стиль:

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

Но это тоже не сработало.

Я использую Netbeans 6.9.1.

Подробнее:

  1. NetBeans поддерживает «Перейти к объявлению» в javascript .
  2. Как я уже сказал, функция распознается, потому что я вижу ее в навигаторе.
  3. Я могу использовать Ctrl + O и затем искать свою функцию, и NetBeans может найти ее, когда я это сделаю. Я использую это прямо сейчас как плохую замену «Перейти к декларации».
  4. Я заметил, что у меня также нет завершения кода. Следуя приведенному выше примеру, если я напишу «an» ( Ctrl + Пробел ), я могу увидеть множество функций и методов, но не могу найти my функция (anyName).

Я думаю, что делаю что-то действительно не так, но я не знаю что.

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Я думаю, что короткий ответ - у 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..

Итак, как вы можете видеть, в среде IDE JavaScript потребовалось бы огромное количество знаний о выполнении вашего скрипта во время выполнения, чтобы точно определить, где была определена функция. Есть несколько IDE, которые достаточно хорошо имитируют, если вы используете стандартный синтаксис или очень очевидные объявления функций, но я еще не увидел ничего невероятно полезного в этой области. Скорее всего, это не совсем то, что NetBeans предпринял для поддержки, поскольку это IDE-ориентированная среда разработки.

1 голос
/ 09 декабря 2011

Кажется, проблема в том, чтобы определить все как «глобальное».Если вы работаете в своем собственном пространстве имен - то есть создаете глобальный объект и все там определяете - тогда Netbeans сможет лучше понять, где находится ваш код, а также может дать вам подсказки типов.

...