The great module rename in the IntelliJ IDEA codebase
We’ve just pushed a major naming change to the IntelliJ codebase. For years, we hadn’t set or followed any naming conventions for modules in the IntelliJ IDEA source, and things had gotten into a total mess (for example, we had a variety of names such as hg4idea, jetgroovy, ByteCodeViewer, testng_rt, and lang-impl). As usage of IntelliJ Platform grows, this has been causing more and more problems.
So now we’ve finally put all names of modules in IntelliJ IDEA and IntelliJ Platform sources in order. This means that all 357 modules in the intellij-community project have been renamed.
This doesn’t affect binary distributions of IntelliJ-based IDEs, as JAR filenames haven’t been changed.
For example, here are some of the names as seen in Find Usages before the change:
And here’s a similar view, after the change:
If you’re developing a plugin for an IntelliJ-based IDE, this change shouldn’t affect you because plugins don’t refer to modules by their names, but depend on JAR files, and we haven’t changed any file names.
However, if you’re developing a custom IDE based on IntelliJ Platform, you’ll need to adapt your code to the change. First, you’ll need to be using IntelliJ IDEA 2018.1 EAP. Then open your project and update its sources to use the latest revision of intellij-community‘s master branch.
The 2018.1 EAPs have special support to automatically update your local run configurations and additional modules to the new module names. Build scripts for your product should work properly but will show warnings if your scripts refer to platform modules by their old names; it makes sense to fix such references because eventually compatibility code will be removed from the platform build scripts.
The ModuleRenamingHistory component in the .idea/modules.xml file contain mapping from old to new names if you need it.
Subscribe to Blog updates
Wayland Support for IntelliJ-based IDEs
For Linux users of IntelliJ-based IDEs, an exciting advancement is on the horizon – the upcoming support of the Wayland display server protocol. This update is set to bring a host of benefits, including solving the age-old fractional scaling problem and elevating desktop integration when working wit…
Language Server Protocol (LSP) for Plugin Developers
With the 2023.2 release cycle, IntelliJ-based IDEs now support the Language Server Protocol (LSP). Discover how this may improve the assistance for custom language-specific features and learn how to begin integrating LSP into a plugin for your IDE.
Busy Plugin Developers Newsletter – Summer 2022
Read this Newsletter to learn about the latest JetBrains Marketplace news and plugin development tooling updates.
IntelliJ Project Migrates to Java 17
The source code of the IntelliJ project was recently migrated to Java 17. We still have some modules compiled to be compatible with older Java versions so we can support running users’ projects under these versions. However, most of the platform and plugin modules now use Java 17, and the upcoming 2…