メインコンテンツまでスキップ

エクステンション定義

概要

エクステンション定義では、エクステンション全体に関わる情報を定義します。

エクステンション定義の要素

キー値の説明必須か
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": {
// ...
}
}
.NET DLLの場合
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" : {
// ...
}
}

Footnotes

  1. 現バージョンではエクステンションの動作に影響せず表示もされません。 2 3 4 5 6 7 8 9