Как просмотреть схему в eclipse при использовании шаблона показательного модуля?
В настоящее время я рефакторинг кода Javascript, который у нас есть, и, кроме всего прочего, я изменил его, чтобы использовать раскрывающийся шаблон модуля. Код выглядит намного более аккуратным, и он отлично работает, но я больше не вижу функции в виде контура. Я вижу пространство имен верхнего уровня var как var, но вы не можете его расширить, чтобы увидеть функции внутри.
Давайте скажем, что код выглядел следующим образом:
function myFunc1() {}
function myFunc2() {}
В этом случае вы видите обе функции в виде схемы. Но если вы измените его на это:
var myNamespace = function()
{
function myFunc1() {}
function myFunc2() {}
return {
name: "myNamespace",
myFunc1: myFunc1,
myFunc2: myFunc2
}
}();
Затем в виде контура отображается только myNamespace var. Я пробовал искать, но не могу найти представление, которое фактически покажет мне иерархию правильно. Кто-нибудь знает способ взглянуть на это или это случай, когда затмение не может это сделать?
Ответы
Ответ 1
Добавить:
/**
* @memberOf myNamespace
*/
перед каждым определением функции для восстановления иерархии.
Здесь вы найдете более интересные теги для документирования вашего кода:
Как я представил JsDoc в проекте JavaScript и нашел свою схему Eclipse Outline
Ответ 2
один из способов - назвать его ниже.
Определите это как есть, но не выполняйте его самостоятельно.
Убедитесь, что прототип представляет собой пустой объект, а затем попробуйте его вызвать.
Он работает одинаково, но восстанавливает контур, и вам не нужно добавлять комментарии перед каждой функцией.
var myNamespace = (function()
{
function myFunc1() {}
function myFunc2() {}
return {
name: "myNamespace",
myFunc1: myFunc1,
myFunc2: myFunc2
}
});
myNamespace.prototype = {};
myNamespace();
Ответ 3
Не показывать myFunc1() и т.д. в контуре, кажется, ошибка, которая отмечена как фиксированная в 3.2. Однако в 4.2 это не зафиксировано. Это, безусловно, огромная боль при работе с очень большими файлами из сотен функций, и только имя var появляется в контуре. Я молюсь за то, чтобы он был исправлен.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=236202
https://bugs.eclipse.org/bugs/show_bug.cgi?id=281374#c1
/**
* @memberOf myNamespace
*/
Не работал у меня. Когда я добавляю это выше myFunc1(), он не отображает его в контуре, даже если я закрываю и открываю файл.
Интересно, что 4 из моих 20 или около того функций отображаются в контуре, но нет никакой разницы между теми, которые работают, и те, которые не за исключением тех, которые работают, имеют это .xxx в них (но если Я добавляю this.dummy; к невидимым функциям это не помогает)
Этот полурабочий: myNameSpace.prototype = {}; myNameSpace;
Но тогда вы не можете называть свои функции таким образом:
myNameSpace.myFunc1();
Ответ 4
Я работаю с eclipse/Kepler. Используя совет сверху, мне удалось получить схему. Но предложения (Ctrl-space) не сработали. Некоторые fn были видны, а некоторые нет. Нет шаблона для обнаружения.
После прочтения http://usejsdoc.org/#JSDoc3_Tag_Dictionary я заменил все @memberOf на @memberof, и теперь все работает так, как ожидалось ( "пока не возникнет следующая проблема"..)