5.3. Che プラグインレジストリーへの VS Code 拡張機能の追加

CodeReady Workspaces ワークスペースで VS Code 拡張機能を使用するには、CodeReady Workspaces が拡張機能を記述するメタデータを使用する必要があります。CodeReady Workspaces プラグインレジストリーは、一般的な VS Code 拡張機能についてのメタデータを公開する静的 Web サイトです。CodeReady Workspaces プラグインレジストリーの VS Code 拡張機能メタデータは、che-theia-plugins.yaml という名前の中央ファイルから生成されます。

CodeReady Workspaces プラグインレジストリーの拡張を追加または変更するには、che-theia-plugins.yaml ファイルを編集して、関連するメタデータを追加します。

注記

ここでは、カスタムプラグイン定義を使用してプラグインレジストリーを構築するのに必要な手順を説明します。devfile で直接参照できるカスタム meta.yaml ファイルを作成する場合は、「VS Code 拡張のメタデータの公開」 を参照してください。

前提条件

手順

  1. che-theia-plugins.yaml ファイルを編集し、新規エントリーを作成します。

    - id: publisher/my-vscode-ext                                    1
      repository:                                                    2
        url: https://github.com/publisher/my-vscode-ext              3
        revision: 1.7.2                                              4
      aliases:                                                       5
        - publisher/my-vscode-ext-revised
      preferences:                                                   6
        asciidoc.use_asciidoctorpdf: true
        shellcheck.executablePath: /bin/shellcheck
        solargraph.bundlerPath: /usr/local/bin/bundle
        solargraph.commandPath: /usr/local/bundle/bin/solargraph
      sidecar:                                                       7
        image: quay.io/repository/eclipse/che-plugin-sidecar:sonarlint-2fcf341  8
        name: my-vscode-ext-sidecar                                  9
        memoryLimit: "1500Mi"                                        10
        memoryRequest: "1000Mi"                                      11
        cpuLimit: "500m"                                             12
        cpuRequest: "125m"                                           13
        command:                                                     14
            - /bin/sh
        args:                                                        15
            - "-c"
            - "./entrypoint.sh"
        volumeMounts:                                                16
          - name: vscode-ext-volume                                  17
            path: "/home/theia/my-vscode-ext"                        18
        endpoints:                                                   19
          - name: "configuration-endpoint"                           20
            public: true                                             21
            targetPort: 61436                                        22
            attributes:                                              23
              protocol: http
      extension: https://github.com/redhat-developer/vscode-yaml/releases/download/0.4.0/redhat.vscode-yaml-0.4.0.vsix    24
      skipDependencies:                                              25
        - id-of/extension1
        - id-of/extension2
      extraDependencies:                                             26
        - id-of/extension1
        - id-of/extension2
      metaYaml:
        skipIndex: <true|false>                                      27
        skipDependencies:                                            28
          - id-of/extension1
          - id-of/extension2
        extraDependencies:                                           29
          - id-of/extension1
          - id-of/extension2
1
(任意) プラグインの ID。プラグインで、1 つのリポジトリーに対して複数のエントリーがある場合に役に立ちます。たとえば、Java 8 および Java 11 などです。
2
プラグインのリポジトリー情報。ID が指定されている場合、このフィールドはリスト要素ではありません。
3
拡張の Git リポジトリーへの URL。
4
バージョン、スナップショット、またはリリースに対応する、拡張機能をホストするアップストリームリポジトリのタグまたはSHA1 ID。
5
(任意) このプラグインのエイリアス。ここで一覧表示されるすべてのものについて、meta.yaml ファイルが生成されます。
6
(任意) フリーフォーム形式のプラグイン設定。
7
(任意) プラグインがサイドカーコンテナーで実行される場合は、ここにサイドカーコンテナー情報が指定されます。
8
プラグインサイドカーとして使用されるコンテナイメージの場所。この行は directory と同時に指定することはできません。上記を参照してください。
9
(任意) サイドカーコンテナーの名前。
10
(任意) サイドカーコンテナーのメモリー制限。
11
(任意) サイドカーコンテナーのメモリー要求。
12
(任意) サイドカーコンテナーの CPU 制限。
13
(任意) サイドカーコンテナーの CPU 要求。
14
(任意) コンテナー内の root プロセスコマンドの定義。
15
(任意) コンテナー内の root プロセスコマンドの引数。
16
(任意) サイドカーコンテナーのボリュームマウント情報。
17
マウントの名前。
18
マウントへのパス。
19
(任意) サイドカーコンテナーのエンドポイント情報。
20
エンドポイント名。
21
エンドポイントが公開されているかどうかを判断するブール値。
22
ポート番号。
23
エンドポイントに関連する属性。
24
プラグインに含まれる vsix ファイルへの直接リンクまたはリンク。メイン拡張機能など、指定されたリポジトリーで構築された vsix は最初にリストする必要があります。
25
# TODO #
26
(任意) package.json の extensionDependencies フィールドに一覧表示されているものに加えて、依存関係を追加します。
27
(任意) true の場合は、このプラグインを index.json に含めないでください。スタンドアロンプラグインとして公開しない依存関係の場合に便利です。
28
(任意) package.json の extensionDependencies フィールドから指定された依存関係を確認しません(meta.yaml 生成のみ)。
29
(任意) package.json の extensionDependencies フィールドに一覧表示されているものに加えて、依存関係を追加します(meta.yaml 生成のみ)。
  1. 選択したオプションで、build.sh スクリプトを実行します。ビルドプロセスは、che-theia-plugins.yaml ファイルのエントリーに基づいて meta.yaml ファイルを自動的に生成します。
  2. CodeReady Workspaces で作成されるプラグインレジストリーイメージを使用するか、meta.yaml ファイルをレジストリーコンテナーからコピーして、これを HTTP リソースとして直接参照します。