IntelliJ IDEA 2021.1 or later is required to use this plugin.
Only installations, which use the bundled JetBrains Java runtime, support the JCEF engine for rendering.
Please make sure that a Java JDK, version 11 to 15 is installed. Building the plugin is only supported with Java 11 or later.
./gradlew clean build
After executing these commands the plugin is available at ./build/distributions/intellij-appmap-<versin>.zip
.
The content of plugin-description.md
is converted into HTML as part of the build process. The HTML content is displayed as description on the JetBrains marketplace and in plugin lists in the IDEs.
The content of CHANGELOG.md
is converted into HTML as part of the build process and used as content for the plugin's change notes.
- Optional: Update content of
description.md
. - Optional: Update section
[Unreleased]
in fileCHANGELOG.md
. This content will be used for the change notes. - Update the
pluginVersion
property ingradle.properties
, e.g. changepluginVersion=0.1.0-SNAPSHOT
topluginVersion=0.1.0
. - Build the plugin ZIP file
The build output is located at
./gradlew clean build verifyPlugin
./build/distributions/intellij-appmap-<version>.zip
. - Optional: Install and test the plugin with one or more IDEs.
- Upload the file
./build/distributions/intellij-appmap-<version>.zip
as an update on the JetBrains Marketplace. - Patch the changelog file:
./gradlew patchChangelog
- Update the version in
gradle.properties
to include a SNAPSHOT version, e.g. changepluginVersion=0.1.0
topluginVersion=0.2.0-SNAPSHOT
.
After building the plugin you can drag & drop the file ./build/distributions/intellij-appmap.zip
onto the main window of IntelliJ to install the plugin. A restart of your IDE is required to use the plugin.
A custom file editor is opened when a .appmap.json
file is opened.
If JCEF is unsupported on your system, then an error message will be shown instead.
The current JCEF integration is only to test the capabilities of JCEF and if it provides the features to render an AppMap.
For a complete implementation the following needs to be verified and implemented:
Someone with deeper knowledge of the JS AppLand application should test it to identify possible issues.DONE- Reload the AppMap when the file on disk changes.
- Open a file inside the IDE when "Show source" inside the AppMap is clicked.
- Workaround JCEF limitations. Even JCEF of 2021.1 has its limitations, e.g. tiny fonts on certain Linux system, scrollbars which don't follow the theme, etc.
- Decide if IntelliJ 2020.3 should be supported. 2021.1 is the current major version. As far as I know previous major versions won't receive new builds of JCEF as it's bundled into the Java JRE.
- Test with all of Windows, Linux, macOS Intel, macOS M1 and each of IntelliJ Ultimate, IntelliJ Community.
- Theme handling. If possible, the theme of the AppMap should follow IntelliJ's theme (light / dark)
- ...
- Open .json.appmap files in the project FS in the AppMap viewer
- Detect and reload AppMaps when files get changed on disk
- Open source files referenced from AppMaps in right split (see screenshot)
- "Open the most recently modified AppMap" action
- Show error message when JCEF not available
- Dark theme
- Tested on Windows, macOS, Linux with the JDK shipped with the IDE
- Address rendering issues on Linux
- Version: 2021.1
- Marketplace plugin description and docs
- Published in JetBrains plugin repo so the plugin is easy to find and install from the IDE and online marketplace
- light theme
- optionally open .appmap.json files in a text editor