2012-06-20 4 views
0

Я сделал модуль YUI немного похожим на код, показанный ниже, который является рекомендуемым шаблоном для вещей YUI3, как внутри собственных файлов ядра YUI, так и внутри Moodle as за here.Методы в шаблоне модуля YUI не отображаются в представлении структуры IDE

Проблема заключается в том, что теперь я не вижу ни одного из методов (таких как initializer() и show() в коде ниже) в области файловой структуры/навигатора среды IDE. Похоже, что логика Y.extend() слишком много для обработки, несмотря на предыдущее использование YAHOO.lang.Extend() вне используемого ниже изолированного шаблона, работающего нормально.

Есть ли какие-либо предложения относительно того, как исправить это? Это только моя IDE (попробовал IntelliJ IDEA - bug here и NetBeans)? Неужели у разработчиков YUI нет такой же проблемы?

YUI.add('moodle-local_hub-comments', function (Y) { 

    var COMMENTSNAME = 'hub_comments'; 

    var COMMENTS = function() { 
     COMMENTS.superclass.constructor.apply(this, arguments); 
    } 

    M.local_hub = M.local_hub || {}; 

    Y.extend(M.local_hub, Y.Base, { 

     // Invisible property: 
     event : null, 

     // Invisible function: 
     initializer : function (params) { 
      // function code here 
     }, 

     // Invisible function: 
     show : function (e) { 
      // function code here 
     }, 

     // Invisible function: 
     hide : function() { 
      // function code here 
     } 

    }, { 
     NAME : COMMENTSNAME, 
     ATTRS : { 
      commentids : {value : 450} 
     } 
    }); 

}, '@[email protected]', { 
    requires : ['base', 'overlay', 'moodle-enrol-notification'] 
    //Note: 'moodle-enrol-notification' contains Moodle YUI exception 
}); 

ответ

0

Это представляется возможной ошибка с IntelliJ, с деталями here. Приятно знать, что они по крайней мере теоретически поддерживают это.

В качестве worksround, JSDoc может быть добавлен выше функция, как это продолжается:

/** 
* @class M.local_hub 
**/ 
Y.extend(M.local_hub, Y.Base, { 

Который делает все методы показать :)

0

Каждый IDE я когда-либо видел (я пробовал NetBeans, jEdit, Sublime, и по крайней мере четыре различных редакторов Eclipse, JS) не удалось показать способы, как ваши годы в режиме структуры. Я знаю, что есть билет, чтобы исправить проблему в Eclipse (https://bugs.eclipse.org/bugs/show_bug.cgi?id=266113), но я не задерживаю дыхание: это похоже на то, что очень сложно для IDE.

Если вы хотите, вы мог всегда рефакторинг кода, чтобы быть более IDE-дружеским, но вы потеряете инкапсуляцию:

function initializer(e) { 
    // function code here 
} 
function show() { 
    // function code here 
} 
function hide { 
    // function code here 
} 
function moodle-local_hub-comments (Y) { 

    var COMMENTSNAME = 'hub_comments'; 

    var COMMENTS = function() { 
     COMMENTS.superclass.constructor.apply(this, arguments); 
    } 

    M.local_hub = M.local_hub || {}; 


    Y.extend(M.local_hub, Y.Base, { 

     event : null, 

     initializer : initializer, 

     show : show, 

     hide : hide 

    } 
YUI.add('moodle-local_hub-comments', moodle-local_hub-comments, { 
     NAME : COMMENTSNAME, 
     ATTRS : { 
      commentids : {value : 450} 
     } 
    }); 

}, '@[email protected]', { 
    requires : ['base', 'overlay', 'moodle-enrol-notification'] 
    //Note: 'moodle-enrol-notification' contains Moodle YUI exception 
}); 
+0

В качестве примечания, Sublime имеет вид уникальной альтернативы к контурному представлению, которое работает с любым кодом (потому что это графический контур и, следовательно, не требует синтаксического анализа кода). Лично я просто использую Eclipse без контура. – machineghost

+0

Спасибо, я рассматривал подобную структуру для вас, но мне нужно работать в рамках Moodle, поэтому структура выше навязывается мне :(Однако я могу найти обходное решение. –

+0

Интересно, я могу, наконец, повод для попробуйте IntelliJ сейчас :-) – machineghost