エクステンション定義
概要
エクステンション定義では、エクステンション全体に関わる情報を定義します。
エクステンション定義の要素
キー | 値の説明 | 必須か |
---|---|---|
name | すべてのエクステンションで一意となる任意の名前 | 必須 |
displayName | エクステンションの表示名1 | - |
description | エクステンションの説明1 | - |
icon | エクステンションのアイコン1 | - |
version | エクステンションのバージョン1 | - |
publisher | エクステンションの提供元1 | - |
license | エクステンションのライセンス1 | - |
homepage | エクステンションに関するホームページのURL1 | - |
categories | エクステンションが属するカテゴリ名の配列1 | - |
env | エクステンションの動作環境1 | - |
main | 実行プログラムのエントリーポイントとなるファイル名(スクリプトもしくはDLL) | 必須 |
lifecycle | エクステンションのライフサイクル。 application , project のいずれか。 | 必須 |
baseProfile | エクステンションが有効となるプロジェクトのプロファイル名。 複数のプロファイルで有効となる場合は、カンマ区切りでそれらのプロファイル名を列挙します。 プロファイル名を *.パッケージ名 の形式で指定した場合は、プロファイルの 第1階層にそのパッケージ名があるプロファイルで有効となります(一例:*.UML )。値が * の場合はすべてのプロジェクトで有効となります。lifecycleに project を指定した場合にのみ有効となります。 | - |
baseProfiles | エクステンションが有効となるプロジェクトのプロファイル名とバージョン。 ・ [name] :プロファイル名を指定します。(単一指定のみ) ・ [version]:有効とするバージョン範囲を指定する。(省略時は全バージョンを許容) 複数のプロファイルを指定する場合は、コレクションでプロファイル名とバージョンを列挙します。 バージョン範囲の間隔表記については、こちらを参照してください。 lifecycleに project を指定した場合にのみ有効となります。 | - |
extensionPoints | エクステンションの拡張ポイント定義 | - |
runtime | エクステンションの実行環境定義 | - |
※baseProfile と baseProfiles の両方を定義した場合は、それぞれの定義内容の論理和が有効となります。
baseProfile と baseProfiles の定義がない場合は、すべてのプロジェクトで有効となります。
ライフサイクルごとの定義例
アプリケーションライフサイクルの場合
manifest.json
{
"name": "HelloWorld",
"displayName": "Hello World",
"description": "Hello World を画面表示します。",
"main": "entrypoint.cs",
"lifecycle": "application", // アプリケーションライフサイクル
"extensionPoints": {
// ...
}
}
プロジェクトライフサイクルの場合
manifest.json
{
"name": "HelloWorld",
"displayName": "Hello World",
"description": "Hello World を画面表示します。",
"main": "entrypoint.cs",
"lifecycle": "project", // プロジェクトライフサイクル
"baseProfile": "対象プロファイル名", // エクステンションが有効となるプロジェクトのプロファイル名
"baseProfiles":[
{"name": "対象プロファイル名A", // エクステンションが有効となるプロジェクトのプロファイル名
"version": "[1.0,2.0)"}, // 有効とするバージョン範囲
{"name": "対象プロファイル名B", // エクステンションが有効となるプロジェクトのプロファイル名
"version": "[1.0,)"} // 有効とするバージョン範囲
],
"extensionPoints": {
// ...
}
}
実装方法ごとの定義例
C# スクリプトの場合
manifest.json
{
"name": "HelloWorld",
"displayName": "Hello World",
"description": "Hello World を画面表示します。",
"main": "main.cs", // スクリプトファイルを指定
"lifecycle": "project",
"baseProfile": "対象プロファイル名",
"baseProfiles":[
{"name": "対象プロファイル名A",
"version": "[1.0,2.0)"},
{"name": "対象プロファイル名B",
"version": "[1.0,)"}
],
"extensionPoints": {
// ...
}
}
manifest.json
{
"name": "HelloWorld",
"displayName": "Hello World",
"description": "Hello World を画面表示します。",
"main": "helloworld.dll", // DLL ファイルを指定
"lifecycle": "project",
"baseProfile": "対象プロファイル名",
"baseProfiles":[
{"name": "対象プロファイル名A",
"version": "[1.0,2.0)"},
{"name": "対象プロファイル名B",
"version": "[1.0,)"}
],
"extensionPoints": {
// ...
}
}
詳細な定義例
manifest.json
{
"name": "HelloWorld",
"displayName": "Hello World",
"description": "Hello World を画面表示します。",
"icon": "resources/About.png",
"version": "1.1.0",
"publisher": "DENSO CREATE INC",
"license": "Next Design 使用許諾契約書に準ずる。Copyright (C) 2019 DENSO CREATE INC.",
"homepage": "https://www.denso-create.jp",
"categories": [ "共通" ],
"env": {
"nextdesign": "1.1.0"
},
"main": "main.cs", // スクリプトファイルを指定
"lifecycle": "project",
"baseProfile": "対象プロファイル名",
"baseProfiles":[
{"name": "対象プロファイル名A",
"version": "[1.0,2.0)"},
{"name": "対象プロファイル名B",
"version": "[1.0,)"}
],
"extensionPoints": {
// ...
},
"runtime" : {
// ...
}
}