我開發拖Eclipse插件編輯器,我有一個問題:Eclipse插件 - 相關聯的文件擴展名和透視
我有兩個角度出發,管理相同的文件。我想在文件擴展名 - 編輯器 - 視角之間建立關聯。
我的意思是,如果我打開文件的擴展名.XXX透視1,它使用的編輯器,但如果我打開角度2相同的文件擴展名.XXX,它使用的編輯器B.
是有可能?從現在起,我使用了發射器,但現在我需要更多的差異化。
謝謝。
我開發拖Eclipse插件編輯器,我有一個問題:Eclipse插件 - 相關聯的文件擴展名和透視
我有兩個角度出發,管理相同的文件。我想在文件擴展名 - 編輯器 - 視角之間建立關聯。
我的意思是,如果我打開文件的擴展名.XXX透視1,它使用的編輯器,但如果我打開角度2相同的文件擴展名.XXX,它使用的編輯器B.
是有可能?從現在起,我使用了發射器,但現在我需要更多的差異化。
謝謝。
我建議重新考慮你的方法,並從WindowBuilder中獲取一些提示:讓一個編輯器與打開選項卡式編輯器的文件類型相關聯;如果添加了第二個插件,讓它在同一個編輯器上創建一個單獨的選項卡。
非常感謝您的回答。 – Rafael
(對不起,這是那些「不這樣做!」無答案之一。:))
正如在評論中提到的,我建議你反對根據當前打開不同的編輯器透視。我認爲這違背了用戶的期望,並且有一些不直觀的後果,例如當我創造我自己的觀點。
例如,我建議去Eclipse的XML /插件清單編輯器的路徑。底部的選項卡允許用戶在不同視圖之間進行選擇,而不依賴於任何透視選項或配置。
雖然我同意,這似乎有點陌生,有默認的編輯器是基於開放的角度看同一個文件的不同,這裏是你如何能做到這一點。
更新#1添加了一些例子
有一些onlinetutorials這一點。但是這裏有一些示例代碼,可以更容易地看出需要做什麼工作。這裏是你如何聲明你的內容類型(你需要其中兩個)
<plugin>
<extension
point="org.eclipse.core.contenttype.contentTypes">
<content-type
base-type="org.eclipse.core.runtime.xml"
describer="com.liferay.ide.core.FirstContentTypeDescriber"
id="com.liferay.ide.core.contentType1"
name="First Content Type"
priority="normal">
</content-type>
</extension>
</plugin>
然後在Describer類中,你會做你的匹配邏輯。然後在編輯器擴展點您引用的內容類型,而不是一個文件名和擴展名的是這樣的:
<extension
point="org.eclipse.ui.editors">
<editor
class="com.liferay.ide.ui.FirstEditor"
default="false"
id="com.liferay.ide.ui.editor1"
name="My First Editor">
<contentTypeBinding
contentTypeId="com.liferay.ide.core.firstContentType">
</contentTypeBinding>
</editor>
</extension>
您可以請鏈接一些相關的文檔。例如,什麼是「內容類型描述」應該是什麼樣的,什麼是內容類型?我只知道
我添加了幾個鏈接,對於ContentTypeDescriber,擴展點doc爲您提供了需要實現的類,ITextContentDescriber是您想要的類執行。但是,除非文件具有特定的簽名(如XML文檔類型等),否則您可能很難確定您的文件是否是正確的內容。 – gamerson
文件是JavaScript .js文件。問題在於它們可能在Web或服務器端(如Node.js,MongoDB)上下文中。 –
其他選項可以被編程改變
Eclipse RCP: programmatically associate file type with Editor?
顯示使用Java代碼的文件類型關聯然後,如何在透視變化事件上執行該代碼只有一個問題。
您確定這符合用戶界面的視角準則嗎?我不確定這是用戶期望的,我從來沒有看到過一個不同的編輯器是從同一個動作打開的,只是基於當前的觀點。另外,我自己創造了很多觀點。我將如何選擇在每個編輯器中使用哪個編輯器? –
我有2個插件(每個插件一個透視圖)。一個是用gef編輯器進行dessign,另一個是使用dessign進行開發。某些用戶可能同時安裝了兩個插件,他們需要使用兩個編輯器打開相同的文件(取決於他們是處於分配角度還是以開發人員視角) – Rafael
這對於JavaScript編輯器來說是有意義的,這對瀏覽器和服務器端可能不同。投票支持提問。目前沒有真正回答。 –