понедельник, 17 декабря 2007 г.

Flex - сниппетсы своими руками

Когда людям становится совсем плохо от отсутствия элементарных удобств они начинают изобретать велосипеды и вечные двигатели. Вот и я не удержался. Когда в конец надоело инкапсулировать приватные переменные flex-a я припомнил, что давно хотел сделать нечто универсальное для вставки в текст заранее заготовленных кусков кода. Хотелось чтобы шаблончики были параметризированными в рантайме и легко настраивались. Когда-то, моим выбором в этом вопросе был неплохой и бесплатный текстовый редактор pspad. По возможностям он был сравним с ultraedit + имел систему кастомизации снипетсов в том числе генерируя формочки для их параметризации. Но вскоре он достал своим странным описанием подсветки и какими-то непонятными тормозами при загрузке и был благополучно забыт и позже заменен на notepad++ в котором таких чудных сниппетсов нет, зато скорость открытия файлов не раздражает.
И вот недавно столкнувшись с интересной утилитой для автоматизации различных клавиатурных действий, желание иметь удобные кусочки кода под рукой вновь обрело некое воплощение. Итак маленький помощник зовется perefect keyboard. Чтобы описать что это чудо программостроения умеет нужно набрать приличное количество текста, поэтому отсылаю всех за описанием фич на офсайт.
Итак , чем эта штуковина может помочь (несколько фактов для осмысления):
  1. Может вставлять текст из буфера, из своих заготовочек, из собственных переменных в нужное место по нажатию клавиш(комбинаций) или вместо ввода определенной последовательности символов и т.п.
  2. При этом, может отображать довольно незамысловатые формочки для ввода значений собственных переменных.
  3. При этом, может проводить некоторые операции с этими переменными - замена подстроки, загрузка из файла.

Надеюсь намеки понятны. Цепочка примерно такова: Шаблончики в файлах. В шаблончиках плейсхолдеры, которые заменяются на значения переменных введенные через форму. По подтверждению формы сформированный код идет на место курсора или в клипборд (кому как удобнее)... Получилось даже сделать некую легкую замену рефакторинга инкапсуляции поля :)




Комментариев нет: