Develop, test, and deploy applications on the platform

The IDE is a powerful client application for creating, modifying and deploying applications. Based on the Eclipse platform and built on the Tooling API, the IDE provides a comfortable environment for programmers familiar with integrated development environments, letting you code, compile, test, package, and deploy all from within the IDE. Much of the actual work, such as compilation, happens on the platform—the IDE performs the communication and result parsing transparently.

The IDE is open-source. You can download the source code on GitHub. We look forward to seeing how the IDE develops as the community tinkers with it!

Check out the IDE installation instructions to get started now, or read An Introduction to the IDE.

Forcedotcom ide sample.png

Major Features

Apex Code  The IDE is the only tool you need to write and manage Apex classes and triggers. The IDE locates syntax errors, and its Apex Test Runner executes unit tests and integrates error messages, debug output, and code coverage reports. Learn more about Apex.

Visualforce  Create and edit Visualforce pages, components, static resources, and controllers. Learn more about Visualforce.

Application Components  Download and edit all metadata components available in the Metadata API. Create Eclipse projects containing definitions of your schema, tabs, applications, and more! Edit these components directly in the IDE and changes are saved back to your organization automatically. Learn more about Metadata.

Development Lifecycle  Develop and test your project against a Sandbox or Developer Edition organization, then deploy the finished application into your production organization with the Deploy to Server wizard. Learn more about Enterprise Development.

Online Project Mode  Keep your local metadata files up to date with your Salesforce organization and easily detect and resolve conflicting changes.

Schema Explorer  View your Salesforce organization's schema and construct and execute SOQL queries from within the IDE. Similar to the Apex Explorer, the Schema Explorer shows information about all standard and custom objects and fields.

Code Share  Apply application lifecycle management best practices through integration with any Eclipse-enabled version control system. Teams can now collaborate on the development, testing and deployment of their PaaS applications.

What's New in Spring ’16

"Warning" Warning: If you upgrade the IDE before your org is upgraded to Spring ’16, the IDE can't fetch your organization details. See Salesforce Spring '16 is Coming Soon! Key Dates to Mark on Your Calendars for the Spring ’16 upgrade schedule. If you've already upgraded the plug-in and need to revert to a previous version, check out Error logging into Salesforce org with custom URL from IDE in the Salesforce Developers Discussion Forums.

Spring ’16 ( IDE v36.0) contains the following updates.

January 22, 2016

Execute Apex Test Suites

You can now execute Apex test suites in the IDE. A test suite is a collection of Apex test classes that you run together. For example, create a suite of tests that you run every time you prepare for a deployment or Salesforce releases a new version.

To execute test suites, select Run | Run Configurations | Apex Test | New launch configuration ("New launch configuration icon"). Select the Test tab. To create a run of test suites, select Use suites, and then select one or more test suites. To execute the selected test run configuration, click Run.

"Run Configurations window: Test tab"

To create or customize a test suite, use the Developer Console or the API. See Salesforce Help: Manage Sets of Apex Test Classes with Test Suites or Object Reference for Salesforce and TestSuiteMembership.

Enjoy Optimized Test Execution

Synchronous Apex test runs can include only one class. Because synchronous test runs are faster than asynchronous runs, all IDE test runs that include methods from only one Apex class are now executed synchronously. Test runs that include multiple classes are executed asynchronously as they always have been. Your test run configurations no longer include an option to configure synchronous or asynchronous execution.

See Apex Test Results More Quickly

Test results now load in the Apex Test Results view as your test methods finish executing. Previously, test results displayed only after all tests in the run had executed. If your test run’s results aren’t looking promising, you can stop your test run using the Progress view’s terminate icon.

"Progress view: Terminate icon"

If you expand test results in the Apex Test Results view before your test run finishes, the results collapse again when more methods finish executing.

January 8, 2016

Enabled code-coverage highlighting in Apex classes

To update your code coverage, execute Apex tests by selecting Run | Run Configurations | Apex Test. You can then view code coverage for your classes in the Apex Test Results pane.

To view code coverage highlighting, double-click a class name in the Apex Test Results pane’s Code Coverage list. Lines that aren’t covered by your unit tests are highlighted. Unlike the Developer Console, which color-codes both covered and uncovered lines, the IDE highlights only the lines of code that still need coverage.

"Code coverage highlighting for a class with 75% coverage"

To change the color for your uncovered code or to replace the highlighting with squiggly underlining, select Window | Preferences. Enter Annotations in the filter text box, then select Annotations | Apex Code Coverage. Make your desired changes, and then click Apply.

"Annotations preferences for Apex code coverage"

Provided whitelist filtering for user and request-type debugging in the Apex Debugger

You can now filter which requests are debugged by setting up whitelisting. Previously, all events in your org triggered debugging during a debugging session. Now you can focus only on the events that are relevant to the problem you’re debugging.

To access your debug configurations, select the arrow next to the debug icon ("Debug icon"), and then select Debug Configurations.

"Choose Debug Configurations from the debug icon's menu"

To set up whitelisting, select Whitelisting Enabled in your Remote Apex Debugger configuration, and then filter by user ID or request type. To filter by user ID, enter a SOQL condition expression in the SELECT id FROM User WHERE field. Or enter a comma-separated list of user IDs in the text field in the User IDs section. To filter by request type, select one or more entry points, or enter a regular expression in the Entry Point Filter field. For example, to whitelist requests made by the Visualforce page myPage, enter .*/apex/myPage.apexp.

"Remote Apex Debugger run configuration with whitelisting enabled"

Typically, modifying an Eclipse debug configuration during a debugging session doesn’t affect active debug targets. However, whitelist modifications affect both current and future sessions.

Share Apex Debugger licenses among your sandbox orgs

You can now purchase Apex Debugger licenses for your parent org and share them among the users in your org’s sandboxes. In your parent org, view active sessions and revoke licenses on the Apex Debugger page in Setup. Revoking a license doesn’t prevent your user from initiating future debugging sessions.

"Manage sessions on the Apex Debugger page in Setup"

Enabled Eclipse’s Java development tools (JDT) icons for Apex variables in the Apex Debugger

JDT icons now display in the Apex Debugger’s Variables pane to denote access and definition modifiers for Apex variables. You can determine at a glance whether a variable is static, local, global, and so on. Previously, JDT icons displayed in the Outline pane, but all variables in the Variables pane had the same icon.

"Debugger variables pane with icons"

For a list of JDT icons, see JDT Icons in Eclipse’s Java development user guide.


Start developing applications today with the IDE. Sign up for a free Developer Edition account, then follow the IDE installation instructions.


Icon technote sm.gif
An Introduction to the IDE

Icon technote sm.gif IDE installation instructions

Icon technote sm.gif
Release Notes

Icon technote sm.gif
Frequently Asked Questions (FAQ)

Icon technote sm.gif
An Introduction to Metadata and Development as a Service

Icon technote sm.gif
Deploy Applications to Production Faster

Icon technote sm.gif
Community Discussion Board

Icon technote sm.gif
GitHub Repository