如何赋予 eclipse 插件 PHP 性质

How to give PHP nature to a eclipse plugin

我已经为自定义框架创建了一个插件,我需要赋予它 php 性质,以便在使用此插件进行开发时,开发人员可以使用 php 的功能。目前我正在使用自定义性质。但我不知道如何切换到 php 性质。我的 plugin.xml 看起来像这样。

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.ui.newWizards">
      <category
            id="rudraxplugin.category.wizards"
            name="%category.name">
      </category>
      <wizard
            category="rudraxplugin.category.wizards"
            class="rudraxplugin.wizards.CustomProjectNewWizard"
            finalPerspective="rudraxplugin.perspective"
            id="rudraxplugin.wizard.new.custom"
            name="%wizard.name">
      </wizard>
   </extension>
   <extension
         point="org.eclipse.ui.views">
      <view
            class="org.eclipse.ui.navigator.CommonNavigator"
            icon="icons/sample.gif"
            id="rudraxplugin.navigator"
            name="%view.name">
      </view>
   </extension>
   <extension
         point="org.eclipse.ui.navigator.viewer">
      <viewerActionBinding
            viewerId="rudraxplugin.navigator">
         <includes>
            <actionExtension
                  pattern="org.eclipse.ui.navigator.resources.*">
            </actionExtension>
         </includes>
      </viewerActionBinding>
      <viewerContentBinding
            viewerId="rudraxplugin.navigator">
         <includes>
            <contentExtension
                  pattern="org.eclipse.ui.navigator.resourceContent">
            </contentExtension>
            <contentExtension
                  pattern="org.eclipse.ui.navigator.resources.filters.*">
            </contentExtension>
            <contentExtension
                  pattern="org.eclipse.ui.navigator.resources.linkHelper">
            </contentExtension>
            <contentExtension
                  pattern="org.eclipse.ui.navigator.resources.workingSets">
            </contentExtension>
         </includes>
      </viewerContentBinding>
   </extension>
   <extension
         point="org.eclipse.ui.perspectives">
      <perspective
            class="rudraxplugin.perspectives.Perspective"
            id="rudraxplugin.perspective"
            name="%perspective.name">
      </perspective>
   </extension>
   <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension
            targetID="rudraxplugin.perspective">
         <view
               id="rudraxplugin.navigator"
               minimized="false"
               ratio="0.25"
               relationship="left"
               relative="org.eclipse.ui.editorss">
         </view>
      </perspectiveExtension>
   </extension>
   <extension
         id="rudraxplugin.projectNature"
         point="org.eclipse.core.resources.natures">
      <runtime>
         <run
               class="rudraxplugin.natures.ProjectNature">
         </run>
      </runtime>
   </extension>

</plugin>

我也使用本教程完成了开发过程。

https://cvalcarcel.wordpress.com/2009/07/08/

如有任何帮助,我们将不胜感激。

使用以下代码为项目添加性质:

IProject project = .... get the project you want to modify

IProjectDescription description = project.getDescription();

String [] natures = description.getNatureIds();

String [] newNatures = new String[natures.length + 1];

System.arraycopy(natures, 0, newNatures, 0, natures.length);

newNatures[natures.length] = "org.eclipse.php.core.PHPNature";

description.setNatureIds(newNatures);

project.setDescription(description, null);