Arguments
From FlashDevelop
Contents |
Introduction
Arguments are dynamic variables that can be used in templates, snippets, commands, menus and macros. These are processed on runtime and some of them require user interaction. There are also predefined arguments for the build process and these you can view in the project's setting dialog using the command builder dialog under the Build tab.
Default arguments
Here is a list of currently available default arguments:
$(EntryPoint) - Selection's start position
$(ExitPoint) - Selection's end position
$(Boundary) - Keep all text between boundaries
$(CSLB) - Coding style line break (to optionally insert a line break before { characters)
$(CBI) - Comment block indentation style (to optionally insert a space before * in bloc comments)
$(STC) - Space or tab character based on the setting Use Tabs.
$(SelText) - Selected text
$(CurWord) - Word at cursor position
$(CurSyntax) - Currently active syntax
$(Clipboard) - Clipboard content
$(CurFile) - Current file
$(CurFilename) - Current file's name
$(CurDir) - Current file's directory
$(DesktopDir) - User's desktop directory
$(SystemDir) - Windows system directory
$(ProgramsDir) - Program Files directory
$(PersonalDir) - User's personal files directory
$(WorkingDir) - Current working directory
$(AppDir) - FlashDevelop program directory
$(BaseDir) - FlashDevelop files directory
$(UserAppDir) - FlashDevelop user directory
$(OpenFile) - Asks for a file open with a dialog
$(SaveFile) - Asks for a file save with a dialog
$(OpenDir) - Asks for a directory with a dialog
$(TypPkg) - File package
$(TypName) - Current type name
$(TypPkgName) - Current package + type name
$(TypKind) - Type kind (interface, class)
$(TypClosestListName) - Closest Array or Vector var name
$(TypClosestListItemType) - Closest Vector item type
$(MbrName) - Current member, ie. current method
$(MbrKind) - Member kind (const, var, function)
$(MbrTypPkg) - Member's type package
$(MbrTypName) - Members's type name
$(MbrTypePkgName) - Members's type qualified name
$(MbrTypKind) - Members's type kind (interface, class)
$(ItmTypName) - Current item name at cursor position
$(ItmFile) - File where the item is declared
$(ItmKind) - Item kind (const, var, function)
$(ItmTypPkg) - Item's type package
$(ItmTypName) - Item's type name
$(ItmTypePkgName) - Item's type qualified name
$(ItmTypKind) - Item's type kind (interface, class)
$(ItmUniqueVar) - Unique variable name (i, j... etc)
Here are examples of menu item using default arguments:
<button label="Open Explorer" click="RunProcess" tag="explorer.exe;/e,$(Quote)$(WorkingDir)$(Quote)" /> <button label="Run current file" click="RunProcess" tag="$(Quote)$(CurFile)$(Quote)" image="275|9|0|0" shortcut="F11" />
Dynamic arguments
Dynamic arguments are special variables that can specify default values and the values are confirmed from the user with a dialog. These variables are not in use by default as they may confuse users that don't know about them.
Here is an example snippet using default and dynamic arguments:
for (var i:int = $$(i=0); i < $$(count=array.length); i++) $(CSLB){
$(EntryPoint)
}
Custom arguments
These are arguments that user can specify in the Custom Arguments dialog under the Tools menu. There is only one default argument used in the templates: $(DefaultUser)
Here is an example AS2 class template using default and custom arguments:
/**
$(CBI)* ...
$(CBI)* @author $(DefaultUser)
$(CBI)*/
class $(EntryPoint) $(CSLB){
}
Project template arguments
Project templates have very limited arguments support:
User created Custom Arguments (like $(DefaultUser), see Tools > Custom Arguments...) and the following list:
$(CBI) - comment block indentation style (to optionaly insert a space before * in bloc comments)
$(ProjectName) - original name of the project
$(ProjectID) - safe name of the project (for filenames for example)
$(PackageName) - specified package in new project dialog (ie. "com.foo")
$(PackageDot) - specified package with an ending dot if not empty (ie. "com.foo." or "" with no package)
$(PackagePath) - package as path (ie. "com\foo")
$(PackagePathAlt) - package as path with forward slashes (ie. "com/foo")
$(PackageSlash) - package as path with ending slash if not empty (ie. "com\foo\")
$(PackageSlashAlt) - package as path with ending forward slash (ie. "com/foo/")
These arguments will be replaced in:
- File names (see in existing templates for usage examples),
- File contents if the file is named "somefile.ext.template" (ie. Main.as.template).