2.1.9.5 release notes

Post date: November 4, 2021 10:25 AM

2.1.9.5

  • Issue 1963 - 2.1.9.3 changed the behavior of the Anonymous Apex and SOQL Query tool windows when working against a connection to an org with a namespace such that those scripts are authored and executed as if they are "inside" the org's namespace. As a result, code completions for Apex types, SObjects, and fields with that namespace would not add namespace qualifications. For some users, though, this is not the desired behavior. Those tool windows are useful for creating scripts for external consumption where namespace qualifications are required. The solution, of course, is to make this behavior configurable, so both of these tool windows now include a configuration option, Use default namespace (enabled by default), that, when enabled, executes the respective script in the context of the org's namespace, and when disabled, does not.

  • Issue 1973 - The prospective performance issue fix added in 2.1.9.4 was only partially successful. With some helpful guidance from JetBrains, I've implemented an alternative prospective fix which I hope will address this problem completely.

  • Issue 1988 - Restored the Tabs and Indents sub-tab of the Apex code style settings screen that had mysteriously disappeared. It turns out that a plugin SDK change in some past base IDE revision started to require plugin providers to add that tab explicitly if desired.

  • Added a new option to the real-time PMD Apex code inspection, Ignore redundant rules (enabled by default), that automatically removes PMD Apex rules which perform checks that are already performed in a first-class manner by IC2, either via its Apex parser or its Apex code inspections. At present, this specifically adjusts for the following PMD Apex rules and corresponding IC2 features:

    • ApexDoc - IC2 includes an ApexDoc validation code inspection that checks for invalid and/or incomplete ApexDoc comments and offers a quick fix to repair found ApexDoc issues automatically.

    • AvoidNonExistentAnnotations - IC2's Apex parser is already restrictive about allowed/expected annotations and denotes invalid/unexpected annotations as syntax errors.

    • ForLoops/If[Else]Stmts/WhileLoopsMustUseBraces - IC2 includes a code inspection that checks for control flow statements without braces that offers a quick fix for reported violations to add braces automatically.

  • Note that when this option is enabled, PMD Apex rules will only be removed if the corresponding IC2 feature is also enabled. This option will be updated as appropriate if/when new overlapping PMD Apex/IC2 features are introduced.

  • Added a new configuration option to the ApexDoc Validation code inspection, Check for missing ApexDoc comments (disabled by default), that reports Apex type, trigger, and body declarations at or above the configured minimum visibility threshold (protected by default) without an ApexDoc comment. This new configuration option includes several configuration sub-options for situations in which missing ApexDoc should be ignored:

    • Declarations with the @Deprecated annotation (enabled by default)

    • Derived declarations where a base declaration is properly documented (enabled by default)

    • Extensions/implementations of system Apex types (disabled by default)

    • Overrides/implementations of methods in system Apex types (enabled by default)

  • Licensing improvements

    • Added explicit startup notifications for when the subscription expiration date is within 14 days of the current date, and for when the subscription has technically expired and the user is within the grace period (which has also been extended from 3 days to 7 days).

    • Added a formal integrated process for requesting trial extensions via an offline trial extension activation request sent via email.

    • Fixed a number of usability issues around subscription expiration and the grace period where license status might not be shown correctly or update properly in response to actions such as refreshing with the licensing servers.

  • Fixed an issue where actions invoked upon sub-tabs for files other than the file through which a tabbed editor was opened would incorrectly act upon the opened file. This issue didn't exist prior to 2021.2, and I've verified that it also doesn't exist in the 2021.3 EAP builds, so it seems to be yet-another-2021.2-issue.

  • Other related fixes and improvements.