Author: krzmbrzl
Author Website:

Version: 0.7.4

Short description: This is a plugin I have written for the Eclipse IDE. It's named "SQDev" and it aims for providing the possibility to develop ArmA projects from within Eclipse.

Date: 2017-10-16 12:40

Comments: (0)


SQDev - SQF Developing in eclipse


If you have had enough of these or similar log entries during the code development then this post is exactly for you!

I'd like to use this post in order to present you a plugin I have written for the Eclipse IDE. It's named "SQDev" and it aims for providing the possibility to develop ArmA projects from within Eclipse.
But the goal is not only to simply provide the ability to do so, but rather give the developer as many tools as possible in order to facilitate the developing process. The live syntax check is only one example for such a facilitation.
I am now working for about 3 years on this plugin and I now have the feeling that it is good enough to share it with you guys.

There are editors included for the following file types: .sqf, .ext, .cpp, .hpp, .sqm and for a Stringtable.xml
Basic syntax highlighting and content-assist for all editors
Full macro support in all file types (highlighting + content-assist)
Advanced syntax highlighting and content-assist for the SQF-Editor
Live syntax-check for the SQF-Editor with basically no restrictions - Just code in a way the ArmA engine understands and the plugin will get it too (minor exceptions aside)
Hover-Information for SQF commands inclusing the majority of the information listed on the respective BIKI page
The BIKI page of each command is only one click away when using the SQF-Editor
Graphical user interface for editing the Stringtable.xml

NewProjectWizard - Creates a new mission with the needed folder infrastructure so you can start coding right away
Import- and ExportWizard - Import and export your missions to and from eclipse
NewFileWizard - Creates a new SQF-file with a generic header containing the name of the project, of the script itself and the author.

A big settings framework allowing you to customize the plugin to your needs and preferences (Window -> Preferences)
Integrated RPT-Viewer - No more switching between the editor and the file explorer in order to look into the local log files
Custom SQDev perspective in eclipse that adapts the UI to the needs of a SQF scripter
Parse tree visualization - See how the engine will interpret your code
Supports both: Windows and Linux
You are not dependent on me updating the plugin if a new SQF command is introduced as the plugin has a command-update functionality that reads all commands and the corresponding information from the BIKI itself. That means you can update the used commands whenever you feel the need for it (Can be done from within the preferences)

Installation / Usage:
Download and install eclipse (Which version doesn't matter as long as it is a recent one)
Download the latest version of the plugin
Start eclipse
If you are starting eclipse for the first time it will ask you for a workspace location where it will store all it's files. Choose any location you want except the ArmA folder in your documents as the plugin takes care of transferring the files there by itself.
Navigate to Help -> Install New Software
Write "SQDev" into the name field
Archive... and then navigate to the dowloaded zip-file
Smash Next until the plugin has been installed
Restart eclipse
Check out the preferences (Window -> Preferences) and make sure the paths are set correctly. You also want to turn on "Auto-Export" in the Linking catgeory unless you want to keep your mission in the actual ArmA directory in sync manually. When Auto-Export is turned on it will copy the current state of the project into the ArmA directory every time you save a SQF-file (Note that this behaviour is specific to SQF-files at the moment!)

I am currently working on a new wiki that contains a detailled description of every aspect of the plugin but for now there is only this post and the (partly outdated) wiki on GitHub. In there you can also find a list of features I am planning to implement into SQDev.
If you have any questions or need some help with the plugin you can join my discord channel (see Feedback and contact).

If you are having any trouble with this release come and pay me a visit on the official SQDev-Discord.

Source code + Issue tracker:
The plugin is maintained on GitHub. That means you can at any time take a look into the source code of it. But it does also mean that all bug reports and feature requests have to be created there. If you experience a bug please follow the following steps:
Make sure noone else has filed this bug before by having a lok at the list of known bugs
Try to reproduce the error - The more detail you can provide on this the likelier it is that the bug gets fixed
Create a new issue on GitHub and describe the bug with as many details as possible
Attach some general system information to your bug report. You can do so by using the "Plugin info creator" of the plugin itself that is accessible through the toolbar (red exclamation mark on a green circle)

There is also a list of known feature requests, so please try to avoid duplicates. But you are more than welcome to comment on these requests so I can see what you are thinking about them.

Feedback and contact
You can leave your feedback here in this thread. However for faster responses and a more direct contact to me I'd suggest you to join my discord channel. Do not get confused because of my second Nickname (Raven) there.

Improved: Switched to latest ANTLR release (4.7) which should decrease the parse-time
| Fixed: Continious NullPointerExceptions during normal coding
| Fixed: Building projects incredibly slow
| Fixed: Increasing command-access time during validation in builder
| Fixed: Permission problems when creating dummy directories
| Fixed: Missing return value after project building

| Added: Parser testcases for improved stability throughout development
| Added: Possibility to create necessary file-infrastructure as dummy on machines that don't have ArmA installed
| Added: MP option to Project wizard
| Added: Global Project Parsing
| Added: SQDev Project Nature for identifying SQDev projects properly
| Added: Custom SQDev Navigator (experimental only)
| Improved: SQDev projects are now encoded with UTF-8 per default (independently from the system's default)
| Improved: Command info is now two staged (first basic, then full)
| Improved: Editors now restart automatically after command update
| Improved: Command update now uses the BIKI API
| Improved: SQF validation is no longer bound to the SQFEditor allowing for more flexible usage
| Improved: Hidden files are now ignored during export
| Improved: All parsing is now done with the SLL(*) approach
| Fixed: Little bugs in command update
| Fixed: Error markers are now displayed on external files as well
| Fixed: (Un)Indentation of whole selection area is no longer broken```

| Added: Rudimentary support for mod projects (creation + import)
| Fixed: Wrongly escaped quotation marks in config files
| Fixed: Binary operators that don't have (yet) a right argument causing a NullpointerException during parsing
| Fixed: Error occuring on startup of the StringTableEditor
| Fixed: Inappropriate selection in the package-tree of the StringTableEditor
| Fixed: Error during command update on windows machines
| Fixed: RPTViewer formatting now works as expected
| Fixed: Error markers only appearing at the start of an element instead of underlining it completely
| Fixed: Endless loop in SQDev-Editor when typing in a '@'
| Improved: Numbers between 0 and 1 can now be entered as '.x' (instead of '0.x') without getting an error
| Improved: Return value is now determined according to the context in which the operator is used
| Improved: Operators having multiple return values depending on the used syntax are now respected
| Improved: Parsing now gets triggered by content change instead of keyboard inputs
| Improved: Vital commands (control structures) can no longer be left out

| Added: Preference specifying whether a notification should pop up on parseMode change
| Improved: Includes now check for the use of a backslash
| Improved: SQF parser now recognizes numbers in scientific and hexadecimal notation
| Fixed: Parsing getting really slow under certain circumstances
| Fixed: Files do no longer get parsed multiple times at once
| Fixed: Includes on unix systems no longer fail because of backslash
| Fixed: Mulitline comments not being highlighted immediately

- eclipse

Forum topic:
- BI forums

Enable javascript to be able to download from Armaholic please!

Tags: Config,   Eclipse,   Plugin,   Program,   Script,   Sqf,   Tool