This is the first test release of the FHQ ArmADev plug-in for Eclipse. ArmADev is a plug-in that extends the Eclipse IDE in such a way that you can develop ARMA 2 and ARMA 2 Operation Arrowhead projects with it. It mostly centres around the SQF editor and project management.
ArmADev is still under development, and in a very early stage (currently 0.0.12), but I have tested it for a while now and it seems to be usable. Still a bit rough around the edges though. Therefore I decided to release it in order to collect bug reports and feedback.
ArmADev is released under the Creative Commons Attribution Unported License.
The following features are implemented and work:
- Custom editing perspective.
- Integrated SQF editor. The SQF editor is automatically opened for ARMA script function (SQF) files, and supports the usual features one would expect from such an editor:
- Syntax Highlighting. Keywords are coloured by their type and the combination of local and global arguments they accept. Strings, comments, and other elements are also coloured.
- Automatic formatting and auto-indent. Braces are automatically indented, and brackets can be automatically matched. Comments can be formatted automatically.
- Content Assist. Hovering the mouse pointer over a keyword will pop up an explanation of the keyword including parameters and description. A custom view is available that displays this information permanently as a side-bar.
- Auto-completion. Hitting CTRL+SPACE will use what you entered and propose completions. Currently only works for keywords and functions, I want to add support for local and global variables later.
- Folding. Since there are no real high-level constructs in SQF, folding is done via special comment markers (“//+” to start a fold, “//-” to end it) and can be nested at any depth.
- Template support. CTRL+SPACE will also propose template expansions if their name matches with the prefix in the editor.
- Integrated Project Management. There are two New Project Wizards available currently:
- “New mission from existing source” will create a new project based on your choice of a directory. Checks whether a mission.sgm file is present.
- “New mission from scratch” will create a new mission project and folder, and can pre-generate some files (like description.ext, briefing.html, loadscreen and overview picture, etc).
- Two custom “Views” (In Eclipse, a view is a window that is not an editor, i.e. something that displays information).
- “COMREF” view displays the comref entry of the current selection. Double-click on “addAction” in the editor, and it will show an explanation of the addAction command.
- “RPT View” displays the last n kilobytes of the RPT file. If you had script errors during your mission, you can scroll back here to see them.
In order to get ArmADev, you need to do the following:
- Install the latest Eclipse (at least 4.1) if you don't have it. Eclipse can be downloaded for free from http://www.eclipse.org/.
- Start Eclipse, and go to Help->Install New Software.
- Click the 'Add' button
- Enter a name in the Name field, for example “ArmADev updates”
- In the URL field, enter "http://armadev.friedenhq.org/"
- Click OK
- The list should refresh and an ArmADev feature should appear under the “ArmADev" category. Check the Checkbox.
- Click OK.
Eclipse might need to install additional plugins on which ArmADev depends. Also, it will complain that ArmADev is unsigned. Once it has installed, Eclipse will need to restart. To verify that the installation worked, go to Help->About Eclipse. There should be a new button “FHQ ARMADEV”.
There is a bit of preliminary online help available under Help->Help Content->ArmAScript Development. It's not much, but should get you started.
Features that I have planned for the future:
- A campaign project type. This would bundle a couple of mission projects into a campaign, with the ability to test missions separately and then “build” the campaign out of it, with sharing of data such as function module extension, identities, sounds/music, basically anything that goes into description.ext
- Specialized, forms-based editors for briefing.html, description.ext, and similar files.
- Localization support. An editor for stringtable.xml, and automatic insertion of string keys where appropriate (for example, as popup in the SQF editor)
- Loadout editor and config/Class reference. I'd like to be able to edit a loadout for a solider or cargo and then insert it at appropriate places, with constraints (i.e. a soldier loadout only has 12 magazine slots, etc).
- More wizards. I'd like to automate a few of the more tedious things like writing a briefing and managing tasks, but also things like wizards for specific files or creating scripts from an SQF template.
A bit further into the future:
- A GMF-based FSM editor. Edit FSM's directly in Eclipse.
- “Managed” mission building. The project manager keeps control of certain files (like init.sqf) and can automate some things. A bit like the mission wizard within the game, but with more flexibility and freedom, for scripting newbies.
- SQF syntax analysis and parsing to prevent script errors.
- “Library Plug-ins”. A lot of good pre-made scripting solutions (like SHK Taskmaster, UPSMON, etc) exist that can be used in a mission. They invariably boil down to copying files into the project and hooking into init.sqf. This could be automated in the form of a “library plug-in”.
I am looking for bug reports and feedback on this right now. Personally, I only edit missions, but I'd like this to be useful for addon makers also, so I'd also like to hear from Addon makers what kind of functionality they'd like to see.
Finally: I know there is another IDE based on Netbeans out there. I decided to go ahead with this one though out of a few reasons. For one thing, I was already working on it and I don't like to quit a project. Secondly, I like Eclipse better than Netbeans (a purely personal matter of taste).
Anyway, as I said, feedback is very welcome