2.3.9.7 release notes
2.3.9.7
NOTE: In the next few months, Atlassian will be sunsetting the Bitbucket Cloud issue tracker and wiki features. As a result, I will be migrating the IC public issue tracker and user guide content into GitHub (using this as a long overdue opportunity to refresh the user guide as I do so).
As much as possible, I would like to retain user associations in the migrated issues. If you have logged or commented on issues in the IC public issue tracker and would like to have your migrated issues and comments attributed to your GitHub username, please send both your Bitbucket name and GitHub username via email so that I can include them in the mappings used by the issue migration script.
No worries if you'd prefer not to provide that information. All other issues and comments will be attributed either to me or to an anonymous/unspecified user, and I will try to include the original Bitbucket username in the issue summary or comment text respectively for historical purposes.
- Issue 2926 (redux) - Turns out that I also needed to stop unregistering existing static file type associations for the dynamic file types, instead allowing those to be used for files that don't meet the criteria for dynamic file type inference.
- Integrated
aer(Apex Execution Runtime), October Swimmer's amazing local runtime for Apex unit test execution, debugging, coverage, etc. A demonstration video is available here.
This integration includes support for the following:- Local Apex unit test execution with all of the existing Apex unit test execution features, e.g., flexible unit test run configurations, transitive dependents execution, test filtering by version control modification status, etc.
- Collection and display of code coverage metrics for aer-executed unit tests in the IDE's standard Coverage view.
- Local interactive debugging of individual Apex test classes/methods using DAP (Debug Adapter Protocol) with aer as the DAP server and LSP4IJ as the DAP client. As a true interactive debugger, this supports features not available in IC's log-based offline debugger such as ad hoc expression evaluation, variable value modification, display of full variables values, and immediate feedback for side-effect-based variable value changes, e.g., seeing the contents of a collection change when its mutator methods are called.
- Assistance installing and configuring aer and LSP4IJ, and the ability to enable/disable aer unit test executors as desired.
- Ability to specify additional aer command-line arguments for the command-line used by IC for Apex unit test execution, coverage, and debugging.
Please be aware of the following considerations:- aer is a commercial product with a free tier. Illuminated Cloud and aer are licensed independently. Licensing for one does not in any way imply licensing for the other.
- While remarkably useful already, aer is primarily recommended for early adopters and does not yet support the full Salesforce standard Apex library — which is admittedly a huge undertaking — though it does support many of the most commonly-used namespaces/classes/methods. If you find key omissions used by your project(s), I encourage you to report them in the aer public issue tracker. I've reported a few missing/unimplemented APIs plus a few corner-case grammar omissions, and all have been addressed very quickly.
- Coverage data returned by aer does not currently perfectly match coverage data returned by the Salesforce API. I have reported two key categories of differences to the developer so that the two coverage engines can ultimately provide identical coverage data.
- Expression code completions during interactive debugging do not reflect the debugger's current source location.
- I've found a few other issues/unexpected behaviors in the debugger that are due to bugs or missing features in LSP4IJ's DAP client and/or aer's DAP server:
- The IDE debugger's Smart Step Into action is not currently supported. I've logged this in the LSP4IJ public issue tracker here, and I've also reported it to October Swimmer for server-side support.
- Variable values are not displayed inline in the debugger. I've logged this in the LSP4IJ public issue tracker here, but it sounds like it may just be a limitation of DAP and not easily resolved.
- I've noticed that the debugger doesn't always properly register breakpoints, nor does it reliably stop for the Run to Cursor action. I've logged this in the LSP4IJ public issue tracker here.
I'm currently investigating the following enhancements to this integration:- A CPU profiling executor that runs aer for profiling and opens the resulting snapshot in a visualizer/browser.
- Support for continuous testing using aer's support for watch mode and the JetBrains plugin SDK's corresponding feature.
- Added support for
GenAiPromptTemplatemetadata names as values forgeneratePromptResponse://targets in*.agentfiles. Note that there are many other target types mentioned inAGENT_SCRIPT.mdthat are not documented here and are therefore not currently supported. I will add support for those as I see good, concrete documentation and/or examples. - The Agent Script Validator's error format changed resulting in errors not showing properly. I've updated IC to support both the previous and current error formats.
- Disabled the Test dependencies bulk code inspection by default since it's less of a static code analysis rule and more of a bulk edit tool, and it can be quite expensive when run as part of a bulk code inspection since it has to perform transitive dependency analysis on all Apex unit test classes. It can, of course, still be run easily using the IDE's Run Inspection by Name action.