StEludio
Один хороший программист сказал: "Интерфейсы бывают интуитивными, а бывают эргономичными. Например, интерфейс Win... интуитивен, но не эргономичен, а интерфейс BMW..., напротив, весьма эргономичен при полной неинтуитивности".
Так вот, StEludio — именно эргономичный интерфейс, предназначенный для разработки Eludia-приложений. Это маленькая Win-программа, базирующаяся на великолепной текстовой VCL-компоненте SynEdit, для которой назначены горячие клавиши в соответствии с правилами именования процедур Eludia. Кроме того, для всех стандартных процедур там имеются готовые шаблоны кода.
Это нехитрое средство "малой механизации" позволяет экономить 2-3, а то и целых 5 секунд на каждом переключении между фрагментами исходников: не нужно искать закладку и попадать в неё мышкой, достаточно просто нажать горячую кнопку. А разработка несложных (причём многочисленных) стандартных экранов приложения сводится в основном к прописвыванию заголовков. У опытных э-людей эти рефлексы отрабатываются не головным, а спинным мозгом, что заметно разгружает нервную систему в целом.
Использование большинства возможностей StEludio описано и проиллюстрировано в кратком курсе.
Версионный контроль
В StEludio предусмотрена простейшая интеграция с Windows-оболочками двух популярных систем контроля версий: TortoiseSVN или TortoiseGit. Всё взаимодействие сводится к вызову той или иной оболочки с соответствующими параметрами. Подключение текущей директории к той или иной системе контроля определяется автоматически, по наличию характекных служебных файлов.
Удалённое редактирование (SSH)
Изначально StEludio был предназначен для работы в файловой системе Windows. Правда, пожалуй, большая часть правок с его помощью была внесена не на локальных дисках, а на Linux-серверах с директориями, подмонтированными в качестве сетевых дисков при помощи Samba. Такой режим работы довольно удобен, однако доступен не всегда.
Достаточно стандартная ситуация: имеется SSH-доступ к UNIX-серверу с установленным приложением. Можно ли при этом использовать StEludio для редактирования кода, не копируя файлы вручную? При некоторых разумных допущениях — вполне. Для этого следует:
- Установить PuTTY (полный набор) в директорию "C:\Program Files\putty". Имя директории существенно: поскольку узнать родную директорию PuTTY из системных переменных или registry не представляется возможным, пришлось задать фиксированное значение.
- Сгенерировать пару ключей при помощи PuTTYgen и настроить заход на нужный сервер по публичному ключу, без пароля.
- Создать в директории lib файл с расширением .elnk следующего содержания:
[имя профиля PuTTy]:[директория приложения на удалённом сервере]
Например:
dev:/var/projects/my_project
Теперь можно запускать StEludio, передав имя .elnk-файла как параметр (вместо Config.pm). При таком запуске сначала к вам сначала при помощи pscp будет скопирована директория lib, а в дальнейшем при локальном сохранении каждого файла он будет пересылаться на сервер той же утилитой. Обновление Content/menu.pm осуществляется командой touch через plink. А все горячие клавиши, связанные с svn/git, запускают новое окно PuTTY для заданного профиля.
Нерешённые задачи
Описанный функционал находится в состоянии, скажем так, beta. Возможны и желательны доработки в следующих направлениях:
- задание директории при запуске PuTTY (без изменения профиля);
- использование монолитной архивации (а ещё лучше — протокола rsync) при массовой передаче файлов;
- интеграция W-PuTTY-CD DLL вместо внешних вызовов отдельных exe-файлов.
Справка по горячим клавишам
Навигация по процедурам
F2: автоматическое распознавание Content-процедуры, соответствующей активному окну браузера (пока только для единственного окна MSIE и $_SKIN'ов TurboMilk и IsUp).
Alt-S | Select | Alt-W | draW |
Alt-G | Get_item | Alt-M | draw_iteM |
Alt-C | do_Create | ||
Alt-U | do_Update | ||
Alt-D | do_Delete | ||
Alt-A | do_Add | ||
Alt-P | do_Print |
Экраны
F6 | Переключение между процедурами и Config.pm / Model |
Ctrl-N | В окне процедур — новый тип, в окне Config.pm / Model — новая таблица |
Ctrl-B | Новое действие |
Ctrl-F8 | Фильтр типов (ввод подстроки) |
F8 | Селектор (список) типов |
F9 | Селектор ролей |
F12 | Селектор последних отредактированных процедур |
Редактор
Tab | Отбить выделенное вправо |
Ctrl-> | Закомментировать выделенное |
Ctrl-< | Раскомментировать выделенное |
Ctrl-F | Поиск |
F3 | Повторить последний поиск |
Ctrl-H | Замена |
Ctrl-{ | Найти парную скобку |
Ctrl-Alt-S | Изенить настройки |
Файлы
Ctrl-S | Сохранить файл |
Ctrl-Alt-Shift-B | TortoiseSVN или TortoiseGit Branch |
Ctrl-Alt-Shift-S | TortoiseSVN copy или TortoiseGit Switch |
Ctrl-Alt-Shift-C | TortoiseSVN или TortoiseGit Commit |
Ctrl-Alt-Shift-M | TortoiseSVN или TortoiseGit Merge |
Ctrl-Alt-Shift-U | TortoiseSVN Update или TortoiseGit Pull |