[FlashDevelop] Postfix Code Completion
Контекстный генератор, сниппеты, макросы, ... - все это ускоряет написание кода, да, но заставляет как минимум использовать горячие клавиши, как максимум знать о существовании подобного функционала...
Постфиксный автокомплит - это новый функционал, который ускоряет и упрощает написание часто используемых конструкций без использования горячих клавиш.
Рассмотрим частую для AS3 проектов конструкцию:
Да, этот код можно писать "каждый раз руками".. через какое-то время надоест и появится сниппет, который будет называться, скажем, notnull. Для использования надо будет нажать ctrl+b и далее выбрать сниппет из списка.. Используя постфиксный автокомплит написание данной конструкции будет выглядеть так:
Как это работает.
При вызове автокомплита редактор идет в папку Snippets\as3\postfixgenerators\ перебирает все шаблоны, выбирая из них те что подходят под тип сущности для которой был вызван автокомплит, и добавляет их(шаблоны) в список. Этот подход позволяет, во-первых, создавать пользовательские шаблоны, во-вторых применять один и тот же шаблон к разным типам, например:
Текст шаблона for:
Код:
#pcc:Collection for (var $(ItmUniqueVar):int = 0; $(ItmUniqueVar) < $(Collection).length; $(ItmUniqueVar)++) $(CSLB){ $(EntryPoint) } #pcc:Number for (var $(ItmUniqueVar):int = 0; $(ItmUniqueVar) < $(Number); $(ItmUniqueVar)++) $(CSLB){ $(EntryPoint) }
Базовые маркеры типов.
$(Member) - любая сущность тип которой отличен от void и '*'
$(Nullable) - любая сущность, которая может быть null
$(Collection) - Array, Vector.<T>
$(Hash) - Object, Dictionary
$(Boolean) - логическое
$(Number) - числовое
$(String) - строка
* - для использования пользовательских типов #pcc:type - для указания "секции", $(type) - для использования в теле шаблона, пользовательские типы, должны быть выше чем предустановленные шаблоны
Базовые шаблоны.
var, const
if, else, not
null, notnull
while, dowhile
for, forr
foreach, forin
par, sel, return
Сейчас данный функционал доступен в виде отдельного плагина. Но примерно к началу октября, я начну интеграцию плагина в редактор, поэтому есть почти целый месяц, чтобы что-то исправить или улучшить.
Плагин будет работать с AS3 и Haxe кодом.
Я буду рад любым комментариям, пожеланиям и т.д.
Всего комментариев 5
Комментарии
![]() ![]() |
|
1) Ставлю. То, что давно хотел, спасибо.
2) Чем гифки так записывать? |
![]() ![]() |
|
Слава, а сделай звуковой распознаватор речи для диктовки кода :о)
Ок флешдевелоп в 20 строке цикл от 1 до длины массива итемов Ок флешдевелоп подпишись на событие |
![]() ![]() |
|
Спасибо. Выглядит очень удобно) А для trace что-нибудь задумано? Было бы полезно как-то так: variable1.trace превращается в trace("variable1 " + variable1);
|
![]() ![]() |
|
Вы можете добавить такой шаблон сами, испытать его в работе, и если он окажется удобен, то сделать пулл-реквест в репозиторий, а я включу его в стандартные
![]() |
![]() ![]() |
|
Цитата:
2) Чем гифки так записывать?
|
Последние записи от СлаваRa
- Тестирование кода. Разворачиваем проект с помощью Gradle. (01.11.2015)
- Тестирование кода. Разворачиваем проект с помощью Apache Ant. (01.11.2015)
- [FlashDevelop] Postfix Code Completion (07.09.2015)
- из Flash на HaXe, из HaXe во Flash при участии NME (13.04.2013)
- Подключение ADOBE ASC 2.0 компилятора к FlashDevelop. Русская инструкция. (11.11.2012)