Hands-on: Getting Started with Che Plugins

Overview

Tyler Jewell
Eclipse Che Blog
2 min readAug 3, 2016

--

This piece describes how to extend Eclipse Che with custom plugins, e.g. to provide support for new languages. It covers various aspects from adding new file types, extending the code editor, adding IntelliSense features, defining a specific project-type, and accessing the workspace.

In general, Che can be extended in its three different components: the IDE running in the browser, the Che server, and the workspace (see diagram below).

  • The IDE running in the browser can be extended by new local features, such as simple actions, new editors, and views, or immediate syntax highlighting. Some of these extensions can run completely local, some will use the Che server API.
  • The Che server can be extended by new plugins. Those extensions will also affect the IDE, e.g. defining a new project type in a plugin, which is done on the server, will create a menu entry in the “New” dialog of the IDE. Server plugins might provide new APIs to be consumed by IDE plugins, e.g. to provide new IntelliSense features. Finally, server plugins can also access the current workspace, e.g. to access files, projects or even the current target machine. Again, there is existing API provided by the workspace agent to be used.
  • The workspace can be extended to provide new API to be consumed by the Che server.
4Gz5jf3HQJy2vqFysmih_image05-1

Our documentation covers building custom assemblies with your own plugins installed. We do not organize the documentation by component, but instead by types of customizations. You will often add a new capability to Che that requires server and client side extensions, so a single custom assembly may have multiple plugins that collectively are required for the distributed system to properly operate.

Technically, client and server extensions are different components, however, they can be organized as a single plugin with several sub-components.

We provide a custom assembly generator. We find that it’s easier for you to get started building custom assemblies by starting with functional ones and then adding new customizations or further excluding core modules available within Che.

We have a number of different archetypes, which are flavors of custom assemblies that you can generate. Each archetype generates a custom assembly that highlights one aspect of configuring Che, whether it is branding, IDE extensions, agents, and so on.

To get started with building a custom Che assembly follow the instructions in our docs.

Enjoy!

--

--

Tyler Jewell
Eclipse Che Blog

MD @ Dell Tech Capital. BOD @ NS1, Orion Labs. Prev: CEO @ WSO2, CEO @ Codenvy (acq. by RHT). Invest @ Sauce Labs, Cloudant, ZeroTurnaround, InfoQ, Sourcegraph.