Как я могу просмотреть контур в затмении при использовании выявляющего шаблона модуля?

В настоящее время я занимаюсь рефакторингом некоторого кода Javascript, который у нас есть, и среди прочего я изменил его, чтобы использовать шаблон раскрывающегося модуля. Код выглядит намного аккуратнее и работает нормально, но я больше не вижу функций в виде структуры. Я вижу пространство имен верхнего уровня var как var, но вы не можете расширить его, чтобы увидеть функции внутри.

Скажем, код, который выглядел так:

function myFunc1() {}
function myFunc2() {}

В этом случае вы видите обе функции в виде структуры. Но если вы измените это на это:

var myNamespace = function()
{
  function myFunc1() {}
  function myFunc2() {}

  return {
    name: "myNamespace",
    myFunc1: myFunc1,
    myFunc2: myFunc2
  }
}();

Тогда представление схемы просто показывает вам myNamespace var. Я пытался искать, но не могу найти представление, которое действительно покажет мне иерархию правильно. Кто-нибудь знает способ просмотра этого или это случай затмения, не способного сделать это?

4 ответа

Решение

Добавлять:

/**
 * @memberOf myNamespace
 */

перед каждым определением функции восстановить иерархию.

Вы найдете больше интересных тегов для документирования вашего кода здесь:
Как я ввел JsDoc в проект JavaScript - и нашел свой Eclipse Outline

Один из способов - назвать это, как показано ниже. Определите это как есть, но не выполняйте его самостоятельно. Убедитесь, что прототип является пустым объектом, а затем попробуйте вызвать его. Он работает так же, но восстановит контур, и вам не нужно добавлять комментарии перед каждой функцией.

var myNamespace = (function()
{
  function myFunc1() {}
  function myFunc2() {}

  return {
    name: "myNamespace",
    myFunc1: myFunc1,
    myFunc2: myFunc2
  }
});
myNamespace.prototype = {};
myNamespace();

Не показывать myFunc1() и т. Д. В общих чертах, это ошибка, которая помечена как исправленная в 3.2. Однако это не исправлено в 4.2. Это, безусловно, огромная боль при работе с очень большими файлами сотен функций, и в схеме отображается только имя переменной. Я молюсь, чтобы это было исправлено.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=236202

https://bugs.eclipse.org/bugs/show_bug.cgi?id=281374

/** * @memberOf myNamespace */ У меня не сработало. Когда я добавляю это выше myFunc1(), он не отображается в общих чертах, даже если я закрываю и открываю файл.

Интересно, что 4 из моих 20 или около того функций отображаются в общих чертах, но нет разницы между теми, которые работают, и теми, которые не работают, за исключением тех, которые работают все, имеют this.xxx в них (но если я добавлю это.dummy; невидимым функциям это не поможет)

Это полуработы: myNameSpace.prototype = {}; myNameSpace;

Но тогда вы не можете вызывать его функции таким образом: myNameSpace.myFunc1();

Я работаю с Eclipse/Kepler. Используя совет сверху, мне удалось получить общий вид. Но предложения (Ctrl-пробел) не сработали. Некоторые fn были видны, некоторые нет. Нет шаблона для обнаружения.

После прочтения http://usejsdoc.org/ я заменил все @memberOf на @memberof, и теперь все работает как положено (пока не возникнет следующая проблема...)

Другие вопросы по тегам