2.3.0.5 release notes

 2.3.0.5

  • Issue 2547 / 2024.1 updates - This build includes changes to allow IC2 to be used with the 2024.1 JetBrains IDEs. Note that due to the removal of a bundled third-party library from the base JetBrains IDEs, it is no longer possible to export Flow diagrams in PNG format. Export to HTML is still supported. I looked at bundling the removed library with IC2, but it would have increased the IC2 distribution size by over 50%. I'll continue to investigate ways to provide other export capabilities with the ideal being proper resolution of the known issues with the Mermaid plugin's SVG export feature.
  • Issue 2501 - Added support for Flow.Interview inner classes that reflect the project's local Flow metadata. The OST must be regenerated to see the effect of this change.
  • Issue 2537 - Updated the PMD Salesforce code inspection to use PMD 7. Note that this removes support for PMD 6 due to significant changes in the Java API between these major versions. To use the PMD Salesforce code inspection in this version of IC2 and later, you must upgrade to PMD 7. I apologize for any inconveniences this may cause. Trust that I exhausted pretty much every available avenue trying to support both versions simultaneously, but the only viable option was to rewrite the integration to be almost 100% reflection-based which would likely have resulted in a less reliable and more difficult to maintain implementation. It's worth noting that users will want to upgrade to PMD 7 anyway as it integrates a new Apex parser that resolves several known issues from PMD 6 and will be the only version that is actively maintained going forward.

    If the PMD Salesforce code inspection is finding the PMD distribution automatically based on the system search path, you should be able to update the $PATH/%PATH% environment variable to point at the 7.0.0 distribution's bin directory and restart the IDE to pick up the new distribution.

    Note that if you are using the recent PMD Salesforce enhancement to integrate the PMD AppExchange ruleset, you will also need to upgrade Salesforce Code Analyzer to be based on Salesforce's beta version with PMD 7 support until it is included in the released version:

    $ sf plugins uninstall @salesforce/sfdx-scanner
    $ sf plugins install @salesforce/sfdx-scanner@latest-beta

    Finally, you may also need to make a few small changes to your existing PMD ruleset XML files. Here are the changes that I've had to make to mine, though this isn't likely an authoritative list:
    • If your rule elements for standard rules include message attributes with boilerplate rule description text, you can (and likely should) remove those attributes and allow the rules themselves to provide description text. The notable exceptions to this recommendation are rules where you've explicitly added more descriptive message text and fully user-defined rules such as XPathRule.
    • Some rule configuration properties are no longer applicable and should be removed and/or replaced as appropriate for the respective rule. In particular I had to remove the following:
      • category/apex/codestyle.xml/MethodNamingConventions - The property skipTestMethodUnderscores is no longer available. Instead you should define your own regular expression-based patterns if the defaults don't meet your needs.
      • net.sourceforge.pmd.lang.rule.XPathRule - The property version is no longer available and should be removed if specified.
    • References to net.sourceforge.pmd.lang.rule.XPathRule and net.sourceforge.pmd.lang.apex.rule.ApexXPathRule should be replaced with net.sourceforge.pmd.lang.rule.xpath.XPathRule.
    • Rules that contain category/vf/ should be migrated to category/visualforce/. In the PMD AppExchange ruleset, one Visualforce-specific rule name has changed as well; category/vf/sfca_vf_security.xml should be replaced with category/visualforce/sfca_visualforce_security.xml.
    With all of the aforementioned changes in place, things are working well for me in my own test projects including several open source third-party projects that include their own PMD ruleset files. Obviously this is a significant change, though, so if you find issues with the PMD integration, please let me know via any of the standard support channels, ideally with specific examples that demonstrate the changed or broken behavior.
  • Issue 2541 - Fixed a potential error that could occur when applying semantic syntax highlighting while the IDE is actively indexing.
  • Issue 2545 - Added all missing Auth namespace types. The OST must be regenerated to see the effect of this change.
  • Resolved several keyboard shortcut conflicts with OS-level behaviors for IC2-specific actions on Mac and Linux (specifically under GNOME). This required remapping the conflicting actions on the respective OSes as follows:
    • On Mac, the SOQL Query tool window is now opened with Ctrl+Opt+Shift+Q instead of Cmd+Opt+Shift+Q which was triggering a system logout (even though the keyboard shortcut for Logout does not include the Opt modifier which seems to be a bug in Mac OS X to me). For consistency, I've also added secondary keyboard shortcuts for the other IC tool windows that use Ctrl instead of Cmd, though the original keyboard shortcuts remain available for all of those tool windows.
    • On Linux/GNOME, the Compare With Server and Compare With ... actions now drop Ctrl from their keyboard shortcuts and are mapped to Alt+Shift+Equals and Alt+Shift+Minus respectively. This avoids conflicts with GNOME's Zoom In and Zoom Out actions.
    • On Linux/GNOME, the Refresh Metadata action is now mapped to Ctrl+Alt+Shift+F11 to avoid a conflict with GNOME's screenshot tool.
    If those using KDE or other Linux desktops are seeing similar types of conflicts, please feel free to report them in the public issue tracker.
  • Improved Apex constructor code completions. They should now be properly filtered based on the current context and only show constructors that are valid at the insertion point.
  • Other related fixes and improvements.