2011-02-10 52 views
5

我正在開發一個eclipse插件,它將某個編輯器與特定的文件擴展名相關聯,如「.abc」。Eclipse插件開發,將不同的編輯器關聯到相同的文件擴展名

問題是我想將.abc文件關聯到該編輯器,僅用於我自己的項目,並且具有我自己的特性。 現在,無論在哪個項目中,它都會使用該編輯器打開.abc文件。

如何才能打開我自己的「.abc」文件編輯器,只有當它們在我自己的項目中?

回答

8

您需要使用org.eclipse.core.contenttype擴展點定義content-type。然後,您需要將您的編輯器與特定的內容類型(而不是文件擴展名)相關聯。

接下來,您需要將您的項目性質與您剛剛定義的內容類型相關聯。

您可能還需要在具有特定屬性的項目之外創建應用於文件的第二種內容類型。

下面是我們在Groovy-Eclipse中使用,以便* .groovy文件將在默認情況下在常規項目常規編輯器中打開一個例子,但通過常規項目之外的文本編輯器:

<extension point="org.eclipse.core.contenttype.contentTypes"> 
    <content-type 
     base-type="org.eclipse.jdt.core.javaSource" 
     file-extensions="groovy" 
     id="groovySource" 
     name="Groovy Source File (for Groovy projects)" 
     priority="high"/> 

    <content-type 
     base-type="org.eclipse.core.runtime.text" 
     file-extensions="groovy" 
     id="groovyText" 
     name="Groovy Text File (for non-Groovy projects)" 
     priority="low"/> 
</extension> 

<extension 
    id="groovyNature" 
    name="Groovy Nature" 
    point="org.eclipse.core.resources.natures"> 
    <runtime> 
    <run class="org.codehaus.jdt.groovy.model.GroovyNature"/> 
    </runtime> 
    <requires-nature id="org.eclipse.jdt.core.javanature"/> 
    <content-type 
     id="org.eclipse.jdt.groovy.core.groovySource"> 
    </content-type> 

在這裏,我們爲groovy項目定義了groovySource,爲非groovy項目定義了groovyText。另請注意,內容類型的優先級不同。

然後,在其他地方,我們將GroovyEditor與groovySource內容類型相關聯。

+0

謝謝,很好的答案。 – FabianB

相關問題