PostfixCodeCompletion plugin for FlashDevelop/HaxeDevelop
The basic idea is to prevent caret jumps backwards while typing code. Kind of surround templates on steroids baked with code completion.
- Last release FlashDevelop.
- Haxe 3.2.1 or higher - for Haxe projects.
Download the latest release. Open the .fdz file with FlashDevelop.
Available templates for Haxe:
.if
– checks boolean expression to be trueif (expr)
.else
– checks boolean expression to be falseif (!expr)
.null
– checks nullable expression to be nullif (expr == null)
.notnull
– checks expression to be non-nullif (expr != null)
.not
– negates value of inner boolean expression!expr
.foreach
– iterates over collectionfor(it in expr
).for
– forArray
,Vector
,Iterator
,Iterable
andString
surrounds with loopfor (i in 0...expr.length)
.for
– for Numeric surrounds with loopfor (i in 0...expr)
.var
– initialize new variable with expressionvar x = expr;
.new
– produces instantiation expression for typenew T()
.par
– surrounds outer expression with parentheses(expr)
.return
– returns value from method/propertyreturn expr;
.while
– uses expression as loop conditionwhile (expr)
.dowhile
– uses expression as loop conditiondo{...} while(expr);
.sel
– selects expression in editor.trace
– surrounds expression withtrace(expr);
Available templates for AS3:
.constructor
– surrounds with expressionObject(expr)['constructor']
.if
– checks boolean expression to be trueif (expr)
.else
– checks boolean expression to be falseif (!expr)
.null
– checks nullable expression to be nullif (expr == null)
.notnull
– checks expression to be non-nullif (expr != null)
.not
– negates value of inner boolean expression!expr
.foreach
– iterates over collectionforeach (var x in expr)
.forin
– forObject
surrounds with loopfor (var key:String in expr)
.forin
– forDictionary
surrounds with loopfor (var key:Object in expr)
.for
– forArray
,Vector
andString
surrounds with loopfor (var i:int = 0; i < expr.length; i++)
.for
– for Numeric surrounds with loopfor (var i:int = 0; i < expr; i++)
.forr
– forArray
,Vector
andString
reverse loopfor (var i:int = expr.length - 1; i >= 0; i--)
.forr
– for Numeric reverse loopfor (var i:int = expr; i >= 0; i--)
.var
– initialize new variable with expressionvar x = expr;
.const
– initialize new variable with expressionconst x = expr;
.new
– produces instantiation expression for typenew T()
.par
– surrounds outer expression with parentheses(expr)
.return
– returns value from method/propertyreturn expr;
.while
– uses expression as loop conditionwhile (expr)
.dowhile
– uses expression as loop conditiondo{...} while(expr);
.sel
– selects expression in editor.trace
– surrounds expression withtrace(expr);
Сниппеты для постфиксного автокомплита представляют из себя улучшенный вид стандартных сниппетов и распологаются в FlashDevelop\Snippets\Language\postfixgenerators
, также в настройках плагина можно подключить пользовательские директории.
$(PCCMember)
– любая единица кода$(PCCBoolean)
– логическое$(PCCNullable)
– единица кода, которая может принимать значение null$(PCCCollection)
– коллекция элементов, расположенных в памяти непосредственно друг за другом$(PCCHash)
–Object
|Dictionary
|etc for as3,Map
|etc - haxe$(PCCNumber)
– Numeric$(PCCString)
–String
- https://www.flashdevelop.org/wikidocs/index.php?title=Arguments
Маркеры можно использовать вместе используя разделитель |
, например сниппет if($(PCCBoolean|PCCNullable)$(EntryPoint))
будет работать как для логических так и для любых единиц кода, которые могут принимать значени null.
Кроме этого сниппеты поддерживают условия, для которых использутся разделитель #pcc:PCCМаркер
или #pcc:T
, например сниппет:
#pcc:PCCCollection
for (var $(ItmUniqueVar):int = 0; $(ItmUniqueVar) < $(PCCCollection).length; $(ItmUniqueVar)++) $(CSLB){
$(EntryPoint)
}
#pcc:PCCNumber
for (var $(ItmUniqueVar):int = 0; $(ItmUniqueVar) < $(PCCNumber); $(ItmUniqueVar)++) $(CSLB){
$(EntryPoint)
}
#pcc:flash.display.DisplayObjectContainer
for (var $(ItmUniqueVar):int = $(flash.display.DisplayObjectContainer).numChildren; $(ItmUniqueVar) >= 0; $(ItmUniqueVar)--) $(CSLB){
$(EntryPoint)
}
развернется в код
- для массива:
for (var i:int = 0; i < expr.length; i++) {
|
}
- для числовых:
for (var i:int = 0; i < expr; i++) {
|
}
- для
flash.display.DisplayObjectContainer
и наследников:
for (var i:int = expr.numChildren; i >= 0; i--) {
|
}