All About Salesforce Extensions for VS Code
There has been a ton of exciting news around developer tooling for Salesforce developers over the last few releases. Last year, we released the beta and GA of Salesforce DX tools which include the CLI, Salesforce Extensions for Visual Studio (VS) Code, scratch orgs, and more. This year, we’ve been heads-down on developer tooling with weekly releases of the Visual Studio Code extensions and the CLI, with even more to come.
With this blog post, we’re sharing the direction of Salesforce developer tooling and want to give you whatever information we can to help you plan effectively for your future app development. (Remember to make your purchasing decisions based on what is generally available though #forwardlookingstatement!)
At a high level, our goal is to make developers happy and productive. We view this as having two distinct components.
The first is to build the best possible tooling using modern patterns and industry best practices. This is where our CLI and VS Code extensions fit in. The future of Salesforce development on the desktop is the Salesforce extensions for Visual Studio Code.
The second is to foster a rich community of partners who build even more tools to make developers happy. With this in mind, we are embracing open source and standard protocols. We aim for third-party developers to be able to build any developer experience they like without limitation. This means that they will have access to source code, that they can use the same APIs we use, and that they can work closely with the developer tools team at Salesforce to solve problems. The developer community is best served by a diverse and rich set of tooling beyond what we will ship ourselves.
The future of Salesforce developer tools
If you haven’t tried Salesforce Extensions for VS Code, I highly recommend you do so. Visual Studio Code is a powerful editor with some very enjoyable features. It is highly customizable and is cross-platform. The Salesforce extensions provide features such as code completion, syntax highlighting, Apex live debugging, and more for the Lightning Platform.
As I mentioned, the Salesforce Extensions for VS Code are the future of Salesforce development. We are dedicating our resources to make this the best and most enjoyable desktop editor for Salesforce developers. With this focus on Visual Studio Code, we are moving away from our support of Eclipse. While the Force.com IDE will be supported and will receive some updates in the near future, the updates will focus mainly on compatibility (and of course, security if needed). We will not be adding any new major features to the Force.com IDE and we will eventually deprecate it entirely.
Don’t worry: we know that not all the functionality from Force.com IDE is available in Salesforce Extensions for VS Code or the Salesforce CLI. We’re working on that. Rest assured that we don’t have immediate plans to deprecate Force.com IDE, and that we’ll give you plenty of advance notice when we officially move toward deprecation. In the meantime, feel free to start trying out VS Code (Though you might not want to put too much work into any Eclipse enhancements that you have on your list).
Openness and community
While we focus on transitioning to Visual Studio Code, we also recognize that not everyone will want to use this tool. With this in mind, we are working to support the rich community of existing third-party tools and encouraging even more tools to be built in the future. One of the ways we are doing this is by open sourcing much of the tooling we have built and are currently building. For example, the Salesforce Extensions for VS Code are and will remain open source. The second approach we are taking here is to invest in industry protocols for IDEs, the first of which is called the Language Server Protocol.
The Language Server Protocol was created by Microsoft for Visual Studio Code. It has subsequently been adopted by other tools (Eclipse, Sublime Text, and Atom) and language developers (Red Hat, Puppetlabs, and Facebook). The Language Server Protocol (LSP) creates a standard interface for developer tools to communicate with the mechanisms that provide the language “smarts” such as code completion, syntax highlighting, go to definition, and even documentation. This means that all of these features can be implemented once and used in many different tools, IDEs, or services. So far we have shipped implementations of the LSP for Apex, Lightning Components, and Visualforce. These LSPs are available for partners to use in order to create new and unique tools.
In addition to the LSP, there are additional areas where we are working to be generic and reusable. Our Apex Debugger is one such example. While the debugger protocol isn’t a standard, it’s open source and can be easily adapted to other uses. Additionally, we will be publishing the node modules that power the CLI to NPM so developers can implement similar features in their tools without writing duplicate code. Not all of this is open source at this time, but we are working to get as much out there as possible.
Force.com IDE 2 deprecated
Finally, we have officially discontinued development and support of Force.com IDE 2, which was released as a Beta last year. After evaluating feedback from customers and shipping Salesforce Extensions for VS Code, it was clear that Visual Studio Code was the preferred path forward. We decided that it wasn’t feasible, nor did it make sense for us, to build two editors at the same time. Building a single editor experience allows us to focus on quality and build the best possible experience for our customers.
You can continue to download Force.com IDE 2 Beta until May 3, 2018. If you require a copy, you must download it before then. Additionally, the documentation for the Force.com IDE 2 Beta will be removed on April 23, 2018.
We want to thank everyone who tried out the Force.com IDE 2 Beta and who provided us with valuable feedback. We hope you will enjoy using Visual Studio Code.
I hope this gives you some insights and guidance into our strategy for developer tools going forward. If you have any feedback or questions, please let us know.
For continued learning, check out the App Development With Salesforce DX Trailhead module.