Wiki
Clone wikiIlluminatedCloud / 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.
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
orCustomField
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.
-
To generate the OST, select Generate Offline Symbol Table from the Tools > Illuminated Cloud menu, Illuminated Cloud context menu, or toolbar icon . You can also use the respective keyboard shortcut.
-
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.
The IDE generates the relevant portions of the offline symbol table based on your selection and notifies you when the process is complete.
-
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.
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.
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