2.1.1.2 release notes

posted Mar 27, 2020, 7:59 AM by Scott Wells

2.1.1.2

  • Salesforce DX connection caching improvements - The results of force:org:list and force:org:display CLI invocations are now cached persistently at the application-level in /path/to/IDEConfigDir/config/options/illuminatedCloudSfdxCache.xml. Previously they were cached in-memory which meant that the cache had to be populated each time the IDE was (re)started. These cached results are evicted and re-populated as follows:
    • The results of force:org:list are evicted and re-populated when key files under ~/.sfdx have been updated, most notably alias.json and/or any of the connectionUsername.json files.
    • The results of force:org:display for a given connection are evicted and re-populated when the corresponding ~/.sfdx/connectionUsername.json file has been updated.
    • It is now possible to force these caches to be rebuilt explicitly in the connection manager (Illuminated Cloud > Configure Application > Connections) using the Refresh SFDX Connections toolbar button.
    Hopefully this will result in far less frequent invocations of these two CLI commands. Note that if force:org:list is still taking considerable time to run, the following command-line actions may help significantly:
    1. Run sfdx force:org:list --clean to remove all stale scratch org connections.
    2. Run sfdx force:org:list and, for every non-scratch org connection with a value for CONNECTED STATUS that is not Connected, run sfdx force:auth:logout -u username.
    3. Use force:auth:logout to log out of any other non-scratch org connections that you are no longer using.
  • Usability improvements when resolving module configuration issues around missing/expired connections. The workflow should be much smoother when connections are created for an invalid module.
  • Issue 1560 - Updated the Apex parser to allow bind expressions as values for SOQL GEOLOCATION function parameters.
  • Issue 1561 - Public/global property declarations with the @TestVisible annotation are no longer flagged as warnings by the modifier agreement inspection.
  • Issue 1562 - The values for custom field labels, descriptions, default value formulas, and formula field formulas are now properly HTML-encoded when written into ApexDoc headers during OST generation.
  • Issue 1563 - Fixed several minor issues with the @AuraEnabled annotation and webService modifier when applied to fields or properties instead of methods.
  • Added support for Aura $SObjectType.CurrentUser.Id expressions.
  • Fixed a few small ApexDoc formatting and code intention issues.
  • Other related fixes and improvements.

2.1.1.1 release notes

posted Mar 23, 2020, 7:56 AM by Scott Wells

2.1.1.1

  • ApexDoc Enhancements
    • ApexDoc code formatter - Configurable formatter for ApexDoc comments with options found under Settings / Preferences > Editor > Code Style > Apex in the ApexDoc tab. NOTE: ApexDoc formatting is disabled by default to avoid unexpected wholesale formatting changes to existing code bases with ApexDoc. All users are encouraged to enable the ApexDoc formatter and then isolate changes from an initial ApexDoc formatting pass from other logic changes.
    • ApexDoc validation code inspection - Real-time static code analysis for ApexDoc comments with extensive rule configuration under Settings / Preferences > Editor > Inspections > Salesforce > ApexDoc validation. Many reported issues can be addressed automatically using the Clean up ApexDoc comment code intention/quick fix using Alt+Enter on Windows/Linux or Opt+Enter on Mac.
    • ApexDoc comment generation - IDE-assisted creation of ApexDoc comments, either by typing /**<Enter> (as in previous versions) or by using the Add ApexDoc comment code intention via Alt+Enter on Windows/Linux or Opt+Enter on Mac from the declaration name.
  • Other related fixes and improvements.

2.1.1.0 release notes

posted Mar 16, 2020, 8:26 AM by Scott Wells

2.1.1.0

  • Apex Change Method Signature Refactoring - Added a Change Method Signature refactoring for Apex constructors, methods, and interface methods (collectively called "methods" in this description for simplicity):
    • Allows the user to change most of a method's characteristics including visibility (except interface methods), return type (except constructors), name, and parameters.
    • Method parameters can be added, removed, and reordered, and their types and names can be changed.
    • Default values/expressions can be specified for added method parameters.
    • The user can optionally choose to generate a backward-compatible version of the original signature that delegates to the changed signature to minimize the ripple effect of the change across the code base.
    • When an interface method implementation or method override is selected for this refactoring, the user is prompted whether to refactor the defining base declaration or the selected declaration.
    • When the signature of an implemented interface method or overridden base method is changed, the change is propagated to all implementations/overrides for consistency.
    • Existing ApexDoc comments are updated to reflect method signature changes including addition/removal/reordering of @param tags as appropriate, addition/removal of the @return tag, etc.
    • The requested changes are validated against the affected code to help ensure that conflicts, unresolvable references, etc., are not introduced as a result.
    • Qualifications are added to references of local class members if necessary to avoid ambiguity with renamed or added parameters.
  • Apex Rename Refactoring Improvements
    • When an interface method implementation or method override is selected for this refactoring, the user is prompted whether to refactor the defining base declaration or the selected declaration.
    • Qualifications are added to references of local class members if necessary to avoid ambiguity with renamed parameters or local variables.
  • Other related fixes and improvements.

2.1.0.9 release notes

posted Mar 5, 2020, 9:23 AM by Scott Wells

2.1.0.9

  • Fixed an issue with missing code completions immediately after a default constructor invocation.
  • Fixed a false negative with upsert statement external ID field expressions in class methods.
  • Added code completion support for upsert statement external ID fields.

2.1.0.8 release notes

posted Feb 28, 2020, 11:33 AM by Scott Wells

2.1.0.8

  • Issue 975 - Hotfix for code completion issue introduced in 2.1.0.7 where code completions for local variables weren't being properly offered.

2.1.0.7 release notes

posted Feb 28, 2020, 6:24 AM by Scott Wells

2.1.0.7

  • Issue 975 - Apex class/instance scope agreement enhancements:
    • Apex code completions are now filtered based on class vs. instance scope according to the point of insertion. Instance methods, fields, and properties are not accessible from static/class methods; static/class methods, fields, and properties cannot be referenced via instances.
    • A new real-time Apex code inspection, Scope agreement, verifies proper class/instance scope agreement. Attempts to reference instance declarations from a static/class context and attempts to reference static/class declarations via an instance are marked as errors. A quick fix is available for the latter to convert the instance-based expression into a reference to the static/class declaration's containing type.
    NOTE: Several minor OST issues were discovered while implementing these features. For the best results, please regenerate the OST to ensure that system declarations have the proper modifiers.
  • Issue 996 - References to inner classes in stack traces should be properly hyperlinked now.
  • Issue 1488 (redux) - Issue 1488 specifically called for better handling of non-bundle files in Aura bundles, specifically TypeScript source files. Now LWC components are handled similarly so that non-HTML/JavaScript/CSS files are opened in their standalone editor tab while HTML/JavaScript/CSS files for the same bundle are opened together in a tabbed editor.
  • Added a new configuration option to the SOQL Query tool window to ignore syntax errors in queries before execution. This option is disabled by default and, if the query syntax appears invalid, the user will be prompted as to whether the query should be executed. This behavior can be disabled by unchecking Validate Query Syntax in the toolbar gear drop-down. This is useful for users who add multiple SOQL queries to the same tab and use selection to designate which query should be executed.
  • Refactoring now works properly in the Anonymous Apex editor. Rename, safe delete, and extract variable are supported in Anonymous Apex; extract constant, extract method, and inline expression are not.
  • Fixed a few remaining issues with ExperienceBundle metadata.
  • Other related fixes and improvements.

2.1.0.6 release notes

posted Feb 20, 2020, 7:26 AM by Scott Wells

2.1.0.6

  • Issue 1532 - Code coverage is no longer downloaded when a Run With Coverage unit test execution is canceled.
  • Issue 1534 - Annotations are now conveyed into the OST for custom classes for which source code is available, e.g., from installed unlocked no-namespace packages. If a symbol in such a class is annotated as @TestVisible, it is now included in the OST even if it is private visibility. Note that full OST regeneration is required to see the results of this change.
  • Issue 1540 - Added proper support for ExperienceBundle metadata.
  • Fixed an annotation/modifier agreement code inspection issue where methods that are @TestVisible private virtual were being incorrectly identified as not visible to their overrides. I also fixed other aspects of this issue so that the Override Method action now properly includes methods with this signature as override candidates.
  • Code completion is now case-insensitive in Apex, SOQL, SOSL, and Visualforce expressions (FINALLY!). For example, you can now type sys in Apex and be offered System as a completion. Similarly you can type fr in a SOQL query and be offered FROM. Upon accepting a completion, the preferred/canonical form of the accepted completion is inserted.
  • Fixed an issue that was causing deployment status information to be updated on successful completion of a check-only deployment. Now deployment status is only updated on successful completion of a deployment that actually commits changes to the organization.
  • Bulk deployment to a production organization now defaults to a test level of Default instead of Run Local Tests. Note that if the deployment manifest includes Apex classes or triggers, the test level is automatically escalated to Run Local Tests if not already configured as such.
  • Added smart completion of enum constants when an enum type is expected at the point of insertion.
  • Integrated online documentation for metadata creation into the Apex trigger, LWC component, and static resource creation dialogs.
  • Fixed a few issues with improper indexing. If you find your caches/indices to be stale or incorrect, please use the Rebuild Caches and Indices action in the project configuration dialog (Tools>Illuminated Cloud>Configure Project) and allow the project to close and re-open.
  • Other related fixes and improvements.

1.8.5.6 release notes

posted Feb 17, 2020, 6:47 AM by Scott Wells

1.8.5.6

  • Spring '20 / API v48.0 Updates
    • Added full support for the new SOQL WITH RecordVisibilityContext clause.
    • Fixed a parser issue with multiple SOQL WITH clauses of different types.
    • Updated the SOAP client to be based on the API v48.0 WSDLs.
    • Updated the API version number used for primary communication with Salesforce APIs to 48.0.
    • Added 48.0 as an available API version number for configured connections.
    • Updated the OST for new Apex namespaces, types, and members that are not returned properly by the Tooling API's Apex completions resource.
    • Updated Visualforce and Aura standard components, functions, etc., for Spring '20.
    • Updated the metadata.xsd used for validation and completion in XML metadata files for Spring '20.
    • Updated XML file type extensions for Spring '20.
    • Updated standard value sets for Spring '20.
    • Updated bundled SLDS to 2.11.3 (sanitized version).
    • Updated all integrated API documentation for Spring '20.
    • Added preliminary support for transaction finalizers in the form of the TransactionFinalizers SFDX scratch org feature.
    • Adjusted SOQL batching to take advantage of the raised 100K query length (previously 20K).
  • Other fixes and improvements based on changes required for Spring '20 support.
NOTE: This will be the last major update to Illuminated Cloud 1 for Salesforce seasonal releases or JetBrains IntelliJ IDEA updates. When Illuminated Cloud 2 was released a bit over two years ago, it was announced that Illuminated Cloud 1 would continue to "receive updates for Salesforce seasonal releases through Winter '19 inclusive". In reality, Illuminated Cloud 1 has received more than a year of additional releases (through Spring '20 inclusive) as well as a number of new features and improvements.

As stated in that announcement and elsewhere, all major features and enhancements have been for Illuminated Cloud 2, the current major version of the product. This includes first-class support for exciting new Salesforce technologies such as Lightning Web Components as well as developer productivity features such as source code refactoring, real-time static code analysis, a Log Analyzer, support for additional JetBrains IDEs (WebStorm, PhpStorm, PyCharm, and RubyMine), and much more.

The JetBrains plugin model has changed considerably in the past few years, and the 2020.* major version family introduces some of its most significant—and not surprisingly quite incompatible—changes ever. As a result, Illuminated Cloud 1 will not support versions of IntelliJ IDEA higher than 2019.*.

Illuminated Cloud 1 is provided under a perpetual license and will continue to work when hosted within supported IntelliJ IDEA versions and against supported Salesforce API versions (up to Spring '20 / API v48.0). Higher API versions may be specified for connections and metadata files, but the IDE will communicate with the Salesforce servers using API v48.0.

Illuminated Cloud 1 users who require support for newer Salesforce technologies, newer JetBrains IDE versions, and/or new IDE features should consider upgrading to Illuminated Cloud 2.

2.1.0.5 release notes

posted Feb 17, 2020, 6:46 AM by Scott Wells

2.1.0.5

  • Spring '20 / API v48.0 Updates
    • Added support for specification of the scratch org description and whether or not sample data should be included in the scratch org creation dialog and loading/saving of scratch org definition files.
    • Added full support for the new SOQL WITH RecordVisibilityContext clause.
    • Fixed a parser issue with multiple SOQL WITH clauses of different types.
    • Added full support for usage of Aura tokens in LWC CSS var references.
    • Updated the SOAP client to be based on the API v48.0 WSDLs.
    • Updated the API version number used for primary communication with Salesforce APIs to 48.0.
    • Added 48.0 as an available API version number for configured connections.
    • Updated the OST for new Apex namespaces, types, and members that are not returned properly by the Tooling API's Apex completions resource.
    • Updated Visualforce, Aura, and LWC components, functions, modules, etc., for Spring '20.
    • Updated the metadata.xsd used for validation and completion in XML metadata files for Spring '20.
    • Updated XML file type extensions for Spring '20.
    • Updated standard value sets for Spring '20.
    • Updated bundled SLDS to 2.11.3 (sanitized version).
    • Updated all integrated API documentation for Spring '20.
    • Updated Salesforce DX scratch org features for Spring '20.
    • Added new scratch org feature documentation to the scratch org creation dialog.
    • Adjusted SOQL batching to take advantage of the raised 100K query length (previously 20K).
  • Due to recent plugin SDK changes, the supported build range is now 2019.1-2019.3 with a recommended version of 2019.3.x where x is the latest minor version available.
    • NOTE: This build will not work with 2020.* JetBrains IDE builds including EAPs. This is intentional due to significant plugin SDK changes in that major version family. A new build of Illuminated Cloud 2 will be released before the official 2020.1 releases of the JetBrains IDEs with full support.
  • Other fixes and improvements based on changes required for Spring '20 support.

2.1.0.3/4 release notes

posted Feb 11, 2020, 2:18 PM by Scott Wells   [ updated Feb 11, 2020, 6:02 PM ]

2.1.0.3/4

  • Hotfix for an issue observed in the modifier agreement code inspection introduced in 2.1.0.2 that could result in a bad/stale cache state evidenced clearly in idea.log by repeated PsiInvalidElementAccessException errors originating from getObjectClassDeclaration().
  • Performance optimization for regular expression string literal language injection.

1-10 of 137