Brian Remedios 289d1dce9d Lots of nice updates:
* Colour syntax highlighting for all relevant editors & example viewers.
* User-selectable marker shapes and colours, violation decorators in the navigator tree
* New AST view and related XPath test editor
* Rule search (page form only, non-functional)

Disabled Quickfix views until its ready
Zapped several nevarious bugs in previous functionality

Note: for the time being, violation errors will not appear in the Problems
      page. There is a conflict between having unique markers and 'standard'
      error markers that denote inclusion in the error page. Will check out
      the use of annotations to deal with this...

For evaluation:
   The size and scope of the rule editor is (I believe) outgrowing its
   placement within its preference page and it needs to be parked within
   it own view. Besides, tracking all the edits being made to the rules
   goes beyond what the pref pages can handle (i.e. apply/cancel...
   which never worked properly for the rules in any case)

   To that end, I've copied the rule table into its own view for now and
   left the one in the preference page as is so we can compare & contrast.
   Only one will remain by the time the best approach is chosen.

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@7115 51baf565-9d33-0410-a72c-fc3788e3496d
2010-08-31 05:31:48 +00:00

586 lines
21 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension-point id="rulesets" name="rulesets" schema="schema/rulesets.exsd"/>
<extension
point="org.eclipse.help.toc">
<toc
file="toc.xml"
primary="true">
</toc>
</extension>
<!-- original marker
<extension
id="pmdMarker"
name="%marker.pmd"
point="org.eclipse.core.resources.markers">
<super
type="org.eclipse.core.resources.problemmarker">
</super>
<persistent
value="true">
</persistent>
<attribute
name="rulename">
</attribute>
</extension>
-->
<extension
id="pmdMarker1"
name="%marker.pmd"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.textmarker"></super>
<persistent value="true"> </persistent>
<attribute name="rulename"> </attribute>
</extension>
<extension
id="pmdMarker2"
name="%marker.pmd"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.textmarker"></super>
<persistent value="true"> </persistent>
<attribute name="rulename"> </attribute>
</extension>
<extension
id="pmdMarker3"
name="%marker.pmd"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.textmarker"></super>
<persistent value="true"> </persistent>
<attribute name="rulename"> </attribute>
</extension>
<extension
id="pmdMarker4"
name="%marker.pmd"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.textmarker"></super>
<persistent value="true"> </persistent>
<attribute name="rulename"> </attribute>
</extension>
<extension
id="pmdMarker5"
name="%marker.pmd"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.textmarker"></super>
<persistent value="true"> </persistent>
<attribute name="rulename"> </attribute>
</extension>
<extension point="org.eclipse.ui.ide.markerImageProviders">
<imageprovider
id="PMD.imageProvider1"
icon="icons/markerP1.png"
markertype="net.sourceforge.pmd.eclipse.plugin.pmdMarker1">
</imageprovider>
</extension>
<extension point="org.eclipse.ui.ide.markerImageProviders">
<imageprovider
id="PMD.imageProvider2"
icon="icons/markerP2.png"
markertype="net.sourceforge.pmd.eclipse.plugin.pmdMarker2">
</imageprovider>
</extension>
<extension point="org.eclipse.ui.ide.markerImageProviders">
<imageprovider
id="PMD.imageProvider3"
icon="icons/markerP3.png"
markertype="net.sourceforge.pmd.eclipse.plugin.pmdMarker3">
</imageprovider>
</extension>
<extension point="org.eclipse.ui.ide.markerImageProviders">
<imageprovider
id="PMD.imageProvider4"
icon="icons/markerP4.png"
markertype="net.sourceforge.pmd.eclipse.plugin.pmdMarker4">
</imageprovider>
</extension>
<extension point="org.eclipse.ui.ide.markerImageProviders">
<imageprovider
id="PMD.imageProvider5"
icon="icons/markerP5.png"
markertype="net.sourceforge.pmd.eclipse.plugin.pmdMarker5">
</imageprovider>
</extension>
<extension
id="pmdTaskMarker"
name="%marker.task"
point="org.eclipse.core.resources.markers">
<super
type="net.sourceforge.pmd.eclipse.plugin.pmdMarker">
</super>
<super
type="org.eclipse.core.resources.taskmarker">
</super>
<persistent
value="true">
</persistent>
</extension>
<extension
id="pmdDFAMarker"
name="%marker.dfa"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.problemmarker"/>
<persistent value="false"/>
</extension>
<extension
id="pmdBuilder"
name="%builder.name"
point="org.eclipse.core.resources.builders">
<builder>
<run
class="net.sourceforge.pmd.eclipse.runtime.builder.PMDBuilder">
</run>
</builder>
</extension>
<extension
id="pmdNature"
name="%nature.name"
point="org.eclipse.core.resources.natures">
<runtime>
<run
class="net.sourceforge.pmd.eclipse.runtime.builder.PMDNature">
</run>
</runtime>
<builder
id="net.sourceforge.pmd.eclipse.plugin.pmdBuilder">
</builder>
<requires-nature
id="org.eclipse.jdt.core.javanature">
</requires-nature>
</extension>
<extension
id="pmdPreferencePages"
name="PMDPreferencePages"
point="org.eclipse.ui.preferencePages">
<page
name="%preferences.pmd"
class="net.sourceforge.pmd.eclipse.ui.preferences.GeneralPreferencesPage"
id="net.sourceforge.pmd.eclipse.ui.preferences.generalPreferencesPage">
</page>
<page
name="%preferences.rulesets"
category="net.sourceforge.pmd.eclipse.ui.preferences.generalPreferencesPage"
class="net.sourceforge.pmd.eclipse.ui.preferences.br.PMDPreferencePage2"
id="net.sourceforge.pmd.eclipse.ui.preferences.pmdPreferencePage">
</page>
<page name="PMD - Original" category="net.sourceforge.pmd.ui.preferences.generalPreferencesPage" class="net.sourceforge.pmd.eclipse.ui.preferences.PMDPreferencePage" id="net.sourceforge.pmd.ui.preferences.pmdPreferencePage">
</page>
<!--
<page name="PMD -v1" category="net.sourceforge.pmd.ui.preferences.generalPreferencesPage" class="net.sourceforge.pmd.eclipse.ui.preferences.br.PMDPreferencePage" id="net.sourceforge.pmd.ui.preferences.pmdPreferencePage">
</page>
-->
<page
name="%preferences.cpd"
category="net.sourceforge.pmd.eclipse.ui.preferences.generalPreferencesPage"
class="net.sourceforge.pmd.eclipse.ui.preferences.CPDPreferencePage"
id="net.sourceforge.pmd.eclipse.ui.preferences.cpdPreferencePage">
</page>
</extension>
<extension
point="org.eclipse.ui.ide.markerResolution">
<markerResolutionGenerator
markerType="net.sourceforge.pmd.eclipse.plugin.pmdMarker"
class="net.sourceforge.pmd.eclipse.ui.quickfix.PMDResolutionGenerator">
</markerResolutionGenerator>
</extension>
<extension
id="pmdPropertyPage"
name="PMD Property Page"
point="org.eclipse.ui.propertyPages">
<page
objectClass="org.eclipse.core.resources.IProject"
adaptable="true"
name="%properties.pmd"
nameFilter="*"
class="net.sourceforge.pmd.eclipse.ui.properties.PMDPropertyPage"
id="net.sourceforge.pmd.eclipse.ui.properties.pmdPropertyPage">
</page>
</extension>
<extension
id="pmdPopupMenus"
name="PMD Popup Menus"
point="org.eclipse.ui.popupMenus">
<objectContribution
objectClass="org.eclipse.core.resources.IProject"
adaptable="true"
nameFilter="*"
id="net.sourceforge.pmd.eclipse.ui.pmdProjectContribution">
<menu
label="%menu.pmd"
icon="icons/pmd-icon-16.gif"
path="additions"
id="pmd.menu">
<separator
name="group">
</separator>
</menu>
<action
label="%action.checkpmd"
icon="icons/icon_run.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.PMDCheckAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdPopupCheckProjectAction">
</action>
<action
label="%action.clearpmd"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.PMDRemoveMarkersAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdRemoveMarkersAction">
</action>
<action
label="%action.checkcpd"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.CPDCheckProjectAction"
menubarPath="pmd.menu/group"
enablesFor="1"
id="net.sourceforge.pmd.eclipse.ui.cpdCheckProjectAction">
</action>
<action
label="%action.clearreviews"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.ClearReviewsAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdClearReviewsAction">
</action>
<action
label="%action.generatereport"
icon="icons/file.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.GenerateReportAction"
menubarPath="pmd.menu/group"
enablesFor="1"
id="net.sourceforge.pmd.eclipse.ui.generateReportAction">
</action>
</objectContribution>
<objectContribution
objectClass="org.eclipse.core.resources.IFolder"
adaptable="true"
nameFilter="*"
id="net.sourceforge.pmd.eclipse.ui.pmdFolderContribution">
<menu
label="%menu.pmd"
path="additions"
id="pmd.menu">
<separator
name="group">
</separator>
</menu>
<action
label="%action.checkpmd"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.PMDCheckAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdFolderCheckProjectAction">
</action>
<action
label="%action.clearpmd"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.PMDRemoveMarkersAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdRemoveMarkersAction">
</action>
<action
label="%action.clearreviews"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.ClearReviewsAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdClearReviewsAction">
</action>
</objectContribution>
<objectContribution
objectClass="org.eclipse.core.resources.IFile"
adaptable="true"
nameFilter="*"
id="net.sourceforge.pmd.eclipse.ui.pmdFileContribution">
<menu
label="%menu.pmd"
path="additions"
id="pmd.menu">
<separator
name="group">
</separator>
</menu>
<action
label="%action.checkpmd"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.PMDCheckAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdCheckFileAction">
</action>
<action
label="%action.clearpmd"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.PMDRemoveMarkersAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdRemoveMarkersAction">
</action>
<action
label="%action.ast"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.PMDGenerateASTAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdGenerateAstAction">
</action>
<action
label="%action.clearreviews"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.ClearReviewsAction"
menubarPath="pmd.menu/group"
enablesFor="+"
id="net.sourceforge.pmd.eclipse.ui.pmdClearReviewsAction">
</action>
</objectContribution>
<viewerContribution
id="net.sourceforge.pmd.eclipse.ui.pmdTaskListContribution"
targetID="org.eclipse.ui.views.TaskList">
<action
class="net.sourceforge.pmd.eclipse.ui.actions.PMDRemoveMarkersAction"
icon="icons/pmd-icon-16.gif"
id="net.sourceforge.pmd.eclipse.ui.pmdRemoveAllMarkersAction"
label="%action.clearall"
menubarPath="additions">
</action>
</viewerContribution>
<viewerContribution
id="net.sourceforge.pmd.eclipse.ui.pmdVioaltionViewContribution"
targetID="net.sourceforge.pmd.eclipse.ui.views.ViolationView">
<action
class="net.sourceforge.pmd.eclipse.ui.actions.PMDRemoveMarkersAction"
icon="icons/pmd-icon-16.gif"
id="net.sourceforge.pmd.eclipse.ui.pmdRemoveAllMarkersAction"
label="%action.clearall"
menubarPath="additions">
</action>
</viewerContribution>
<viewerContribution
id="net.sourceforge.pmd.eclipse.ui.pmdOutlineContribution"
targetID="net.sourceforge.pmd.eclipse.ui.views.violationOutline">
<action
label="%action.clearreviews"
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.actions.ClearReviewsAction"
menubarPath="additions"
id="net.sourceforge.pmd.eclipse.ui.pmdClearReviewsAction"/>
</viewerContribution>
<objectContribution
adaptable="true"
objectClass="org.eclipse.jdt.core.IMethod"
nameFilter="*"
id="net.sourceforge.pmd.eclipse.ui.pmdMethodContribution">
</objectContribution>
<objectContribution
adaptable="false"
id="net.sourceforge.pmd.eclipse.ui.pmdOverviewContribution"
objectClass="net.sourceforge.pmd.eclipse.ui.model.AbstractPMDRecord">
<action
class="net.sourceforge.pmd.eclipse.ui.actions.PMDRemoveMarkersAction"
enablesFor="+"
icon="icons/pmd-icon-16.gif"
id="net.sourceforge.pmd.eclipse.ui.pmdRemoveMarkersAction"
label="%action.clearpmd"
menubarPath="additions"/>
</objectContribution>
<objectContribution
adaptable="false"
id="net.sourceforge.pmd.eclipse.ui.pmdOverviewContribution"
objectClass="net.sourceforge.pmd.eclipse.ui.model.PackageRecord">
<action
class="net.sourceforge.pmd.eclipse.ui.actions.PMDCheckAction"
enablesFor="+"
icon="icons/pmd-icon-16.gif"
id="net.sourceforge.pmd.eclipse.ui.pmdPackageCheckProjectAction"
label="%action.checkpmd"
menubarPath="additions"/>
</objectContribution>
<objectContribution
adaptable="false"
id="net.sourceforge.pmd.eclipse.ui.pmdOverviewContribution"
objectClass="net.sourceforge.pmd.eclipse.ui.model.FileRecord">
<action
class="net.sourceforge.pmd.eclipse.ui.actions.PMDCheckAction"
enablesFor="+"
icon="icons/pmd-icon-16.gif"
id="net.sourceforge.pmd.eclipse.ui.pmdFileCheckProjectAction"
label="%action.checkpmd"
menubarPath="additions"/>
</objectContribution>
<objectContribution
adaptable="false"
id="net.sourceforge.pmd.eclipse.ui.ruleContribution"
objectClass="net.sourceforge.pmd.eclipse.ui.views.br.ViewRecord">
<action
class="net.sourceforge.pmd.eclipse.ui.actions.PMDCheckAction"
enablesFor="+"
icon="icons/pmd-icon-16.gif"
id="net.sourceforge.pmd.eclipse.ui.pmdFileCheckProjectAction"
label="%action.checkpmd"
menubarPath="additions"/>
</objectContribution>
</extension>
<extension
id="pmdViews"
point="org.eclipse.ui.views">
<category
name="%view.category"
id="net.sourceforge.pmd.eclipse.ui.views">
</category>
<view
allowMultiple="false"
icon="icons/icon_outline.gif"
class="net.sourceforge.pmd.eclipse.ui.views.ViolationOutline"
category="net.sourceforge.pmd.eclipse.ui.views"
name="%view.outline"
id="net.sourceforge.pmd.eclipse.ui.views.violationOutline"/>
<view
allowMultiple="false"
icon="icons/icon_overview.gif"
class="net.sourceforge.pmd.eclipse.ui.views.ViolationOverview"
category="net.sourceforge.pmd.eclipse.ui.views"
name="%view.overview"
id="net.sourceforge.pmd.eclipse.ui.views.violationOverview"/>
<view
allowMultiple="false"
icon="icons/icon_dataflow.png"
class="net.sourceforge.pmd.eclipse.ui.views.dataflow.DataflowView"
category="net.sourceforge.pmd.eclipse.ui.views"
name="%view.dataflowview"
id="net.sourceforge.pmd.eclipse.ui.views.dataflowView"/>
<view
allowMultiple="false"
category="net.sourceforge.pmd.eclipse.ui.views"
class="net.sourceforge.pmd.eclipse.ui.views.cpd.CPDView"
icon="icons/icon_cpd.gif"
id="net.sourceforge.pmd.eclipse.ui.views.CPDView"
name="%view.cpd"/>
<view
allowMultiple="false"
category="net.sourceforge.pmd.eclipse.ui.views"
class="net.sourceforge.pmd.eclipse.ui.views.rules.RuleEditorView"
id="net.sourceforge.pmd.eclipse.plugin.ruleEditorView"
name="Rule Editor"
restorable="true">
</view>
<view
allowMultiple="false"
category="net.sourceforge.pmd.eclipse.ui.views"
class="net.sourceforge.pmd.eclipse.ui.views.ast.ASTView"
id="net.sourceforge.pmd.eclipse.plugin.astView"
name="XPath Designer"
restorable="true">
</view>
</extension>
<extension
point="org.eclipse.ui.perspectives">
<perspective
icon="icons/pmd-icon-16.gif"
class="net.sourceforge.pmd.eclipse.ui.views.PMDPerspective"
name="%view.perspective"
id="net.sourceforge.pmd.eclipse.ui.views.pmdPerspective"/>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="net.sourceforge.pmd.eclipse.runtime.cmd.DisableRuleHandler"
id="net.sourceforge.pmd.eclipse.plugin.rule.disable"
name="DisableRule">
</command>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu">
<menu
id="editMenu"
label="Rule">
<command
commandId="net.sourceforge.pmd.eclipse.plugin.rule.disable"
label="Disable"
style="push"
tooltip="Disables the rule">
</command>
</menu>
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.decorators">
<decorator
adaptable="true"
class="net.sourceforge.pmd.eclipse.ui.RuleLabelDecorator"
icon="icons/sample_decorator.gif"
id="net.sourceforge.pmd.eclipse.plugin.RuleLabelDecorator"
label="Rule Violation Decorator"
lightweight="true"
location="TOP_LEFT"
state="true">
<description>
The markers used by PMD to flag projects and files with violations.
</description>
<enablement>
<and>
<objectClass
name="org.eclipse.core.resources.IResource">
</objectClass>
<or>
<objectClass
name="org.eclipse.core.resources.IProject">
</objectClass>
<objectClass
name="org.eclipse.core.resources.IFile">
</objectClass>
</or>
</and>
</enablement>
</decorator>
</extension>
<extension
point="org.eclipse.search.searchPages">
<page
class="net.sourceforge.pmd.eclipse.search.RuleSearchPage"
id="net.sourceforge.pmd.eclipse.plugin.page1"
label="Rule search">
</page>
</extension>
</plugin>