Status report: April 2019

Hello everybody,

This month brought a couple of changes. Specifically requested by our sponsor, I was able to refactor the “Refactor->Rename…” feature. Now, it no longer renames constructors when class names change. It also works from every caret position within the sources (meaning the class name, or in a “new Class()” expression, or within the type designation of a parameter or method). Trying to rename the “new” constructor itself does nothing. I was unable to disable (grey out) the menu item for the feature when the caret is on the “new” keyword, so the UI clue that the feature is unavailable is missing, but otherwise functions as expected.

The Standard Library location work has morphed into a better detection mechanism for Haxe Toolkits and their component pieces. We should be able to detect all standard configurations, and support non-standard configurations with ease. This work is getting close to finished.

I also worked on getting a version of the plugin that works with IDEA 2019.1. I have brought the build successfully forward to 18.2 and am working on 18.3, both of which have fundamental class signature changes that, unfortunately, require a return to separate sources per version. A plugin built with any 2018.x version will still run in any other 2018.x version of IDEA. (For those who are really interested: Rather than use separate trees, version-specific sources are being placed in the same directory as they were initially, using templates and copied/transformed to the ‘gen’ directory before compiling.)

What I worked on for our sponsors:

1) Refactor->Rename… (Complete)

What I worked on for the Community:

1) More progress on the new UI for standard library locations.

On hold:

1) Tab settings pages and code reformatting engine. This is mostly done, but it needs exhaustive unit tests to be written. The current set is minimal.

Next Month:

1) Build on 2019.1
2) New release
3) Finish tab settings changes.
4) Fix debugging C++ projects with Lime (stretch)
5) Add safeguards so that project rebuilds won’t erase directories outside of the project tree. (stretch)
6) Haxe 4 features? (stretch)

Sponsor priorities:

1) Refactor: New Class/Method/Var from Alt+Enter.
2) Better error detection. (#531) (Next up is dealing with @:allow issues.)
3) Haxe4

Be good, everybody!

-Eric