2.3.3.9 release notes

2.3.3.9

  • Issue 2685 - Updated the data type for lightning-datatable.wrap-table-header to be an enumerated type instead of a boolean.
  • Issue 2688 - Fixed an issue with the translation from Apex Map to the corresponding TypeScript ambient import definition for an @AuraEnabled symbol that uses a Map for one of its types. Note that Map and Set are translated into any because only state is transferred, not behavior.
  • Issue 2689 - More defensive against potential IndexNotReadyException in 2024.3 when enumerating JavaScript/TypeScript fields and properties.
  • Integrated LSP4IJ for those who use Illuminated Cloud with a free JetBrains Community Edition IDE to provide a significantly improved editor experience for JavaScript, TypeScript, and CSS, particularly in LWC source files. LSP4IJ is a free, open source plugin from Red Hat for all JetBrains IDEs that tightly-integrates information from configured LSP language servers into the IDE. This integration is completely optional and can be disabled easily if not desired. A demonstration video is available here.

    When enabled, Illuminated Cloud helps to install/enable the plugin as needed, and helps to install and configure LSP4IJ for the free, open source TypeScript(/JavaScript) and CSS language servers.

    LSP4IJ currently adds the following features for supported file types:
    • Context-sensitive code completion and auto-completion
    • Reference navigation
    • Structure view
    • Type hierarchy and call hierarchy (for supported languages)
    • Parameter info
    • Inlay hints
    • Static code analysis with (limited) automatic quick-fixes
    • Integrated API documentation
    • Configurable syntax-aware code formatting
    • Configurable syntax highlighting
    • Limited refactoring capabilities (rename only?)

    I am quite impressed with the quality of LSP4IJ even at this relatively early stage — it was first released in late May, 2024 — and I have been actively contributing to the project to help fill remaining feature gaps and improve the overall UX. While the resulting editor experience for JavaScript, TypeScript, and CSS isn't quite on par with the commercial JetBrains IDEs' first-class support for those languages, it's a dramatic improvement over the previous state with only very simple code completions, automatic indentation, etc.

    Note that while I do strongly recommend that those pairing Illuminated Cloud with a free Community Edition IDE at least try LSP4IJ — and, as stated above, I'm an active contributor to the project — LSP4IJ is not a product of Rose Silver Software, LLC or a first-class feature of Illuminated Cloud. Aside from issues with the explicit integration with Illuminated Cloud, support for LSP4IJ is provided via the LSP4IJ GitHub repo.
  • Implemented several fixes and improvements to the overall editor experience in JetBrains' free Community Edition IDEs — with or without LSP4IJ — including:
    • A fix/workaround for the JetBrains regression around auto-indent when typing Enter to start a new line between braces.
    • A nesting rule in Community Edition IDEs so that generated JavaScript files are nested under the corresponding TypeScript source file.
    • Proper icons for JavaScript, TypeScript, and CSS files.
    • TypeScript SObject stub types are now generated into the OST in Community Edition IDEs. The OST must be regenerated to see the effect of this change.
    • JSON schema-based code completion and validation is now available in Community Edition IDEs when editing sfdx-project.json and *-scratch-def.json files.
    • Note that the JetBrains file type association bug is (frustratingly) still present, so if you're being prompted repeatedly to remove the file type associations for CSS and JavaScript in Community Edition IDEs, please see the workaround from the linked bug about removal of the incorrect mapping entries from the IDE's raw options/filetypes.xml file. I've followed up with JetBrains about when/whether this bug might be fixed.
  • Added a new configuration option, Illuminated Cloud | Configure Application | Other | User interface | Nest meta.xml files, that, when enabled alongside Show meta.xml files, adds nesting rules for all Salesforce metadata types with supporting meta.xml files. This results in supporting meta.xml files being included in the IDE's Project view, but nested under the corresponding metadata files. Note that this type of nesting is not effective when the meta.xml file's name is not a direct extension of the metadata file's name, specifically for the Document and StaticResource metadata types where the files might be named, for example, image.png and image.resource-meta.xml respectively. This option is disabled by default and only available when Show meta.xml files is also enabled.
  • Added a new configuration option, Illuminated Cloud | Configure Application | Other | Lightning Web Components | Enhanced JavaScript static code analysis, that, when enabled, integrates static code analysis information from the TypeScript language server for JavaScript source files into the IDE. This can help detect potential issues in LWC JavaScript files much earlier in the development cycle, but is quite strict and can result in the need for more comment-based type hints and explicit suppressions. This option is disabled by default.
  • Changed/fixed the behavior of the Next/Previous Method actions in Apex source files so that only types/triggers and constructors/methods/property accessors are included, i.e., fields and properties are no longer visited by these actions.
  • Fixed the return type of lightning/uiGraphQLApi.refreshGraphQL.