release notes

posted by Scott Wells

  • Lightning fixes and improvements - Implemented another round of fixes and improvements for Lightning development, both LWC and Aura. In fact, most of these fixes are for Aura and/or Community Edition IDE users.
    • Added full support for Aura/LWC component composition, i.e., using custom LWC components in Aura component markup. This includes code completion, reference navigation, LWC components as selectors in Aura style files, integrated LWC component API documentation from Aura markup, etc.
    • Added full support for design tokens in Aura style files. This includes code completion, reference navigation, handling of token renames (requires a commercial JetBrains IDE), etc.
    • Improved the structure view for ES6 classes in Community Edition IDEs. Previously it was limited by the Rhino JavaScript parser's inability to grok ES6. Now I'm using the same simple custom ES6 parser used to find ES6 properties and methods for code completion to build the structure view. It's not perfect, but it's much more accurate that in the past and should facilitate faster navigation of ES6 class members in Community Edition IDEs.
    • Fixed an issue where multiple identical HTML references to JavaScript controller properties and functions were not being de-duplicated correctly in Community Edition IDEs leading to duplicate entries being offered during reference navigation.
    • Improved reference highlighting in Community Edition IDEs for controller properties/fields and functions/methods used in markup.
    • Fixed an issue where undecorated ES6 fields were not being found properly.
    • Fixed a potentially long-standing issue where directories were being evaluated as JavaScript/CSS files incorrectly.
    NOTE: As before, there are still a few issues that I have not been able to resolve because they are in the commercial JetBrains HTML/CSS/JS plugin and are not subject to inspection suppression. In addition to those enumerated in the previous build's release notes, I have logged the following bug with JetBrains regarding an issue with the rename refactoring not properly updating braced expression references to ES6 members:
  • Issue 1652 - Made the confirmation messages displayed during connection removal more detailed regarding the exact connection requested for removal and the ramifications of removing a CLI-managed connection.
  • Issue 1661 - Fixed an issue that could cause the namespace to be missed for Salesforce CLI connections when one is specified in sfdx-project.json. Note that this is not a 100% perfect fix because the namespace is not included in the response from force:org:list or force:org:display and must be sourced from the project-specific sfdx-project.json file. If the relevant project is not open when the connection details are evaluated, the namespace will not be found. I have filed an enhancement request with Salesforce to include the namespace in one/both of those CLI actions so that the namespace for a CLI-managed org is always known.
  • Issue 1662 - In the previous release references were only added to query bind expressions in string literals if they were in a string literal or string concatenation that begins with either SELECT or FIND. This missed some other types of multi-statement string concatenations. Now it will also look for string literals/concatenations that begin with other keywords for clauses in which bind expressions can be used, specifically WHEREANDORLIMITOFFSET, and GEOLOCATION. To avoid invalid reference attribution, any string literal/concatenation expression that does not begin with one of these keywords will not be evaluated for references to Apex symbols used in bind expressions.
  • Issue 1667 - Implemented a workaround for a backward-incompatible change to the JSON output format for force:source:deploy's async status. It should work with both previous and new output formats now.
  • Other fixes and improvements. release notes

posted Jul 6, 2020, 8:49 AM by Scott Wells

  • Lightning Web Components fixes and improvements
    • Made a full pass on the standard LWC components and their attributes, methods, etc., to ensure that they're as accurate and up-to-date as possible.
    • Added missing common attributes such as aria-*, standard event handlers, lwc:dom, etc.
    • Added code completion and cross-relational reference support for LWC components as CSS selectors.
    • Added code completion and cross-relational reference support for standard design tokens.
    • Fixed an issue that caused IC not to evaluate service components properly.
    • Fixed several issues with secondary components (those where file names do not match the component bundle name).
    • Fixed an issue with how custom event names are discovered so that those constructed using new Event(...) are found in addition to new CustomEvent(...).
    • Fixed an issue that would result in duplicate references being added to references to event handler methods for standard events, e.g., onclick, in commercial JetBrains IDEs. This would occur because the base JetBrains IDE and Illuminated Cloud would each add a reference. Now Illuminated Cloud only adds references to event handler methods for custom event handler attributes.
    • Added a number of inspection suppressors where the commercial JetBrains HTML5/CSS/JS plugin cannot properly determine the nature of a reference relationship resulting in a warning or error.
    • Added support for the supportedFormFactors child elements of targetConfigs in LWC component meta.xml files.
    NOTE: There are still a few issues that I have not been able to resolve because they are in the commercial JetBrains HTML/CSS/JS plugin and are not subject to inspection suppression. I have logged several bugs with JetBrains on these issues so that either JetBrains can address them, or they can hopefully provide feedback on how they can be addressed in a plugin:
    • WEB-46308 for which I've provided a workaround in IC
    • WEB-46312 for which changing the attribute ordering is a viable workaround
    • WEB-46313 for which there is no known workaround at present
  • Issue 1650 - Prospective fixes for a number of issues observed by a user in the metadata retrieval dialog.
  • Issue 1653 - Fixed an issue with the keyword case mismatch inspection and query bind expressions.
  • Fixed an issue that could result in incorrect reference addition for a word in a string literal following a colon that matches a resolvable identifier but that is not used as a bind expression in a dynamic query.
  • Added module validation support to assist with marking the .localdevserver directory as an exclusion when present.
  • Fixed the Quick Definition action when viewing a definition that would normally be handled in a tabbed editor (finally!).
  • Fixed the signature of $Lightning.createComponent() so that it properly includes the domLocator parameter.
  • Added support for the missing flexipage namespace Aura components.
  • Other fixes and improvements. release notes

posted Jun 26, 2020, 8:29 AM by Scott Wells

  • Issue 806 - Fixed all known issues with SOQL TYPEOF clauses. This includes parser support, code completion, cross-relational references, formatting, etc.
  • Issue 1572 - Added project template selection to the Illuminated Cloud SFDX new project wizards. The initial default is Standard, but the last used value is retained across invocations.
  • Issues 1591 and 1612 - When deploy-on-save is disabled, no attempt is now made to reconcile metadata when using the Save All action, nor is metadata deployed on other local filesystem operations such as metadata creation, removal, rename, etc.
  • Issues 1592 and 1609 - Private methods are no longer considered for override relationships unless both the base and derived methods are in the same class file.
  • Issue 1600 - Added support for the Category parameter of the @InvocableMethod annotation.
  • Issue 1608 - Code completions for SObject fields are now offered properly for expressions in collection initializers.
  • Issue 1633 - Fixed an issue with renaming of method formal parameters not being properly reflected in the corresponding ApexDoc @param tags.
  • Issue 1646 - Fixed an issue that could cause bundle content files with the same name to be matched incorrectly on metadata retrieval, specifically for ExperienceBundle metadata.
  • Issue 1649 - Fixed an issue that would cause the Change Method Signature refactoring in other languages not to work properly.
  • Other minor fixes and improvements. release notes

posted Jun 18, 2020, 9:17 AM by Scott Wells

  • Issue 1634 - Fixed an issue that could result in a NoClassDefFoundError if the TextMate Bundles plugin is not installed at all.
  • Issue 1642 - Added a Refresh Salesforce CLI Connections action. This is not bound to any key by default, nor is it included in any of the drop-down or context menus. It is available via the action palette and can be bound to any desired key, added to menus, etc., as desired.
  • Raised the stale Salesforce CLI connection cache notification quiet period from five minutes to thirty minutes to reduce the frequency of display. Note that this notification can be disabled entirely if desired by clicking the Don't Show This Again link in the notification itself or by unchecking the respective setting(s) in Illuminated Cloud > Configure Application > Salesforce DX.
  • When the Salesforce CLI connection list is refreshed by running force:org:list, all Salesforce CLI-based connections used by the current project are now also refreshed immediately by running force:org:display.
  • Prospective fix for an issue observed by a small number of users where the base IDE's integrated Ant features weren't working properly when Illuminated Cloud is installed and enabled (also seems to affect a small number of other third-party plugins).
  • Other minor fixes and improvements. release notes

posted Jun 5, 2020, 7:42 AM by Scott Wells

  • Additional Salesforce CLI-based connection management optimizations - Illuminated Cloud no longer automatically runs force:org:list or force:org:display once it has some cached version of the output of those commands (with two exceptions described below). Instead it notifies the user when the cached version seems to have become stale. It also now uses both file modification timestamps and checksums to determine staleness; previously it used only file modification timestamps. The notification allows the user to refresh the connection information immediately as a background operation, defer the notification for five minutes, or disable the notification altogether. Disabled notifications can be re-enabled in Illuminated Cloud > Configure Application > Salesforce DX. If disabled, the user will receive no notifications that Salesforce CLI-based connections are stale, but the connection list can always be refreshed explicitly in Illuminated Cloud > Configure Application > Connections. Illuminated Cloud will execute force:org:list automatically when Salesforce CLI-based connections are added or removed via its connection manager, and it will execute force:org:display automatically when an OAuth access token has expired and must be refreshed.
  • The module configuration notification now displays the Resolve and Ignore actions prominently without requiring the user to expand the notification first.
  • Minor improvement to Apex code folding options to organize them into an Apex sub-category.
  • Other minor fixes and improvements. release notes

posted May 27, 2020, 9:27 AM by Scott Wells

  • JavaScript and CSS syntax highlighting improvements in Community Edition IDEs - JetBrains IDEs now include the TextMate Bundles plugin which provides significantly improved syntax highlighting for file types that aren't supported in a first-class manner by the base IDE, notably JavaScript and CSS in Community Edition (CE) IDEs. Illuminated Cloud can now assist users of CE IDEs with configuration of TextMate Bundles for JavaScript and CSS syntax highlighting. Note that due to restrictions in the plugin SDK around automated changes to file type associations, changes to the associations for *.js and *.css must be performed manually by the user. Illuminated Cloud will inform the user of the exact changes needed and will open the appropriate settings dialog in which the changes should be made. Conversely, Illuminated Cloud can also detect when JetBrains' commercial IDEs are not properly configured for native JavaScript and CSS support and assist with proper native file type association configuration. release notes

posted May 22, 2020, 7:54 AM by Scott Wells

  • Issue 1578 (redux) - The recent change to disable deploy-on-save for connections that require write confirmation has taken several users by surprise. As a result, I've added an explicit configuration option for disabling deploy-on-save for connections that require write confirmation, and this new option is disabled by default. If you have been relying on this change, please update your connection configuration(s) to disable deploy-on-save.
  • Issue 1589 (redux) - An issue has been found with Tooling REST API-based deployment of LWC bundle files which import custom fields. This issue has been reported to Salesforce via several channels already and is being tracked internally at Salesforce, but there is currently no ETA for a fix. As a result, I've added an explicit configuration option for LWC deployment via the Tooling API distinct from Aura deployment via the Tooling API, and this new option is disabled. I will continue to investigate options for LWC deployment optimization in the next few releases. release notes

posted May 20, 2020, 7:09 AM by Scott Wells

  • Issue 1589 - Added support for Tooling API-based deployment of individual LWC bundle files. This is enabled by default and is configured via Illuminated Cloud > Configure Application > Validation and Deployment > Prefer Tooling API for > Lightning (the same setting used for Tooling API-based Aura deployment). This should generally yield significantly faster individual file deployment times for LWC bundle files.
  • Issue 1597 - Added support for copy/paste handling of Apex string literals. Copied string literal values are automatically unescaped. Pasted string literal values are automatically escaped and, if they are multi-line, are converted into respective string literal concatenations.
  • Issue 1620 - Implemented a fix/workaround for an ArrayIndexOutOfBoundsException encountered by a few users in the deploy/retrieve/delete dialog.
  • Issue 1625 - Implemented a workaround for a seeming regression in the base IDEs around dynamic file type detection (issue filed here). This regression could cause *.app*.resource*.email, etc., files which have dynamic file types to fail to resolve to the correct file types properly.
  • Fixed an issue with display of members of wildcard metadata types in the deploy/retrieve/delete dialog when using Selected metadata subscriptions.
  • Fixed an issue that required the ApexDoc formatter to be enabled for /**Enter to work properly for creation of ApexDoc header comments.
  • Added a Refresh license key status button to the Illuminated Cloud About dialog to allow users to request the latest license status from the licensing servers explicitly.
  • Updated licensing software to the latest version.
  • Other related fixes and improvements. release notes

posted May 13, 2020, 8:09 AM by Scott Wells

  • Metadata subscription management enhancements
    • The visual metadata subscription editor can now be used with Package.xml metadata subscriptions as well as Selected metadata subscriptions. Note that wildcards are now handled a bit differently in the module subscription editor than in the past. Checking a metadata type node attempts to select it as wildcarded. A wildcarded type includes a [*] marker denoting it as such. Wildcarding behavior differs based on the metadata subscription type:
      • In a Selected metadata subscription, any type can be specified as wildcarded and Illuminated Cloud will attempt to keep the members of that metadata type current when the metadata list from the server is updated (see more about the new metadata cache below).
      • In a Package.xml metadata subscription, only metadata types that allow wildcards can be wildcarded. The wildcard is conveyed into the package.xml file. Selection of types which do not allow wildcards will select all current members of the type and create explicit entries for each member in the package.xml file.
    • Improved representation of All/Package metadata subscriptions. All subscriptions now display all metadata as selected in a read-only checkbox tree; Package subscriptions now clear the checkbox tree and clearly state the name of the development package that drives the metadata subscription (unfortunately there's no way to enumerate the contents of a development package via the API).
    • Additional view management controls have been added to the deploy/retrieve/delete dialog and metadata subscription editor toolbars including expand/collapse all, expand selected, and select/unselect all.
    • Checkbox tree state is preserved when switching between views, changing view configuration, etc., in both the deploy/retrieve/delete dialog and the metadata subscription editor. As much as possible, IC attempts to retain the tree expansion state, viewport location, row selections, etc., when configuring these UIs.
    • When Illuminated Cloud modifies a package.xml file, whether via the metadata subscription editor, the Add to Metadata Subscription action, or subscription updates in response to file events, it attempts to preserve existing XML comments as much as possible.
  • Centralized, persistent org metadata definition cache - Org metadata definitions are now cached persistently across sessions, and this cache is used consistently throughout Illuminated Cloud to avoid unnecessary (and sometimes expensive) metadata enumeration. This cache can be explicitly refreshed using the corresponding Refresh toolbar buttons in the deploy/retrieve/delete dialog and the metadata subscription editor. The cache population date is displayed clearly in both of these locations. NOTE: All other persistent org metadata definition caches have been removed and replaced. This includes the skeletal metadata definition information stored as part of a Selected metadata subscription in the .iml file. The next time that a Selected metadata subscription is updated, only the selected items will be included in the .iml file. This makes for a much more compact .iml file that represents exactly the metadata included in the subscription. Similarly, if a subscription type other than Selected is used, the entire Manifest section will be removed from the .iml file.
  • Issue 1593 - Fixed an issue with automatic display of quick documentation on mouse hover--which is enabled by default in 2020.1--so that the IDE doesn't lag when the mouse passes over system types with large bundled offline documentation. Instead only the summary information is displayed on mouse hover, and full documentation can be shown for these types using an explicit invocation of quick documentation.
  • Many other related fixes and improvements. release notes

posted May 6, 2020, 10:44 AM by Scott Wells

  • Issue 1606 - The latest Salesforce CLI update, 48.12.0/1, seems to have introduced a regression that can result in Salesforce DX-based connections to appear to be missing. The underlying cause seems to be an error response from the CLI that should be fixed in the next Salesforce CLI build. This update to Illuminated Cloud ensures that the error response is properly handled and presented to the end user. It also ensures that the response is not cached. It appears that forcing Illuminated Cloud to refresh its connection list via the Refresh toolbar button in Illuminated Cloud > Configure Application > About tab generally results in a correct response.

    If you continue to have this issue after refreshing the connection list or, more importantly, after updating to the next Salesforce CLI build, please visit issue 1606 in the public issue tracker and provide diagnostic information to assist with the resolution of this issue.

1-10 of 153