kayler-renslow / arma-intellij-plugin

A plugin for Intellij IDEA that allows for syntactical analysis, code inspections, and other nifty features for the SQF scripting language in Arma 3.
MIT License
41 stars 9 forks source link
arma sqf

Arma Intellij Plugin

License

Arma games are created and owned by Bohemia Interactive and Intellij is created and owned by Jetbrains. Arma Intellij Plugin was created by Kayler Renslow. The plugin and it's creator aren't affiliated with Jetbrains or Bohemia Interactive. This project is licensed under the MIT License. You don't need to contact me if you want to create derivatives or publish the project elsewhere.

Key Features

Download the Jar

Downloading the .jar is optional (See Install from JetBrains Plugin Repository below.).

Installation

Prerequisites

To install the plugin, you can install it from disk or install from JetBrains Plugin Repository.

Install From Disk (Need the .jar)

Install From JetBrains Plugin Repository

Video Walkthrough

https://www.youtube.com/watch?v=BOkfMCutb7U

Source Code

How to Clone and Edit Source for Arma Intellij Plugin

  1. You should know how to write Java and you should have experience using Intellij.
  2. Read the official documentation for Plugin development with Intellij. This will tell you how to prepare for a new Plugin project. Visit the docs here.
  3. By now you should have Intellij set up and a new project. Now go to the Main Menu Bar, then "VCS", then "Checkout", then "Github". Clone the Arma Intellij Plugin source. Now you will want to link that source code to the plugin project you created.
  4. Done

Some Information on the Source Code

None of the documentation files for SQF commands or BIS functions is inside the repo. This is intentional and keeps the repo size smaller. You may need to create a few directories to get the plugin started and possibly a few blank files with command names as the name (e.g. createVehicle command's doc file will be located in "/com/kaylerrenslow/a3plugin/lang/sqf/raw_doc/commands-doc/createVehicle" and it has no file extension like .txt or .html). Alternatively you could extract the documentation files out of the Arma.Intellij.Plugin.jar and place them inside your project.

Also, the Lexer and Parser is generated and is not committed either. You will need to find Header.bnf, Header.flex, SQF.bnf, and SQF.flex and run the generators. For generating .flex files, right click and click "Run JFlex generator". To generate .bnf files, right click and click "Generate Parser Code".

Useful links

Intellij Plugin documentation: