Для меня просто постоянная проблема — выбрать себе редактор. Есть много просто замечательных, вроде TextMate. Но у него есть существенные минусы:
- Он не работает с windows-1251 (а у меня есть проекты, которые все еще в этой кодировке).
- У него нет по умолчанию автозавершения (а так как я очень ленивый, то мне это надо).
- Он стоит денег (помимо того, что я ленивый, я еще и бедный 🙂
- Он существует только для MacOS. Есть, конечно, E (for Windows) и какие-то аналоги для Linux, но E снова стоит денег. Получается, снова платить? Это (версии для всех платформ) важно потому, что дома у меня MacOS, а на работе Windows. Весьма вероятно, что скоро буду работать и на каких-нибудь никсах.
Я также пробовал Eclipse, но у него обнаружилась своя проблема. На работе есть один проект. К сожалению, использовать системы контроля версий тут не принято. Для проекта используются сервер для разработчиков и production-сервер (как же оно по-русски — все время забываю?). На самом деле пока что и тот, и тот — для разработчиков, production-сервер — это терминал, на котором в действительности приходится тестировать работу приложения. В Эклипсе я долго-долго правил код (будто на сервере для разработчиков), потом скопировал на продакшн. Начинаю тестить на терминале, но получается какая-то раньше, как будто код старый… Смотрю, а он действительно старый. Причем и на продакшене, и на девелоперском. И только в самом Эклипсе он новый. Это ужасно, это какой-то бред. Ведь до того, чтобы проверить файлы не через проект в программе, я дошел совсем не сразу. Короче, ну его к чертям этот Эклипс. Не просто так, судя по всему, я никогда не рвался работать в нем.
В общем, я в очередной раз вернулся к бесплатному Komodo Edit. Который почти всем хорош. Раздражают только мелкие детали. Например, когда пишешь код (вылезает подсказка), понимаешь, что что-то не так написал, и удаляешь несколько символов. Такие IDE как Zend Studio при этом показывают новую подсказку (варианты), а Komodo замолкает до тех пор, пока не дойдешь до момента, где он врубится-таки в ситуацию. Например, наберешь название функции до конца и он покажет какие там аргументы. Но я-то чаще эти подсказки использую, чтобы как раз-таки вспомнить, что там это за функция. Ну да ладно, наверное, придется с этим мирится.
А к чему я это вообще начал-то? По какой-то причине Komodo Edit часто некорректно распознает кодировку файла. Я все про ту же windows-1251. Открываешь файл, и он думает, что это Latin-1 (на Windows) или MacCyrillic (в MacOS). Для того, чтоб его поправить приходится сделать последовательность кликов: Edit -> Current File Settings… -> Encoding: Cyrillic (CP-1251). Кажется, будто быстро. Но я же говорил, что я ленивый. Меня жутко напрягает все это делать каждый раз при открытии файла, а бывает, что последовательно открываешь по пятнадцать файлов подряд в поисках чего-то.
Я начал искать пути ее решения. Сначала поискал расширения и плагины, но ничего такого не нашел. Потом осведомился, нет ли у Komodo каких-то “директив”, которые можно прописать прямо в файле, как это можно сделать в Vim для определения настроек табов (отступов) в конкретном файле. Тоже ничего.
Тогда стал думать на тему макросов. Для них можно использовать два языка Python и JavaScript. Пайтоном я интересуюсь и пытаюсь даже изучать постепенно, но пока не готов на нем что-то делать (слишком большие промежутки между “уроками” и требуется много времени, чтоб вспомнить, как там и что).
В общем, стал искать варианты для JavaScript. И хотел было реализовать вариант с “директивами”. Для поиска их нет никаких преград – простейшей регуляркой я достаю указанную мной кодировку, но вот что с ней дальше делать – вопрос. Вопрос, на который я так и не нашел никакого ответа. Просмотрел Komodo Javascript API, но и там про кодировку файла ничего не говорится. Поэтому я расстроен. Может, у кого-то есть мысли на эту тему?
В общем, пока что-то конкретное не сделал, решил хоть как-то уменьшить эту цепочку кликов. И сделал макрос, который просто открывает сразу диалог “Current File Settings…”. Это просто:
komodo.assertMacroVersion(2);
komodo.doCommand(‘cmd_editPrefsCurrent’);
И повесил его на сочетание клавиш Ctrl + Alt + P.
Этот же пост публикую на Хабре. Может, кто знает ответ там?