Komodo Edit литерал объекта автозаполнения JS

Проблема в том, что Komodo intelli-sense не видит методы объекта, определенные таким образом:

var App = window.App || {
  method: function() {
    ...
  }
}

Введите «Приложение». не дает никакого результата.

Однако определение объекта, как показано ниже, работает нормально:

var App = {
   method: function(){
   }
}

Как заставить автодополнение работать в первом шаблоне примера?


person mef    schedule 22.02.2012    source источник
comment
Итак, если ваш (подразумеваемый) вопрос заключается в том, как обойти это, я думаю, вы можете опустить часть window.App|| во время редактирования файла, а затем вернуть его для тестирования/развертывания.   -  person nnnnnn    schedule 22.02.2012
comment
Да, но я бы хотел, чтобы intelli-sense был более умным :)   -  person mef    schedule 22.02.2012


Ответы (1)


У Komodo есть API макросов, который может автоматизировать переключение между двумя шаблонами. Используйте параметр контекстного меню Добавить макрос, чтобы создать новый макрос и вставить его. следующий код:

komodo.assertMacroVersion(2);
if (komodo.view && komodo.view.scintilla) { komodo.view.scintilla.focus(); } // bug 67103

// define visual mode pattern
var logical_or = RegExp(/\swindow.App\s\|\|/).exec(ko.views.manager.currentView.scimoz.text);

// check for visual mode pattern 
if (logical_or)
  {
  Find_ReplaceAllInMacro(window, 0, '\\s(window.App\\s\\|\\|)', '/*\\1*/', true, 2, 0, false, false);  // replace with intellisense mode pattern
  // show mode in status bar
  ko.statusBar.AddMessage("Intellisense Mode", "imap", 0); 
  }
// check for intellisense mode pattern
else
  {
  Find_ReplaceAllInMacro(window, 0, '/*window.App ||*/', ' window.App ||', true, 0, 0, false, false);
  ko.statusBar.AddMessage("Visual Mode", "vmap", 0);
  }

Щелкните макрос на панели инструментов, чтобы переключиться между режимом IntelliSense и визуальным режимом.

В качестве альтернативы также может работать комментарий JSDoc.

person Paul Sweatte    schedule 05.04.2012