After three years of working on VS Code extensions, my team celebrates 3.8-million installations and more than 20-million downloads—two indicators that we are providing valuable VS Code extensions accepted by fellow developers. We also celebrate that our involvement with Language Server Protocols (LSPs) has helped open source communities of varying sizes to enable a wide selection of IDEs (Integrated Development Environments) and editors that in turn have made these communities stronger. So, how did we get here?
Back in the early days of 2016, together with a few fellow Red Hatters who were primarily working on implementing IDEs, my team was looking for new architectures that would give different communities, such as programming languages, runtimes to integrate easily with IDEs without a deep knowledge of the IDE itself. As our experiments continued, the development team at Microsoft open sourced the Visual Studio Code (VS Code) and introduced the Language Server Protocol (LSP).
Our first experiment with LSP and VS Code after their introduction was Eclipse JDT Language Server and the accompanying VS Code extension, Language Support for Java. One of our conclusions from this initial work was that LSP would be a great enabler for different open source communities, which would not otherwise have a first-class presence on different IDEs and editors. We decided to contribute to implementing LSP support for more IDEs, including Eclipse IDE and Eclipse Che. Today, you can use an ever-growing number of language servers with many of your favorite editors.
While developing JDT language server and the VS Code extension, we observed that VS Code provided a developer experience that fit well with developing microservice applications. This triggered our decision to bring some of the LSP implementations that we have been working on to VS Code. The first couple of these were the YAML extension and the Dependency Analytics extension. Although Dependency Analytics is not a programming language itself, it does include a language server to give information on your dependencies inline with the code inside the editor. Later, we also released the XML extension.
As VS Code and our extensions have become more popular, we have gotten requests for integration into various Red Hat runtimes, such as OpenShift or Wildfly. In response, we have released two connector extensions for our runtimes:
- The OpenShift Connector provides integration with the OpenShift platform; it uses odo behind the scenes to provide cloud-native application composition, deployment, and debugging for inner (developer's) loop.
- Server Connector provides middleware integration, such as Wildfly and JBoss EAP. It uses the Runtime Server Protocol (RSP), a protocol that is similar to LSP in nature that aims to help middleware communities to enable more IDEs, to implement functionality across different middleware flavors.
We also get a lot of questions about which extensions to use, so we have curated different extension packs that we believe are useful and of good quality. Try the Visual Studio Code Extensions and let us know what you think.
Last updated: May 1, 2019