Haxe plugin for Intellij IDEA and Android Studio

This plugin allows you to develop multi-platform programs using the Haxe language with Intellij IDEA, Android Studio and other IntelliJ IDEA-based IDEs by JetBrains. It requires Intellij IDEA Ultimate or Community Edition, versions 2016.1 through 2019.1, or Android Studio versions 2.2 through 3.4.

Technical Support

Support for this plugin is available through the project's home page: http://intellij-haxe.org, or the github issues list http://github.com/HaxeFoundation/intellij-haxe/issues.

Past Versions Announcement

Very, very few users are continuing to use this plugin with older versions of IDEA. Plugin version 0.11.2 was the last version published that supported IDEA 15.x and previous. (If you and/or your business need these or previous versions supported, then contact the project maintainers at the project page (http://intellij-haxe.org) and continuing support can be arranged.)

We have moved!

As of January 2017, the primary maintained branch of this plugin has moved to the Haxe Foundation's github repository. Please update your links and git clones to point to http://github.com/HaxeFoundation/intellij-haxe


JetBrains' official plugin installation documentation is at https://www.jetbrains.com/idea/plugins/. The Haxe plugin page is https://plugins.jetbrains.com/plugin/6873?pr=idea.

To install using IDEA (from Intellij plugin repository):

Install and start IDEA. It is found at https://www.jetbrains.com/idea

If you do not have a project open in IDEA (and after first-time setup):

If you already have a project open in IDEA:

To manually install the latest or a previous Github release

Download the intellij-haxe.jar file from the release you want from Github releases. More recent releases have begun to be named intellij-haxe-<release>.jar, where <release> is the version of Idea for which the Jar is built. (e.g. intellij-haxe-2016.1.jar) Make sure that you pick the proper one for your release. A message should pop up and warn you if a release is incompatible.

If you do not yet have a project open in IDEA (and after first-time setup):

If you already have a project open IDEA:


Note that installation as described above installs a fully built version of the plugin (the .jar file). Most users do not have to build the product for themselves. This section is for those who like to dig a little deeper.

This describes the command line build. To build from within Intellij IDEA itself, see the contributing document to setup your development environment. Much more detail is provided there for command line build options as well.


Build command

Use the command matching your system and replace <IDEA_VERSION> with desired version, ex. 2017.3.4


gradlew.bat clean build verifyPlugin -PtargetVersion=<IDEA_VERSION>


./gradlew clean build verifyPlugin -PtargetVersion=<IDEA_VERSION>

NOTE: You can run the build without tests by substituting build with buildPlugin on the lines above

This will generate a intelllij-haxe-<release>.jar file at the root of the project that you can then install from disk (see “Install the latest or a previous Github release).

Note that the gradle build configuration is set to use a default version when no version is provided(see gradle.properties) when developing in IDEA this version will be used. You may want to change defaultIdeaVersion to the version you are targeting.



Note that the first time you build the project Gradle will download the requested version of IntelliJ Ultimate and any other other dependencies. This can be quite slow at times and prone to failure. For repeated building and testing, we recommended that you set up your machine as described in the contributing document.



Same as for build.

Test command


gradlew.bat test -PtargetVersion=<IDEA_VERSION>


./gradlew test -PtargetVersion=<IDEA_VERSION>

This will build and run the tests and display the JUnit report.

Use the hxcpp debugger

NOTE: IDEA Community Edition currently will not start an IDE-based debugging session. For that, IDEA Ultimate is required. Command-line debugging is available because that is a feature of the Haxe language itself. See the hxcpp-debugger project for more information.

The hxcpp debugger functionality conforms to the Haxe v3.0 debugger. In order to use this, you must:

Here's a snippet you can use: (Thanks to @isBatak)

  #if (debug && cpp)
    var startDebugger:Bool = false;
    var debuggerHost:String = "";
    var argStartDebugger:String = "-start_debugger";
    var pDebuggerHost:EReg = ~/-debugger_host=(.+)/;

    for (arg in Sys.args()) {
      if(arg == argStartDebugger){
        startDebugger = true;
      else if(pDebuggerHost.match(arg)){
        debuggerHost = pDebuggerHost.matched(1);

      if(debuggerHost != "") {
        var args:Array<String> = debuggerHost.split(":");
        new debugger.HaxeRemote(true, args[0], Std.parseInt(args[1]));
      else {
        new debugger.Local(true);


See the contributing document.