release notes

posted by Scott Wells

  • Issue 1844 - Fixed an issue with All/Package metadata subscriptions where local-only metadata files would not be included in the deployment build options dialog.
  • Issue 1848 - Fixed an issue with Apex code coverage that could occur when an Apex class and trigger have the same name. Note that this required a change to the format of generated coverage reports such that classes and triggers are now segregated from one another as namespace.classes and namespace.triggers respectively.
  • Issue 1865 - Fixed a few issues with the Apex parser's support for anonymous Apex scripts that include a mix of statements and type/body declarations.
  • Issue 1867 - Salesforce object IDs are now hyperlinked in all console views. Clicking on a hyperlinked object ID will open that object in the associated organization if a connection can be directly inferred for the console view, e.g., unit test execution results and the Anonymous Apex/SOQL Query/Log Analyzer tool windows. If a connection cannot be inferred, a connection selector will be displayed from which the user can choose the organization in which the ID should be opened.
  • Issue 1876 - Added a workaround for a Salesforce CLI issue where a retrieved LWC bundle's meta.xml file would be named for the CSS file and not the JS file. The underlying issue is being tracked by Salesforce in the CLI's public issue tracker here.
  • Issue 1877 - Added the missing unpackagedMetadata property/object to the JSON schema for sfdx-project.json files.
  • Other related fixes and enhancements. release notes

posted May 3, 2021, 8:43 AM by Scott Wells

  • Issues 1857 and 1864 - JetBrains has released 2021.1.1 patches for these two issues in their 2021.1 releases. The workaround for the conflict with Python/Docker has been removed, and it should be safe to have those two JetBrains plugins installed and enabled alongside Illuminated Cloud 2. Please make sure to update to the latest base IDE release ASAP to take advantage of these fixes.
  • Issue 1843 - Installed unlocked packages with namespaces are now treated identically to installed managed packages with regard to which org metadata can and cannot be included in metadata subscriptions, deployed, retrieved, removed, etc.
  • Issue 1853 - Added a new toolbar button to the Anonymous Apex tool window to toggle whether or not the executed script is echoed into the output page. For backward-compatibility, this is enabled by default.
  • Issue 1870 - Added a proper type definition for NavigationMixin to the LWC lightning/navigation module. Massive thanks to Charlie Jonas for lending his TypeScript know-how to ensure a proper definition. Note that PageReference is still loosely-typed due to what seem to be limitations in the JetBrains TypeScript/ES6 features. I'll log a bug with them with a specific example of the issue and, once it has been addressed, I'll provide a strongly-typed version of PageReference and its page-specific variants as well.
  • Issue 1872 - Fixed a metadata retrieval issue that could occur in source format projects with a configured package directory named unpackaged.
  • Updated the LWC system type definitions based on the latest from Salesforce.
  • Added quite a few missing elements and attributes to metadata.xsd based on observed resolution issues in OSS-based smoke test projects.
  • Fixed issues with JavaScript and LWC import code completion in 2021.1+ Community Edition IDEs.
  • Other related fixes and enhancements. release notes

posted Apr 22, 2021, 8:38 AM by Scott Wells

  • Issue 1838 - Fixed an issue with refresh and retrieval-without-merge of bundle-type metadata—static resource, Aura, LWC, Wave, and experience bundles—not properly updating the local copy for some additions and removals.
  • Issue 1842 - Fixed an issue that could result in deployment, retrieval, and removal actions on decomposed metadata types including metadata objects under the same parent that weren't actually included in the contextual selection.
  • Issue 1859 - All first-class metadata creation actions—Apex classes/triggers, Visualforce pages/components, Aura/LWC bundles, and static resources—now perform project-wide name conflict detection.
  • Issue 1866 - BusinessHours is very similar to Site in that it exists in both the Schema namespace as an SObject and in the System namespace as a utility class. Added the same type resolution logic for that type as for Site.
  • Added a new Apex code inspection, Invalid type, that reports declarations with incorrect types, specifically variables and fields declared as void.
  • Other related fixes and enhancements. release notes

posted Apr 15, 2021, 7:49 AM by Scott Wells

  • Issue 1147 - Fixed an Apex parser issue with ternary expressions when the true branch is an assignment expression. This also fixed an issue with proper associativity of nested ternary expression branches.
  • Issues 1627 and 1799 (likely others) - Fixed all known issues with resolution of ambiguous type names for which the intended type must be derived contextually, e.g., System.Site and Schema.Site which both exist in implicit namespaces and may be referenced as simply Site. In order to do this properly, I finally corrected a long-standing issue with the layout of non-namespaced SObject stub classes in the OST by moving them from the root/empty namespace into the Schema namespace.

    NOTE: This requires that all OSTs be regenerated as the associated type resolution fixes depend on this relocation of SObjects with no explicit specified namespace. Failure to do so will result in issues with code completion, reference resolution, and code inspection false positives where references to these types are found. I apologize for requiring regeneration of all OSTs, but in this case it's motivated by a change to the OST that correctly represents the underlying SObject type system.
  • Issue 1863 - Fixed an issue with camel cased-to-kebab-cased conversion of names containing multiple adjacent capital letters.
  • Related to the OST change above, the module validation notification now provides more detailed information when an OST is found to be out-of-date. It now includes descriptions of the actual changes to the OST and the relative importance of regenerating the OST based on each of these changes. For example, changes that enrich or slightly correct the OST but wouldn't likely affect most users result in recommended OST regeneration; those that fundamentally change the OST layout such as the one in this update to reorganize certain SObjects into the Schema namespace result in required OST regeneration. This should help users to understand the impact of regenerating vs. not regenerating their OSTs after taking an update that results in this type of module validation notification.
  • Fixed an issue that would result in unmodified loaded scratch org definition files being written, possibly resulting in the file being reformatted.
  • Other related fixes and enhancements. release notes

posted Apr 12, 2021, 8:19 AM by Scott Wells

  • Issue 1857 - There is a known issue in the JetBrains 2021.1 releases that creates a runtime conflict with Illuminated Cloud 2 when the Salesforce SOAP client is used. This issue only seems to materialize when the JetBrains Docker and Python plugins are installed and enabled alongside the Illuminated Cloud 2 plugin in 2021.1. This build includes a change to detect this state and prompt the user to disable one or both of the conflicting plugins. If the user declines to disable any plugins, the user is informed that there will be issues and the user should use 2020.3 instead until JetBrains provides a fix for IDEA-266117.
  • Added an inspection suppressor for when the JavaScript unused declaration inspection flags the default export in an LWC component's ES6 file as unused. release notes

posted Apr 8, 2021, 8:32 AM by Scott Wells

  • JetBrains 2021.1 Updates - Updated Illuminated Cloud 2 for changes in the new JetBrains 2021.1 releases.

    NOTE: As of this build, JetBrains 2019.* releases are no longer supported. As always, it is strongly recommended that the most recent supported version be used, in this case 2021.1, but 2020.* releases also continue to be supported. release notes

posted Apr 1, 2021, 10:32 AM by Scott Wells

  • Issue 1127 - Fixed a corner-case issue in type inference for ternary expressions where one of the true/false expressions evaluates to List<SObject> and the other to List<ConcreteSObjectType>; the total expression should evaluate to the latter.
  • Issue 1627 - Fixed an issue with type resolution for certain system SObjects with unqualified names that are the same as those of system Apex types in implicit namespaces, e.g., Schema.Site and System.Site.
  • Issue 1799 - Fixed a bug that could result in incorrect or missed resolution of a composite type name due to the original point of reference not being properly propagated.
  • Issue 1828 - The unsubscribed metadata deployment prompt now allows the user to apply the choice to all unsubscribed metadata in the current deployment request. The prompt's last applied state is also remembered across deployments.
  • Issue 1832 - A few more fixes based on issues found in the NPSP project including:
    • Fixed an issue with improper translation of namespace: qualifications in markup files.
    • Fixed an issue with identification of the proper module when creating a scratch org in the context of a project that has a sfdx-project.json file but isn't completely an SFDX project. This could result in the force:org:create command running from a non-project directory and therefore not properly using the sfdx-project.json file.
  • Issue 1856 - Prospective fix for an NPE observed by a user during OST generation, presumably because of unsynchronized population of a collection in a multi-threaded environment. I've made the collection synchronized and also added exception handling so that even if the problem still occurs, it won't kill OST generation.
  • Added an error filter to remove CSS parser errors when braced expressions are used in LWC HTML files to specify values for HTML style attributes.
  • Fixed an issue with the reported suffix for custom page web link metadata. It's reported as weblink by the API but should be custompageweblink.
  • Changed the file type for the *.networkBranding pattern from XML to JSON.
  • Other related fixes and improvements. release notes

posted Mar 25, 2021, 7:18 AM by Scott Wells

  • Issues 1663 and 1832 - Added support for dynamic Visualforce components in Apex including code completion, reference navigation, quick documentation (uses the respective component/attribute doc), and parameter info for parameterized component constructors.
    • All system Visualforce components are rendered into the OST as the Component class in the root namespace with inner classes for each system component namespace and per-namespace inner classes for each system component in that system namespace. As expected, the OST must be regenerated to see the effect of this change.
    • All local custom Visualforce components (i.e., *.component files) are also properly proxied into Apex. Usages of custom components and their attributes in Apex are linked to the respective component markup files and apex:attribute elements.
    • Note that there is currently no support for components from installed managed packages or unpackaged components for which no *.component metadata exists in the local project.
  • Other related fixes and improvements. release notes

posted Mar 19, 2021, 8:08 AM by Scott Wells

  • Issue 1847 - Several fixes for when and whether the Add to Metadata Subscription action is offered and executed in source format project variants.
  • Issue 1850 - Prospective fix for an issue observed by a user where an invalid element is found during Apex code completion.
  • The code coverage tool window is now activated on completion of Run with Coverage test executions only if configured to do so via Settings / Preferences > Build, Execution, Deployment > Coverage > When new coverage is gathered > Activate Coverage View (enabled by default).
  • Added a few standard value set names that aren't found in the published list.
  • Fixed an issue that could result in an inner class being found for a type name reference with a namespace qualification.
  • Fixed an issue that could result in logged exceptions while trying to find custom labels for purposes of code folding during indexing.
  • Several fixes for how package.xml files are handled and configured in source format projects.
  • Changed paths of dynamically-loaded resources to remove leading slashes based on logged warnings in the upcoming 2021.1 release.
  • Other related fixes and improvements. release notes

posted Mar 11, 2021, 11:39 AM by Scott Wells

  • Fixed an issue with how compile-time constant expressions of the form Schema.sobjectTypeName.fieldName are evaluated. In the process I actually implemented a number of additional fixes and (hopefully) optimizations in how simple reference expressions are evaluated for reference targets.
  • Prospective fix for the long-standing issue that would result in resolution to the OST stub version of an Apex type that is also available as local source.
  • Added support for code completion and reference resolution of field sets that aren't present in the local metadata by rendering the field set information into the OST. The OST must be regenerated to see the effect of this change.
  • Added missing metadata type information for feature parameters. Feature parameter metadata should be fully-supported now. If any gaps are found please report them via the public issue tracker.
  • Added missing allowed top-level element types for decomposed object translation metadata to the XSD used for validation and code completion of XML metadata files.
  • Added an optimization to avoid scanning the classpath for VF and Aura XSDs for project namespaces.
  • Fixed an issue that could result in an invalid path for referenced static resource bundle contents when the relative path in the reference starts with a leading slash (/).
  • Fixed an issue where plugin verification would fail and cause the Illuminated Cloud 2 plugin to be disabled in the upcoming JetBrains 2021.1 IDE releases.
  • Other related fixes and improvements.

1-10 of 200