PDA

Просмотр полной версии : Создание «продуманных» сниппетов в FlashDevelop


koIIImarik
10.04.2010, 16:37
Всем привет.

Интересно обсудить с кем-нибудь, кто пользуется FlashDevelop, как вы создаёте сниппеты, которые работают немного сложнее, чем обычные вставки кода. Вот пример одного моего сниппета для создания get/set подобных функций, почему я не люблю использовать стандартный Shift + Ctl + 1 и создание тру get/set это уже другой вопрос, так что просто пример моего сниппета:

/**
* Functions for work with parameter $(Clipboard).
*/

/**
* Function to set scores $(Clipboard) value.
*
* @param value new value of $(Clipboard) parameter.
*/
public function set$(Clipboard)(value:String):void
{
this.$(Clipboard) = value;
}

/**
* Function to set scores $(Clipboard) value.
*
* @return value of $(Clipboard) parameter.
*/
public function get$(Clipboard)():String
{
return this.$(Clipboard);
}

Запись $(Clipboard) означает, что на это место будет вставлен текст, который я перед этим скопировал. То есть если я скопировал название переменной scores, то получится следующий текст:

/**
* Functions for work with parameter scores.
*/

/**
* Function to set scores scores value.
*
* @param value new value of scores parameter.
*/
public function setscores(value:String):void
{
this.scores = value;
}

/**
* Function to set scores scores value.
*
* @return value of scores parameter.
*/
public function getscores():String
{
return this.scores;
}

Как видно из кода, функции будут названы setscores и getscores, что не очень правильно, а правильным было бы setScores и getScores.

Вопрос: сталкивался ли кто-нибудь с подобной проблемой и, если да, то как вы её решали?

Ещё интересует, можно ли как-нибудь использовать русский текст в сниппетах? Просто, когда я пытался вставлять русский текст в сниппет, он в коде вставлялся в качестве каких-то иероглифов.

Zik.
10.04.2010, 16:54
Может скопировать "Scores", не?

koIIImarik
10.04.2010, 16:57
2 ZIK68:
Тогда будут получаться записи наподобие return this.Scores;, что тоже не правильно.

Понятно, что всегда можно подправить «неудачные» моменты вручную, я так сейчас и делаю, но хотелось бы узнать, есть ли способ полностью автоматизировать эту работу.

iNils
10.04.2010, 17:07
Я использую такой
$$(access=public,private,internal,protected) $$(override=,override )$$(static=,static )function get $$(name) ():$$(type=Number,String,Boolean,int,uint) {
return _$$(name);
}
$$(access=public,private,internal,protected) $$(override=,override )$$(static=,static )function set $$(name) (value:$$(type)):void {
if (value == _$$(name)) {
return;
}
_$$(name) = value$(EntryPoint);
}

koIIImarik
10.04.2010, 17:11
2 iNils:
Спасибо огромное, очень крутой сниппет. Скажите пожалуйста, где вы узнали о подобных конструкциях и о возможностях создавать диалоговые окна для сниппетов? Я первый раз встречаю такое.

И, может быть, вы знаете как обойти баг с кириллицей в сниппетах?

iNils
10.04.2010, 18:47
Их добавили в одной из версии, не помню в какой. А узнать о новинках можно на форуме фд, с каждым релизом есть текст с описанием, что добавили и пофиксили. Более подробно можно узнать из комментариев в svn к каждой ревизии. Например к ревизии 941 (http://code.google.com/p/flashdevelop/source/detail?r=941).

К слову об удобстве. Это конечно большой шаг вперед, но хочется больше возможностей. И радиобаттоны, и выпадающие списки, и условия, и произвольный порядок.

А кириллица... просто кодировка сниппета и документа не совпадает. Но смена вручную мало чем поможет, там другой баг есть, но про него Mur4ik уже написал (http://www.flashdevelop.org/community/viewtopic.php?p=29612#p29612). Так что когда (ну когда же!?) выйдет релиз 3.1 баг уже наверно поправят.

koIIImarik
10.04.2010, 22:13
Клёво, спасибо за подробное описание ещё раз =) Но вроде как, если сниппеты сохраняются в кодировке UTF-8, которая, как я понимаю, по-хорошему должна использоваться там, чтобы поддерживать мультиязычность, то сниппеты и документы у меня используют одинаковую кодировку.

В общем будем ждать следующего релиза =)