2.2.1.9 release notes

 2.2.1.9

  • JavaScript and TypeScript editor experience improvements - Implemented a number of significant enhancements for JavaScript and TypeScript development, primarily in support of Lightning Web Components, though some can also be leveraged in Visualforce, Aura, and Salesforce Functions. For more details see this demo video.

    NOTE: Because most of these enhancements are implemented as extensions to JetBrains' native JavaScript and TypeScript language support features, they are only available when Illuminated Cloud 2 is paired with a commercial JetBrains IDE and do not change the behavior of JetBrains' free Community Edition IDEs.

    • Issue 696 - The generated OST now includes TypeScript type definitions for all org SObjects for use in JavaScript and TypeScript. These type definitions are generated into the TypeScript sub-directory of the OST which is not considered a namespace in other Salesforce development contexts, and they do not need to be explicitly imported to be used. As explained in the details of the next enhancement below, Illuminated Cloud automatically uses these SObject types for translated return and parameter types of imported @AuraEnabled Apex methods, and it's also possible to use them in explicit type hint comments (see the new code intention to assist with creation of doc-based type hints described below) to augment the IDE's JavaScript/TypeScript type inference engine, e.g., /** @type {Account[]} */.
    • Significantly enhanced the type information for imported @salesforce modules in LWC. All imported platform-specific modules should now be strongly-typed using the correct data types including all wire adapters and translated method parameter types and return types of imported @AuraEnabled Apex methods.
    • Added a new code intention for JavaScript, Add type hint, that either adds a new JSDoc comment or updates the existing JSDoc comment to include a doc-based type hint (@type {TypeName}) for the current field or variable. This is useful for providing supplementary type information for fields and local variables when the IDE cannot infer an authoritative data type. It is often worthwhile to extract an expression with an ambiguous type into a local variable with a doc-based typed hint to ensure that downstream usages of that expression (via the extracted local variable) have strong type information. This code intention is invoked using Alt+Enter on Windows/Linux or Opt+Enter on Mac.
    • Enhanced code completions in LWC markup braced expressions to support chained completions and navigation references for chained expressions.
    • Filled in a few missing LWC standard modules, types, etc., and adjusted a few that were incorrect or incomplete.
    • Suppressed false positives from several JavaScript/TypeScript, CSS, and HTML inspections that are unable to understand certain LWC references and relationships.
    • Added a file-level annotator for LWC Jest test classes that informs the user when Jest library dependencies are not properly configured for the project and assists with adding them.
    • NOTE: There is one known type inference omission right now for results of query selectors that return component instances where the component-specific Element type is not used. I am currently investigating how to provide stronger typing for those expressions.

    Massive thanks to Anthony Heber who has been an invaluable sounding board for and patient teacher about the darker corners of LWC, TypeScript, and other related topics as I've worked on these enhancements!

  • Issue 2094 - Added pushPackageDirectoriesSequentially to the JSON schema for sfdx-project.json files.
  • Fixed an issue with the Open in Salesforce Setup action when invoked in projects that use native connections.
  • Restored file status highlighting in the code coverage view.