2.3.3.0 release notes

2.3.3.0

To start, I've spent the past few days at Dreamforce '24 which was absolutely brimming with significant new features and enhancements for Salesforce developers. For the curious, I've captured my thoughts on when and how the most significant of those features will be integrated into IC2. If things go as-planned — and as described in the linked post, some of these features do include non-trivial challenges — the next few IC2 releases should include some fun and compelling new content.
  • Issue 2630 - Added support for drag-and-drop reordering of Anonymous Apex and SOQL Query tool window tabs. Note that only the tab ordering information is retained. If you use drag-and-drop to split these tool windows, that information will not be persisted across sessions.
  • Issue 2636 - Apex identifier name suggestions will no longer offer reserved words that could result in syntax errors. Instead abbreviations or prefixed names are offered as appropriate for the respective reserved word, e.g., bool for a Boolean or aCase for a Case.
  • Implemented another set of performance optimizations that should benefit both Apex code completion and overall reference resolution. I've already received positive feedback from several users on the previous build's optimizations, and hopefully these will just continue to improve the overall editor experience.
  • When appropriate, code completion offerings for the loop variable of an iter live template or postfix template now include a singular version of the iterated collection expression name, e.g., choosing to iterate a list named ordinals or getOrdinals() will now offer a loop variable name suggestion of ordinal.
  • Improved code completion ordering when the existing prefix is all upper-cased. Now case-sensitive camel-hump matches are ordered immediately after case-sensitive prefix matches and before case-insensitive prefix matches. For example, this ensures that auto-completions for PE will order PicklistEnum before PermissionSet.
  • Made another improvement to code completion ordering so that "closer" declarations are offered first instead of using alphabetic ordering in situations where you're almost always looking for the most recently declared names, e.g., when using the various iteration live templates.
  • Fixed an issue that could result in missing code completion offerings after System.System..
  • Added the following configuration options to Illuminated Cloud | Configure Application | Unit Tests and Code Coverage | Code Generation:
    • Test class name | Prefix / Suffix - The prefix and/or suffix that should be added to the tested class' name when generating a new test class. At least one must be specified to ensure a unique test class name. Defaults to a suffix of Test, e.g., the test class name for MyClass would be MyClassTest.
    • Test method name | Prefix / Suffix - The prefix and/or suffix that should be added to the tested method's name when generating a new test method. Both are optional. Defaults to a prefix of test, e.g., the test method name for myMethod would be testMyMethod.
    • Test setup method name - The name of generated @TestSetup-annotated methods. Required. Defaults to setup.
    The Test setup method name setting is used when generating a test class with the Generate @TestSetup method option selected. The selection status of that field is now retained across usages.
  • Added the correct inheritance relationship between Database.DuplicateError and Database.Error. Note that to see the effect of this change, the OST must be regenerated.
  • Apex enum constants are now proper instances of Object.
  • Other related fixes and improvements.