Wiki

Clone wiki

IlluminatedCloud / User_Guide / Create_Standard_Project

[Home]

Creating Standard Salesforce Projects

There are several ways you can create standard Salesforce projects in Illuminated Cloud. You can create projects from scratch, from source files stored in the local file system, and from source files in a supported version control system.

Simply select File > New, and choose from the following options:

  • Project — Select Illuminated Cloud in the list on the left, and use the New Project wizard to create your project, following the instructions below.
  • Project from Existing Sources — Select the source files from which you want to create a project and follow the instructions here to create your project.
  • Project from Version Control — Select the type of version control system where the files from which you want to create a project are located and follow these instructions to create your project.

Creating a Standard Salesforce Project from Scratch

For general help on creating a project from scratch, see the corresponding documentation for IntelliJ IDEA and WebStorm (and other lightweight IDEs).

  1. Select File > New > Project to launch the New Project wizard. Note that the New Project Wizard in WebStorm and other lightweight IDEs may be slightly different in appearance, but the general flow should match closely.

    new_project_from_org.png

  2. Select Illuminated Cloud from the project type list on the left.

  3. If you've previously created a connection to make it available across your projects, select the connection you want to use. Otherwise, click the pencil icon pencil icon to create a new connection, following the instructions for Configuring Connections.

    new_project_wizard_subscription.png

  4. Choose the type of metadata subscription for the project:

    Package.xml — If you select this option, Illuminated Cloud will maintain the project's metadata subscription in a package.xml file, by default src/package.xml. This is the default and recommended option as the resulting metadata subscription can be used by most other Salesforce tooling.

    Selected — If you select this option, Illuminated Cloud will maintain the project's metadata subscription in its own .iml file.

    Note that the metadata subscription can be modified at any time once the project has been created.

    NOTE: A wildcarded type includes a [*] marker denoting it as such. Checking a metadata type node attempts to select it as wildcarded. Wildcard behavior differs based on the metadata subscription type: In a Selected metadata subscription, any type can be wildcarded and Illuminated Cloud will attempt to keep the members of that metadata type current when the metadata list from the server is updated. In a Package.xml metadata subscription, only metadata types that allow wildcards can be wildcarded. Selecting a type which doesn't allow wildcards will select all current members of the type and create explicit entries for each member in the package.xml file. For more information, see the related release notes.

  5. Click Next to proceed.

    new_project_from_org2.png

  6. Specify a name for the IDE project. By default the IDE project is named based on the connection selected in the previous step.

  7. Specify the location in the filesystem where you want the project to be placed, or accept the default location. If the directory doesn't already exist, you'll be prompted to confirm that you want the IDE to create it for you.

  8. Select which of the following actions you want Illuminated Cloud to perform when it creates the project:

    • Retrieve metadata from Salesforce — Check this option if you want Illuminated Cloud to retreive metadata from Salesforce using the connection and metadata subscription information that you provided.

    • Merge retrieved metadata — If you selected the Retrieve metadata from Salesforce option above, select this option and the retrieved metadata will be placed in a temporary directory so you can decide what you want to include in your local source directory.

      If you want retrieved metadata to be placed directly in the source directory, leave this option unchecked.

    • Deploy metadata to Salesforce — If you check this option, Illuminated Cloud will automatically deploy all metadata for the module to Salesforce when you click Finish. Select this option only if you have local source you want to deploy.

      NOTE: This option is disabled if Retrieve metadata from Salesforce is selected, as the two options are mutually-exclusive based on their behavior.

    • Generate offline symbol table — An offline symbol table is required by Illuminated Cloud for code completion, offline API documentation, etc., for Salesforce system Apex classes and SObjects, accessible Apex classes from installed managed packages, and custom SObjects. This option should always be selected unless there is a good reason not to generate an offline symbol table for the new project.

    • Create 'All Tests' Apex unit test run configuration — If you check this option, the project is created with a project-level Apex unit test run configuration that runs all tests. This option is checked by default, but the last state is retained across project creations.

  9. If creating a multi-module project, specify the following additional settings as described in detail here:

    Module name — The module name if different from the project name.

    Content root — The path to the module content root under which all module source files reside.

    Module file location — The path to the module's .iml configuration file.

    Project format — The project format. The .idea directory-based format is strongly recommended.

    module_settings.png

  10. When you are satisfied with your project settings, click Finish to create the project.


Illuminated Cloud then begins configuring the project and prompts you as needed. For example:

  • You may be prompted to choose whether you want the new project to be opened in a new window or to replace the existing window. Choose the option you'd prefer to proceed.

  • If Retrieve metadata from Salesforce was enabled, Illuminated Cloud retrieves the selected metadata. If Merge retrieved metadata was disabled, the metadata is retrieved directly into the project source directory. If that option was enabled, the metadata is retrieved into a temporary directory and displayed in the IDE's configured directory comparison tool alongside the project source directory.

    If you had local metadata, you could compare it with the retrieved metadata and select the subset you want. Otherwise, click the sync_all_icon.png icon to sync all.

  • If you previously selected that you wanted to generate an offline symbol table for the connection, Illuminated Cloud loads the system Apex classes and SObject types — essentially the SDK for Apex development — and any custom classes and SObject types available in the organization via managed packages or unmanaged content.

  • Illuminated cloud indexes the metadata, to optimize the efficiency of navigation and code completion operations that you perform while you work with the project.

You'll be prompted to reload the project after rebuilding the cache and indices.

reload_rebuild_prompt.png

Choose the option you'd prefer to proceed. Yes is the default selection, and is recommended.

After doing so you'll be able to see everything that Illuminated Cloud retrieved in the left-side Project View under the src directory.

Illuminated Cloud also includes the retrieved package.xml file that can be used for a Package.xml metadata subscription in the IDE and/or with external tools like the Force Migration Tool and Salesforce CLI.

package_xml.png

If the offline symbol table generation step ran in the background, you'll be notified when that step completes.

ost_gen_notification.png

You can expand Illuminated Cloud > <org connection alias> > OfflineSymbolTable.zip to view the contents of the generated offline symbol table. For more information, see Generating an Offline Symbol Table.

offline_symbol_table_sfdx.png

Illuminated Cloud now knows about all system identifiers, classes, methods, and fields — essential for taking advantage of features such as intelligent code completion, offline system API documentation, etc. You can now begin working with your project metadata.

[Home]

Updated