6.4. 应用编辑器配置
您可以通过在 ConfigMap 中添加配置来配置 Visual Studio Code - 开源编辑器。这些配置应用于您打开的任何工作区。启动工作区后,编辑器会检查此 ConfigMap 并将配置存储到对应的配置文件中。
目前支持以下部分:
- settings.json
- extensions.json
- product.json
- configurations.json
settings.json 部分包含各种设置,您可以在其中自定义代码 - OSS 编辑器的不同部分。
extensions.json 部分包含启动工作区时安装的推荐扩展。
product.json 部分包含您需要添加到编辑器的 product.json 文件中的属性。如果属性已存在,则其值将更新。
configuration.json 部分包含 Code - OSS 编辑器配置的属性。例如,您可以使用 extensions.install-from-vsix-enabled
属性来禁用 来自 VSIX 命令的 Install
。
流程
在用户的项目中添加一个新的 ConfigMap,定义支持的部分,并指定您要添加的属性。
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 }
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 }
Copy to Clipboard Copied! - 启动或重启工作区
确保 Configmap 包含有效 JSON 格式的数据。
考虑将 ConfigMap 添加到 openshift-devspaces 命名空间中。通过将其添加到命名空间中,您可以在所有用户命名空间中复制 ConfigMap,同时防止用户命名空间中的修改。请参阅 第 4.2.3 节 “配置用户命名空间”。
验证
使用以下方法之一验证 ConfigMap 中定义的设置是否已应用:
-
使用
F1
检查是否应用了定义的设置。Preferences: Open Remote Settings -
使用
F1
命令,确保File: Open File: Open File: Open File… /checode/remote/data/Machine/settings.json
文件中存在 ConfigMap 中的设置。
-
使用
验证是否应用了 ConfigMap 中定义的扩展:
-
进入
Extensions
视图(F1
),检查是否已安装了扩展View: Show Extensions -
使用
F1
命令,确保File: Open File: Open File: Open File… .code-workspace
文件中存在 ConfigMap 中的扩展。默认情况下,工作区文件放置在/projects/.code-workspace
中。
-
进入
验证 ConfigMap 中定义的产品属性是否已添加到 Visual Studio Code product.json 中:
-
打开一个终端,运行命令
cat /checode/entrypoint-logs.txt | grep -a "Node.js dir"
,并复制 Visual Studio Code 路径。 -
按
Ctrl + O
,粘贴复制的路径并打开 product.json 文件。 - 确保 product.json 文件包含 ConfigMap 中定义的所有属性。
-
打开一个终端,运行命令
验证 ConfigMap 中定义的
extensions.install-from-vsix-enabled
属性是否已应用到代码 - OSS 编辑器:-
打开 Command appears (use
F1
),以检查命令列表中是否不存在Install from VSIX
命令。 -
使用
F1
打开Open View Extensions Extensions
面板,然后点…
on the view (Views and More Actions
tooltip),检查操作列表中是否缺少Install from VSIX
操作。 -
进入 Explorer,找到带有
vsix
扩展名的文件(redhat.vscode-yaml-1.17.0.vsix),打开该文件的菜单。在菜单中应不存在 VSIX
操作中的安装。
-
打开 Command appears (use