拡張ポイントを提供する既存のEclipseプラグインがあります。このプラグインは標準のEclipseメカニズムを使用して拡張機能を検索します。このプラグインのコードでは、次のコードを使用して拡張機能を取得します。既存のEclipseプラグイン拡張を上書きする
IConfigurationElement[] config = Platform.getExtensionRegistry()
.getConfigurationElementsFor(extensionPoint);
if (config.length > 0) {
return config[0];
}
コードでわかるように、最初に見つかった拡張子のみが使用されています。このプラグインはすでに拡張機能を提供していますが、この拡張機能はデフォルトの場合に使用されます。
デフォルトの拡張機能の動作を変更する必要があるため、新しいプラグインを作成して同じ拡張ポイントを拡張します。しかし、デフォルトの拡張子は常にIConfigurationElement
配列の最初の拡張子であることが分かります。したがって、常にそれが選択されます。
見つけたIConfigurationElement
アレイに自分のプラグインを最初に表示させるにはどうしたら、デフォルトのプラグインの代わりに自分のプラグインが使用されますか?
既存のプラグインは他人によって書かれており、絶対に必要になるまで変更する必要はありません。
ExtensionRegistryは、非決定的な方法で拡張を返します。つまり、別のコンピュータに異なる順序でプラグインをインストールすると、最初に上書きが返されますが、保証はありません。彼らが望む拡張機能をソート/優先順位付け/選択するのは、拡張ポイントの消費者の仕事です。 –