2.3.5.7 release notes

2.3.5.7

  • Issue 364 - Extensive SOSL support improvements (demo video available here) including:
    • Added a SOSL Query tool window with effectively the same features as the SOQL Query tool window (and, for the most part, the Anonymous Apex tool window). Just as with SOQL query results, SOSL query results are presented in table-based and tree-based views, and those results can be copied to the clipboard as tabular and JSON data respectively. This new tool window is accessible via keyboard as Ctrl+Shift+Alt+X on all operating systems and Cmd+Shift+Opt+X on Mac
    • Added a SOSL Query file type that is associated with the *.sosl file extension. Context actions are available in these files to open and execute the script — or the selected subset of the script — in the SOSL Query tool window.
    • Added support for syntax highlighting, code completion, and other editing features in SOSL search expressions.
    • Fixed numerous SOSL parser, code completion, reference navigation, etc. issues.
    • Added a new code inspection, SOSL query verification, that verifies that SOSL queries are correct including:
      • Search expression validity:
        • Static SOSL queries in Apex must use Apex string literals for the search expression.
        • Standalone SOSL queries — those executed via the SOSL Query tool window — must use braces for the search expression.
        • Note that dynamic SOSL queries in Apex — those executed via System.Search — can use either.
        The code inspection includes quick fixes to convert from quotes to braces and vice-versa.
      • Query completeness:
        • SOSL queries in Apex — both static and dynamic — must specify searched entities via a RETURNING clause.
        The code inspection includes a quick fix to add a RETURNING clause to the query.
      This inspection has been added to the bundled inspection profile, but if you have a custom inspection profile, you should make sure that it's enabled in that profile after updating.
    • Added new SOSL-specific live templates similar to those included for SOQL for simplified creation of SOSL queries in various contexts:
      • FIND - Generates a standalone SOSL query as:
        FIND {expr} IN fields FIELDS RETURNING type
      • ss - Generates an inline Apex SOSL query as:
        [FIND 'expr' IN fields FIELDS RETURNING type]
      • ssv - Generates an inline Apex SOSL query assigned to a local variable as:
        List<List<SObject<> varName = [FIND 'expr' IN fields FIELDS RETURNING type];
      • ssit - Generates iteration of inline Apex SOSL query results as:
        for (List<SObject> listName = [FIND 'expr' IN fields FIELDS RETURNING type]) {
            for (SObject varName : listName) {
        
            }
        }
      These live templates can, of course, be customized, duplicated, removed/disabled, etc., as desired.
  • Issue 2774 - When the TypeScript dependencies are installed, npm install is now executed with the --legacy-peer-deps command-line argument to help ensure it won't fail due to an invalid existing package.json file.
  • Issue 2776 - Hopefully addressed the freeze that could occur after OST generation. It may not be 100% eliminated, but it should be minimized to only a couple of seconds at worst. If not, please provide thread dumps from during such a freeze so that I can continue to chisel away at it until it's effectively gone.
  • The new project wizards for source format Salesforce projects should no longer freeze the IDE temporarily while executing sf project generate. Now all of the "heavy lifting" is deferred until after the new project has been created and opened, and it should all execute on a background thread under a progress indicator.
  • Fixed an issue with Apex identifier name completion suggestions when the base name would be a reserved word.
  • Updated Agentforce for Developers code generation facilities to use the streaming generations API as the original generations API is now failing for requests that worked previously.
  • Moved Anonymous Apex and Log Analyzer tool window initialization into the background.