Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > С миру по строчке

Рейтинг: 5.00. Голосов: 4.

[FlashDevelop] Postfix Code Completion

Запись от СлаваRa размещена 07.09.2015 в 05:09
Обновил(-а) СлаваRa 07.09.2015 в 04:09

Контекстный генератор, сниппеты, макросы, ... - все это ускоряет написание кода, да, но заставляет как минимум использовать горячие клавиши, как максимум знать о существовании подобного функционала...
Постфиксный автокомплит - это новый функционал, который ускоряет и упрощает написание часто используемых конструкций без использования горячих клавиш.
Рассмотрим частую для AS3 проектов конструкцию:
Код AS3:
if(some != null) {
    some.doSomethong();
}
Да, этот код можно писать "каждый раз руками".. через какое-то время надоест и появится сниппет, который будет называться, скажем, notnull. Для использования надо будет нажать ctrl+b и далее выбрать сниппет из списка.. Используя постфиксный автокомплит написание данной конструкции будет выглядеть так:
Название: pcc_notnull.gif
Просмотров: 767

Размер: 60.7 Кб

Как это работает.
При вызове автокомплита редактор идет в папку Snippets\as3\postfixgenerators\ перебирает все шаблоны, выбирая из них те что подходят под тип сущности для которой был вызван автокомплит, и добавляет их(шаблоны) в список. Этот подход позволяет, во-первых, создавать пользовательские шаблоны, во-вторых применять один и тот же шаблон к разным типам, например:
Название: pcc_for.gif
Просмотров: 756

Размер: 111.0 Кб

Текст шаблона 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)
}
Для базовых коллекций будет использован текст "секции" #pcc:Collection, для числовых #pcc:Number.

Базовые маркеры типов.
$(Member) - любая сущность тип которой отличен от void и '*'
$(Nullable) - любая сущность, которая может быть null
$(Collection) - Array, Vector.<T>
$(Hash) - Object, Dictionary
$(Boolean) - логическое
$(Number) - числовое
$(String) - строка
* - для использования пользовательских типов #pcc:type - для указания "секции", $(type) - для использования в теле шаблона, пользовательские типы, должны быть выше чем предустановленные шаблоны

Базовые шаблоны.
var, const
Название: pcc_var_const.gif
Просмотров: 763

Размер: 86.9 Кб
if, else, not
Название: pcc_if_else_not.gif
Просмотров: 757

Размер: 112.5 Кб
null, notnull
Название: pcc_null_notnull.gif
Просмотров: 747

Размер: 83.3 Кб
while, dowhile
Название: pcc_while_dowhile.gif
Просмотров: 752

Размер: 91.9 Кб
for, forr
Название: pcc_for_forr.gif
Просмотров: 750

Размер: 147.7 Кб
foreach, forin
Название: pcc_foreach_forin.gif
Просмотров: 752

Размер: 91.9 Кб
par, sel, return
Название: pcc_par_sel_return.gif
Просмотров: 762

Размер: 107.1 Кб

Сейчас данный функционал доступен в виде отдельного плагина. Но примерно к началу октября, я начну интеграцию плагина в редактор, поэтому есть почти целый месяц, чтобы что-то исправить или улучшить.
Плагин будет работать с AS3 и Haxe кодом.
Я буду рад любым комментариям, пожеланиям и т.д.
Размещено в FlashDevelop , Editors\IDE
Комментарии 5 Отправить другу ссылку на эту запись
Всего комментариев 5

Комментарии

Старый 07.09.2015 17:55 ZackMercury вне форума
ZackMercury
 
Аватар для ZackMercury
1) Ставлю. То, что давно хотел, спасибо.
2) Чем гифки так записывать?
Старый 08.09.2015 12:59 GBee вне форума
GBee
 
Аватар для GBee
Слава, а сделай звуковой распознаватор речи для диктовки кода :о)

Ок флешдевелоп в 20 строке цикл от 1 до длины массива итемов
Ок флешдевелоп подпишись на событие
Старый 09.09.2015 00:24 DEVORON вне форума
DEVORON
Спасибо. Выглядит очень удобно) А для trace что-нибудь задумано? Было бы полезно как-то так: variable1.trace превращается в trace("variable1 " + variable1);
Старый 09.09.2015 04:04 СлаваRa вне форума
СлаваRa
 
Аватар для СлаваRa
Вы можете добавить такой шаблон сами, испытать его в работе, и если он окажется удобен, то сделать пулл-реквест в репозиторий, а я включу его в стандартные
Старый 19.09.2015 14:09 MikroAcse вне форума
MikroAcse
 
Аватар для MikroAcse
Цитата:
2) Чем гифки так записывать?
Я пользуюсь ShareX. Только в настройках нужн убрать "Start recording after" и поставить GIF FPS в 15.
 

 


Часовой пояс GMT +4, время: 02:33.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.