2.2.9.8 release notes

 2.2.9.8

  • Issue 289 - Added a Save Logs toolbar button to the Log Analyzer tool window. When one or more logs are selected in the log header table, you can now click this toolbar button to save them as local files in a designated directory. The resulting files are named ApexLog_LOGID.logNOTE: Once log files are saved locally, IC2 is no longer responsible for them. If they contain sensitive or proprietary information, it is the user's responsibility to remove or otherwise manage them to avoid potential exposure of that information.
  • Issue 2491 - Updated the Apex parser to handle SOQL currency literal values properly.
  • Issue 2492 - Added a new configuration option, Illuminated Cloud | Configure Application | Salesforce DX | Ignore warnings on push, that when enabled (disabled by default) executes the force:source:push command with the -g/--ignorewarnings flag. Note that this option is configured at the application-level and not the connection- or project-level.
  • Updated the PMD Salesforce code inspection to support the new PMD AppExchange rules. In order to use these rules, you must do the following:
    • Use PMD 6.x (generally the latest which is 6.55.0 at present) and not PMD 7.x (which is currently still in a release candidate state). You can download the supported version here.
    • Install the Salesforce Code Analyzer CLI plugin as described here.
    • In the PMD Salesforce code inspection options, check Enable PMD AppExchange rules. It is disabled by default as it is incompatible with PMD 7.x which is otherwise a supported version of PMD for this code inspection.
    • IC2 should automatically find and populate the PMD AppExchange Install path from the installed Salesforce Code Analyzer CLI plugin. If it doesn't, you can select the install location as the directory node_modules/@salesforce/sfdx-scanner/pmd-appexchange wherever it is located in the local filesystem. NOTE: If you find that you have to select a directory that would typically be considered a standard install location, please let me know about it so that I can amend the install location discovery logic as appropriate.
    • Create a PMD AppExchange-specific ruleset file that includes one or more PMD AppExchange rulesets and/or rules, e.g.:

      pmd-appexchange-ruleset.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <ruleset name="Salesforce"
               xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
          <description>PMD AppExchange rules.</description>
      
          <!-- Reference entire rulesets or individual rules as appropriate -->
          <rule ref="category/apex/sfca_apex_security.xml"/>
          <!--<rule ref="category/apex/sfca_apex_security.xml/AvoidUnsafeSystemSetPassword"/>-->
      
          <rule ref="category/html/sfca_html_security.xml"/>
          <rule ref="category/ecmascript/sfca_ecmascript_security.xml"/>
          <rule ref="category/vf/sfca_vf_security.xml"/>
          <rule ref="category/xml/sfca_xml_security.xml"/>
      
      </ruleset>                        
      and select it as the Ruleset. Note that a separate ruleset file for PMD AppExchange rules is not strictly required. The PMD AppExchange rules can instead be added to the existing PMD ruleset file. However, if that ruleset file is used for other purposes, e.g., command-line or CI/CD execution, it will likely yield errors as the PMD AppExchange rules are not included in standard PMD distributions. As a result, it is strongly recommended that users maintain a separate ruleset dedicated to PMD AppExchange rules.
  • Improved error reporting in the PMD Salesforce code inspection when execution fails due to an unparseable ruleset file. Now the specific reason for failure is included in addition to the more general "failed to parse ..." message.
  • Added a new Apex code inspection, Expression cannot be a statement, that reports incomplete expression statements. This new inspection has been added to the bundled Illuminated Cloud inspection profile but may need to be added explicitly to project-local inspection profiles if configured not to add new inspections automatically.
  • Auto-completion should no longer trigger incorrectly when typing numeric literals in SOQL queries.
  • Updated the CLI deprecation warning message filter to handle what seems to be a new pattern that includes node --trace-deprecation.