Just in time for Kickoff 2022, I’ve released new version 2.0.0 of the (unofficial) FRC Plugin for IntelliJ IDEA . Versions 2021.2.x and 2021.3.x of IntelliJ IDEA are supported for all editions (Community, Education, and Ultimate). Starting this year, I plan to increase the major version number each build season for better clarity of when the plugin supports the next build season. Hence the 2.0 versioning after several years of v1.x (and 0.x) releases.
You can install by going to File | Settings | Plugins, select the “Marketplace” tab, and then search for “FRC”. Select the “FRC” plugin and click the Install button. After it completes, you may need to restart IntelliJ IDEA.
To upgrade, go the File | Settings | Plugins, select the “Installed” tab, then search either for “FRC” or for “/outdated”. Click the “Update” button. After it completes, you may need to restart IntelliJ IDEA.
A big add this release is Kotlin Project Templates in the New Project Wizard. All project based templates can now be created in Java or Kotlin. As a disclaimer, Kotlin is not officially supported by FRC/WPI. But many teams (including mine) have used it the past few years. That said, just know as an unofficial language, you may not be able to get assistance at events if you have issues.
None of the examples have Kotlin templates, just the Project Templates ones. There are just too many examples to port over to Kotlin. That said, I will look at porting over one or two representative examples and making them available in a future version of the plugin. Let me know if there are particular ones you would like to see port to Kotlin.
Note that all the (Java) templates, both Projects and Examples, are direct ports from the WPI Lib VS Code plugin.
In addition to Kotlin templates, you can add Kotlin support to a project. So even if you create the project as a Java project, you can have Kotlin support. That way you can do some work in Kotlin as a way to introduce it to yourself and your students. Writing tests, or some simple utility functions in Kotlin is a great way to get started, and to fall in love with Kotlin
Although added last year, it’s worth noting that Romi templates are available. My team had great success using Romi robots for teaching remotely. And we continued to use them this year as it allows for each student to have their own robot when teaching programming, specifically the WPI Lib framework. And the other subteams can work on the “real” robot while the software team learns on Romi robots.
On the less glamorous side of things, I implemented a custom Error Report Submitter. If an error or exception occurs in the FRC Plugin, you can submit a report of the problem to me with just a couple of button clicks, starting with the flashing red explanation point in the lower right corner. That icon indicates an error occurred somewhere in the IDE. If it is the FRC plugin (or any other plugin that has a Error Report Submitter), there is an option to send a report via a button click. I do kindly ask you to submit reports should an issue occur so I can resolve them. As a one person shop, my testing may not catch everything and all possible use cases. Thanks!
As a reminder, here are some of the other features the plugin provides.
While the Gradle “riolog” task can be used to view the riolog output in the Gradle build window, the FRC Plugin provides a dedicated RioLog Console Tool Window which allows for pausing, restarting, search, and clearing of the output, either on demand or automatically upon robot restart. It also provides native supports the awesome Grep Console plugin providing you with color syntax highlighting, output folding – so you can have those verbose debug statements folded out of view until you need them – as well as the ability to filter out lines. (FYI, I have no affiliation with the free Grep Console plugin. I just think its a great plugin and therefore wanted to provide support for it, if for no other reason then for my own use )
There are several command based robot class templates to make coding easier. For example, when creating a command, you can select required subsystems:
The resultant created command will have the appropriate call to
In Commands written in Kotlin as well:
Projects created via the new project wizard have run debug configurations generated for them. This not only makes building and deploying easier – and accessible from all the familiar run/debug keyboard shortcuts – but it makes debugging easier. No more digging through the docs or Chief Delphi to refresh your memory on how to configure things to attach your Robot to the debugger. Simply run the “Build & Deploy Robot for Debugging” configuration, then use one of the “Debug Robot” debugger tasks (depending on how you are connected to the robot) to attach IntelliJ IDEA’s debugger.
You can also access the gradle based run/debug configurations from the Gradle tool window:
When a WPILib update is available, the FRC Plugin will provide a notification to you. And with one click, your gradle build file will be updated to the new version, and your project re-imported (i.e. sync’ed).
The check for update can also be run manually from the Tool menu:
As always, I sincerely appreciate any feedback you have. Please let me know if you are finding the plugin worthwhile by commenting below. Also please feel free to open any feature requests, or report any issue via the Project’s Issue Tracker . I have a few more minor tweaks I hope to get done and pushed out next week before my Software Mentoring duties become my main focus for Q1.
Good luck to all the teams this year. I hope this plugin helps you to develop your robot with pleasure.