Applying editor configurations
You can configure Visual Studio Code - Open Source editor by adding configurations to a ConfigMap. These configurations are applied to any workspace you open. Once a workspace is started, the editor checks for this ConfigMap and stores configurations to the corresponding config files.
The following sections are currently supported:
-
settings.json
-
extensions.json
-
product.json
-
configurations.json
The settings.json section contains various settings with which you can customize different parts of the Code - OSS editor.
The extensions.json section contains recommended extensions that are installed when a workspace is started.
The product.json section contains properties that you need to add to the editor’s product.json file. If the property already exists, its value will be updated.
The configurations.json section contains properties for Code - OSS editor configuration. For example, you can use the extensions.install-from-vsix-enabled
property to disable Install from VSIX
command.
-
Add a new ConfigMap to the user’s namespace, define the supported sections, and specify the properties you want to add.
apiVersion: v1 kind: ConfigMap metadata: name: vscode-editor-configurations labels: app.kubernetes.io/part-of: che.eclipse.org data: extensions.json: | { "recommendations": [ "dbaeumer.vscode-eslint", "github.vscode-pull-request-github" ] } settings.json: | { "window.header": "A HEADER MESSAGE", "window.commandCenter": false, "workbench.colorCustomizations": { "titleBar.activeBackground": "#CCA700", "titleBar.activeForeground": "#ffffff" } } product.json: | { "extensionEnabledApiProposals": { "ms-python.python": [ "contribEditorContentMenu", "quickPickSortByLabel", ] }, "trustedExtensionAuthAccess": [ "<publisher1>.<extension1>", "<publisher2>.<extension2>" ] } configurations.json: | { "extensions.install-from-vsix-enabled": false }
-
Start or restart your workspace
Make sure that the Configmap contains data in a valid JSON format. |
Consider adding the ConfigMap to the eclipse-che namespace. By adding it to the namespace, you replicate the ConfigMap across all user namespaces while preventing modifications within user’s namespaces. See Configuring a user namespace. |
-
Verify that settings defined in the ConfigMap are applied using one of the following methods:
-
Use
F1 → Preferences: Open Remote Settings
to check if the defined settings are applied. -
Ensure that the settings from the ConfigMap are present in the
/checode/remote/data/Machine/settings.json
file by using theF1 → File: Open File…
command to inspect the file’s content.
-
-
Verify that extensions defined in the ConfigMap are applied:
-
Go to the
Extensions
view (F1 → View: Show Extensions
) and check that the extensions are installed -
Ensure that the extensions from the ConfigMap are present in the
.code-workspace
file by using theF1 → File: Open File…
command. By default, the workspace file is placed at/projects/.code-workspace
.
-
-
Verify that product properties defined in the ConfigMap are being added to the Visual Studio Code product.json:
-
Open a terminal, run the command
cat /checode/entrypoint-logs.txt | grep "Node.js dir"
and copy the Visual Studio Code path. -
Press
Ctrl + O
, paste the copied path and open product.json file. -
Ensure that product.json file contains all the properties defined in the ConfigMap.
-
-
Verify that
extensions.install-from-vsix-enabled
property defined in the ConfigMap is applied to the Code - OSS editor:-
Open the Command Palette (use
F1
) to check thatInstall from VSIX
command is not present in the list of commands. -
Use
F1 → Open View → Extensions
to open theExtensions
panel, then click…
on the view (Views and More Actions
tooltip) to check thatInstall from VSIX
action is absent in the list of actions. -
Go to the Explorer, find a file with the
vsix
extension (redhat.vscode-yaml-1.17.0.vsix, for example), open menu for that file.Install from VSIX
action should be absent in the menu.
-