2015-10-20 62 views
0

我有一個呈現編輯器來編輯特定文件的插件。我想創建一個具有更多功能的插件。繼承Eclipse插件

是否有可能使用\繼承現有插件並覆蓋少數行爲來創建自己的插件?

我很熟悉從零開始創建一個新的插件。但無法弄清楚如何做到這一點?

+0

也許你可以描述你已經嘗試過,但無法弄清楚? – Erik

回答

1

即使您是插件的創建者(至少在術語繼承的標準含義中),也不能從插件繼承。

  1. 您可以將所有功能添加到現有插件。
  2. 或者公開第一個插件的擴展並在第二個插件中使用它們。爲此,您需要修改第一個插件。您需要爲此創建擴展點。

在任何情況下,您都不能繼承其他插件,如PDT,JDT等......如果您仔細想想,這就是插件體系結構背後的全部想法。您可以通過擴展擴展點來代替繼承,使兩個插件協調工作以滿足用戶的需求。

+0

我不是第一個插件的擁有者,所以不能暴露任何Extn。 :-( –

+0

)如果是這樣的話,您需要與該插件的所有者交談,並將您的特性直接添加到該插件,或獲得權限並創建擴展點(因爲大多數時候,插件都是開源的) 。我已經完成了一次 – Henry

+0

如何爲插件添加功能?任何想法? –

0

通常,不存在允許從插件完全繼承的「繼承」機制。

特別是,在plugin.xml中聲明的大多數擴展不支持類似於「繼承」的任何機制。

但是,在某些簡單情況下,您可能能夠從子plugin.xml中的父plugin.xml中複製聲明,並將它們調整爲指向從父插件中的原始類繼承的類。 但是這種技術有很多限制:

  • 這隻適用於某些擴展點。
  • 原始插件可能不會公開所有需要被分類的類。
  • 這可能會導致子類化或最壞的複製原始插件中的許多類。
  • 這需要很好地理解每個重用類以及它們與原始插件的關係,以防止出現意外行爲。 (如果父插件實際上與其他插件一起工作,這一點非常重要。)

    爲了獲得更好的結果,父插件需要設計爲重用,通常提供可重用類,或者甚至更好地提供專用擴展點。