Wiki

Clone wiki

IlluminatedCloud / User_Guide / Generating_an_OST

[Home]

Generating an Offline Symbol Table

The Offline Symbol Table (OST) is an org-specific SDK for Salesforce development that contains the following:

  • All system Apex types

  • All SObjects and their fields (subject to authorization against the org; refer to the Ensure field read access connection setting)

  • Custom Apex types which are not present in the local project, including the accessible interfaces of obfuscated types from installed packages

  • Additional metadata such as polymorphic field relationships and picklist field values

The OST is used by Illuminated Cloud for:

  • Code completion for its contents
  • Reference resolution and validation for references to its contents
  • Integrated system API documentation for system Apex types, SObjects, and fields

Once generated, you can find the OST in the project tree under Illuminated Cloud > <org connection alias> > OfflineSymbolTable.zip.

Expand it to view the contents of the offline symbol table. Stub Apex types for symbols from the default namespace are found in the OST root directory. Stub Apex types for symbols from system namespaces and namespaces from installed packages are found within subdirectories for each respective namespace.

project_tree_ost2.png


Recommendations for Updating the OST

Because the OST is org-specific and enables IDE features such as code completion and reference navigation/validation against the org's contents, it must be regenerated when those contents change.

Consider explicitly regenerating the OST for your project to ensure that it reflects the org's latest state when any of the following occurs:

  • SObjects and/or fields are created, updated, or removed. Note that upon successful deployment of CustomObject or CustomField metadata, Illuminated Cloud will automatically regenerate the entries for those specific SObjects.
  • Packages are installed or uninstalled.
  • A Salesforce seasonal release has occurred and new/updated system APIs are available.
  • Illuminated Cloud has been updated with significant OST changes and notifies you of an out-of-date OST.

If you choose another connection for a project for which no OST exists, you can choose whether to generate a new OST for the connection or use the OST for an existing connection that has similar contents (in which case the IDE will make a copy of it for the new connection).


Regenerating the OST

As noted above, the OST should be regenerated as appropriate to ensure that it reflects the org's latest state.

  1. To generate the OST, select Generate Offline Symbol Table from the Tools > Illuminated Cloud menu, Illuminated Cloud context menu, or toolbar icon generate_ost_icon.png . You can also use the respective keyboard shortcut.

  2. When prompted, choose whether you want to regenerate the full offline symbol table or SObjects only based on the types of changes that have occurred in the org prompting OST regeneration.

    generate_ost_prompt.png

    The IDE generates the relevant portions of the offline symbol table based on your selection and notifies you when the process is complete.

    generate_ost_complete.png

  3. When prompted, choose whether you want to reload the project, to ensure the rebuilt caches and indices will be used. Yes is the default selection, and is recommended.

    reload_rebuild_prompt.png


Removing Orphaned OSTs

Illuminated Cloud makes it easy for you to remove files for any unused offline symbol tables. Simply use the option for removing orphaned OSTs that's provided in Illuminated Cloud > Configure Project.

Select an item in the Modules and Connections list, click Remove Orphaned Offline Symbol Tables, and click OK.

project_settings.png

NOTE: The button is disabled if no orphaned OSTs exist for the project.

Illuminated Cloud detects any offline symbol tables that aren’t being used by the project and prompts you to choose whether you want to delete them.

If, after reviewing the list, you determine that they are no longer needed and can be cleaned up, click Yes.

If, after reviewing the list, you realize that you may want to switch back to using the items at another time, click No to keep them.


Metadata Retrieval and the OST

Both OST generation and metadata retrieval can be used to make Illuminated Cloud aware of certain subsets of org metadata, though they play quite different roles.

As described above, an accurate and up-to-date OST is required to support IDE features such as code completion, reference navigation and validation, and integrated API documentation. Metadata retrieval is used to add a file-based representation of org metadata to the project for local management.

For example, if a new SObject or field is created in the organization, it must be retrieved into the local project before it can be managed as part of the project metadata, checked into version control, etc. However, retrieval of that metadata will not enable IDE features such as code completion, reference navigation and validation, or integrated API documentation for those SObjects and fields. The OST must also be regenerated—minimally the SObjects portion—for Illuminated Cloud to recognize those SObjects and fields during code completion, reference addition and validation, etc.


Version Control and the OST

The OST can be checked into version control alongside other versioned project files. However, whether or not it makes sense to do so is based on the volatility of the associated org's metadata.

If SObjects and fields are being created/modified/removed on a regular basis, or if packages are being installed/uninstalled in support of ongoing development, it probably does not make sense to check in a shared OST because it will require frequent regeneration.

If these project characteristics are relatively static, checking the OST into version control may allow team members to avoid the need for individual OST generation. In this situation, the OST may only need to be updated in response to Salesforce seasonal releases and Illuminated Cloud updates with significant OST changes.

[Home]

Updated