2.3.5.9 release notes

2.3.5.9

  • Issue 2741 - Added Salesforce module import targets to the Navigate | Related Symbol list for LWC JavaScript and TypeScript files in Community Edition IDEs as well as the support for commercial IDEs included in the previous build.
  • Issue 2785 - Integrated Salesforce Code Analyzer 5 into IC. A demonstration video is available here. The integration includes:
    • A bulk code inspection, Salesforce Code Analyzer, that executes Code Analyzer on the specified scope and presents results in the IDE's Problems tool window.
    • near-real-time external annotator that executes Code Analyzer on the file in the focused editor and presents results directly in the editor alongside other static code analysis results. Note that "near-real-time" means that, as an external process running multiple concurrent static code analysis engines, Code Analyzer typically takes several seconds to yield results for even a single file. Consequently, these results are not presented immediately after opening an editor or saving an editor's contents but rather once the external process has been successfully executed. This does not (or at least should not) result in any perceptible impact to the editor experience aside from the delay in results integration. Also note that Code Analyzer can only operate on the contents of files in the file system, so it is not automatically re-executed as you make uncommitted changes in the editor as with other first-class static code analyzers. You must save your changes before new Code Analyzer results will be displayed.
    • Salesforce Code Analyzer inspection/external annotator configuration options:
      • Configuration file - the optional path to a YAML-based Salesforce Code Analyzer configuration file.
      • Minimum rule severity - the minimum severity of rules for which reported violations should be displayed in the IDE. Defaults to Sev5/Info, i.e., show everything that was reported.
      • Show engine name - whether or not the engine name should be included in messages for reported violations. Defaults to enabled.
      • Show rule name - whether or not the engine-specific rule name should be included in messages for reported violations. Defaults to enabled.
      • Show rule severity - whether or not the configured rule severity should be included in messages for reported violations. Defaults to enabled.
      • Show rule tags - whether or not the configured rule tags should be included in messages for reported violations. Defaults to disabled.
      • Ignore redundant rules - whether or not violations for engines/rules that are also integrated via more first-class IDE static code analysis features should be displayed in the IDE. This includes all PMD rules which are already integrated via IC's PMD Salesforce inspection, all ESLint rules which are already integrated via the (commercial) IDE's ESLint inspection, and CPD (Copy Paste Detector) which is already integrated via the (commercial) IDE's Duplicate code fragment inspection. When enabled and a configuration file is specified, IC automatically creates a temporary copy of the configuration file with the same engines and rules disabled for optimal CLI execution. Defaults to enabled.
      • Show progress indicator - whether or not a progress indicator is shown in the IDE's status bar during external annotator execution. Defaults to enabled.
    • Quick fixes for reported violations:
      • Fix engineName.ruleName with Agentforce for Developers - Attempts to use Agentforce for Developers to fix the reported violation. Note that as is often the case with generative AI, the resulting fix — if any is even returned — may vary across invocations in both content and quality. If/when a more first-class option is available, e.g., via IC's ApexDoc validation inspection's Clean up ApexDoc comment quick fix, it should likely be used for more consistent and predictable results. Applied fixes are added to the IDE's standard undo/redo buffer and can be easily reverted by undoing the fix.
      • View engineName.ruleName rule documentation online - If documentation is available for the rule associated with the reported violation, opens that documentation in the default system browser.
      • View engineName.ruleName rule in code-analyzer.yml - If a Salesforce Code Analyzer configuration file is specified, opens the associated YAML block for the reported violation's engine/rule pair.
      • Change engineName.ruleName rule severity in code-analyzer.yml - If a Salesforce Code Analyzer configuration file is specified, opens the associated YAML block for the reported violation's engine/rule pair and allows the user to choose a new severity for the engine/rule combination.
      • Suppress PMD.ruleName for declarationType declarationName - If the violation was reported by PMD, adds an Apex @SuppressWarnings('PMD.ruleName') annotation to the associated declaration, or updates the existing annotation if present. Quick fixes are added for each successive level of declaration containment for the reported violation. Again, I strongly recommend that IC's PMD Salesforce inspection — which offers the same suppression capabilities but in a true real-time manner — be used instead.
      • Suppress with comment - If the violation was reported by PMD, adds an end-of-line // NOPMD comment. The same comment as above applies about using the more first-class support for PMD.
  • Issue 2786 - Fixed an issue with invalid connections when creating requests in the IDE's HTTP client tool.
  • Issue 2790 - Fixed an issue with tooltip-based presentation of quick fixes.
  • Added the Fix with Agentforce for Developers quick fix to violations reported by the PMD Salesforce inspection. Please see the caveats and considerations included above for the usage of this quick fix.
  • Added request history to the Agentforce for Developers Dev Assistant tool window. You can now use Cursor Up and Cursor Down to cycle through historical requests from the current dialog.
  • Fixed an issue where multiple IC new project wizard entries would be displayed in WebStorm with the Python Community Edition plugin installed and enabled.