Kohana: code intelligence и autocomplete в Komodo Edit 7

Это удобно, когда в любимом редакторе/IDE можно использовать подсказки и автоподстановку по Вашему любимому фреймворку. Поскольку я привык использовать Komodo Edit 7.1 и Kohana 3.3, то в этой заметке будет рассказано, как их подружить.

Когда нужно править/писать проект сразу на удалённом сервере, например по SFTP, — хотелось бы иметь возможность пользоваться автоподстановкой и справкой по Kohana API. Поскольку порой хранить полную копию проекта локально по тем или иным причинам неудобно, то было бы неплохо пользоватья вышеописанными возможностями даже когда мы редактируем какой-то отдельно взятый файл на удалённом сервере.

В надежде решить эту проблему мы идём в
Edit->Preferences->Languages->PHP->PHP Directories,
где нам вежливо предлагается указать директории, которые Komodo должен использовать для calltips и autocomplete.
В надежде, что всё получится, мы копируем локально дистрибутив Kohana и прописываем пути до него, как, например, это сделано у меня:
Kohana autocomplete code intelligence Komodo Edit

Однако, после всех манипуляций выясняется, что Komodo неверно сканирует поддиректории, хотя это и описано в настройках («Komodo will recursively scan these directories for information.»). На самом деле же, для того, чтобы заставить Komodo работать нам придётся использовать следующий патч:

Index: /home/toddw/as/komodo-devel/src/codeintel/lib/codeintel2/lang_php.py
===================================================================
--- lang_php.py	(revision 73000)
+++ lang_php.py	(working copy)
@@ -1025,9 +1025,9 @@
 
             # - extradirslib
             extra_dirs = self._extra_dirs_from_env(env)
-            if extra_dirs:
+            for extra_dir in extra_dirs:
                 libs.append( db.get_lang_lib("PHP", "extradirslib",
-                                             extra_dirs, "PHP") )
+                                             [extra_dir], "PHP") )
 
             # - inilib (i.e. dirs in the include_path in PHP.ini)
             include_dirs = [d for d in include_pa

Для этого ищем файл в директории, где установлен Komodo папку codeintel2 (например, C:\Program Files (x86)\ActiveState Komodo Edit 7\lib\mozilla\python\komodo\codeintel2) с файлом lang_php.py и заменяем указанные строки.

Те, кто не хотят этим заниматься, могу сразу скачать файл и заменить его у себя.

В качестве неприятного недостатка — при каждом запуске программы в фоновом режиме будет осуществляться поиск по папкам, которые мы указали, однако мы получим полнофункциональную поддержку Kohana в Komodo Edit.

Вы можете подробнее почитать об обсуждении бага и полезном плагине AutoCode.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>