The user of Che can use a workspace devfile to use any plug-in, also known as Visual Studio Code (VS Code) extension. This plug-in can be added to the plug-in registry, then easily reused by anyone in the same organization with access to that workspaces installation.
Some plug-ins need a runtime dedicated container for code compilation. This fact makes those plug-ins a combination of a runtime sidecar container and a VS Code extension.
The following section describes the portability of a plug-in configuration and associating an extension with a runtime container that the plug-in needs.
Writing a meta.yaml file and adding it to a plug-in registry
The plug-in meta information is required to publish a VS Code extension in an Eclipse Che plug-in registry. This meta information is provided as a meta.yaml file. This section describes how to create a meta.yaml file for an extension.
-
Create a
meta.yamlfile in the following plug-in registry directory:<apiVersion>/plugins/<publisher>/<plug-inName>/<plug-inVersion>/. -
Edit the
meta.yamlfile and provide the necessary information. The configuration file must adhere to the following structure:apiVersion: v2 (1) publisher: myorg (2) name: my-vscode-ext (3) version: 1.7.2 (4) type: value (5) displayName: (6) title: (7) description: (8) icon: https://www.eclipse.org/che/images/logo-eclipseche.svg (9) repository: (10) category: (11) spec: containers: (12) - image: (13) memoryLimit: (14) memoryRequest: (15) cpuLimit: (16) cpuRequest: (17) extensions: (18) - https://github.com/redhat-developer/vscode-yaml/releases/download/0.4.0/redhat.vscode-yaml-0.4.0.vsix - vscode:extension/SonarSource.sonarlint-vscode1 Version of the file structure. 2 Name of the plug-in publisher. Must be the same as the publisher in the path. 3 Name of the plug-in. Must be the same as in path. 4 Version of the plug-in. Must be the same as in path. 5 Type of the plug-in. Possible values: Che Plugin,Che Editor,Theia plugin,VS Code extension.6 A short name of the plug-in. 7 Title of the plug-in. 8 A brief explanation of the plug-in and what it does. 9 The link to the plug-in logo. 10 Optional. The link to the source-code repository of the plug-in. 11 Defines the category that this plug-in belongs to. Should be one of the following: Editor,Debugger,Formatter,Language,Linter,Snippet,Theme, orOther.12 If this section is omitted, the VS Code extension is added into the Che-Theia IDE container. 13 The Docker image from which the sidecar container will be started. Example: eclipse/che-theia-endpoint-runtime:next.14 The maximum RAM which is available for the sidecar container. Example: "512Mi". This value might be overridden by the user in the component configuration. 15 The RAM which is given for the sidecar container by default. Example: "256Mi". This value might be overridden by the user in the component configuration. 16 The maximum CPU amount in cores or millicores (suffixed with "m") which is available for the sidecar container. Examples: "500m", "2". This value might be overridden by the user in the component configuration. 17 The CPU amount in cores or millicores (suffixed with "m") which is given for the sidecar container by default. Example: "125m". This value might be overridden by the user in the component configuration. 18 A list of VS Code extensions that should be run in this sidecar container.
To set up a custom plug-in registry, see: Building a custom plug-in registry.