2011-11-01 54 views
1

一旦Eclipse啓動,有沒有辦法激活我的插件?我已經擴展了一個JavaCompletionProposalComputer來計算列表完成按CTRL +空格鍵時顯示的完成。爲了我的工作,我需要聽取工作空間中的任何變化;所以,我實現了一個IResourceChangeListener類。但是,如果用戶決定不使用內容幫助,則聽衆永遠不會啓動。如何在Eclipse加載時激活插件?

爲了解決這個問題,我正要去掉Bundle-ActivationPolicy中的懶惰參數,但是我在某處讀到這是一個壞主意。另一種方法是使用包org.eclipse.ui.startup中的IStartup;但是,用戶可能會禁用系統首選項中的earlyStartup功能。

有沒有其他方法可以解決這個問題?感謝你在期待。

+0

什麼是具有如果用戶不使用內容幫助註冊了偵聽器的目的是什麼?如果您的插件也提供了其他一些功能,請嘗試找到適當的擴展點來觸發您的代碼。 –

+0

@vanaprogeja是的,它似乎毫無意義,但插件確實提供了不是基於GUI的其他功能。所以沒有擴展,我能想到這會從一開始就觸發我的插件。 – fabricemarcelin

回答

2

爲了解決這個問題,我正要去掉Bundle-ActivationPolicy中的懶惰參數,但是我在某處讀到這是一個壞主意。

刪除Bundle-ActivationPolicy: lazy意味着您的插件將不會自動激活。

另一種方法是從包org.eclipse.ui.startup使用IStartup;但是,用戶可能會禁用系統首選項中的earlyStartup功能。

這是執行此操作的唯一正確方法。如果用戶禁用早期啓動,那是他的特權。所以在這種情況下,你仍然應該提供一些方法來激活你的插件。

+0

我會把它留給用戶,但在我的工作環境中,這不是一個好主意。另外,如果我使用earlyStartup註冊偵聽器,我不知道如何取消註冊偵聽器。 – fabricemarcelin

+0

如果您找到一種方法讓您的插件在啓動時啓動而不讓用戶禁用它,則應該將其作爲錯誤報告給Eclipse。 –

2

我只想指出,在Eclipse啓動時強制插件始終啓動是一種常見的不良做法。這將使你的插件變得活躍,即使你想使用Eclipse來完成一些完全不相關的事情。

我記得Aptanas認爲他們的Ruby插件非常重要,他們必須將自己整合到整個地方,並在Eclipse啓動時自動連接到大量網頁。這是可怕的,我不得不刪除Eclipse的安裝,以擺脫它...

無論如何,用這說;

退房this questions,它似乎是與您的問題

+0

感謝您的提示。 – fabricemarcelin