blob: 9033065e432068509e9782a3e951ebe911379b99 [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jdt.ui">
<annotation>
<appInfo>
<meta.schema plugin="org.eclipse.jdt.ui" id="quickFixProcessors" name="Quick Fix Processor"/>
</appInfo>
<documentation>
This extension point allows to add a Quick Fix processor to offer new Quick Fixes on Java problems.
&lt;p&gt;
Since 3.2, an extension can specify which problem marker types it can handle. It will only get problems of these types to process.
If no handled marker types are specified, the processor will only get problems of types org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem and org.eclipse.jdt.core.task (compatible to the behaviour prior to 3.2).
&lt;/p&gt;
This extension point supports the &lt;code&gt;&amp;lt;enablement&amp;gt;&lt;/code&gt; element.
&lt;!-- see org.eclipse.jdt.internal.ui.text.correction.ContributedProcessorDescriptor#matches(ICompilationUnit): --&gt;
The default variable is the containing &lt;code&gt;org.eclipse.jdt.core.ICompilationUnit&lt;/code&gt;.
&lt;br&gt;Defined variables for &lt;code&gt;&amp;lt;with&amp;gt;&lt;/code&gt; expressions are:
&lt;ul&gt;
&lt;li&gt;&quot;compilationUnit&quot;: type &lt;code&gt;org.eclipse.jdt.core.ICompilationUnit&lt;/code&gt;; the compilation unit the quick assist is applied on (same as the default variable)&lt;/li&gt;
&lt;li&gt;&quot;projectNatures&quot;: type &lt;code&gt;java.util.Collection&amp;lt;String&amp;gt;&lt;/code&gt;; all project natures of the current project&lt;/li&gt;
&lt;li&gt;&quot;sourceLevel&quot;: type &lt;code&gt;java.lang.String&lt;/code&gt;; the source compliance level of the current project&lt;/li&gt;
&lt;/ul&gt;
</documentation>
</annotation>
<include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
<element name="extension">
<complexType>
<sequence>
<element ref="quickFixProcessor" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>
a fully qualified identifier of the target extension point
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
an optional identifier of the extension instance
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
an optional name of the extension instance
</documentation>
<appInfo>
<meta.attribute translatable="true"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="quickFixProcessor">
<complexType>
<sequence>
<element ref="enablement" minOccurs="0" maxOccurs="1"/>
<element ref="handledMarkerTypes" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="id" type="string" use="required">
<annotation>
<documentation>
a unique identifier for the Quick Fix processor
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
a localized name of the Quick Fix processor
</documentation>
<appInfo>
<meta.attribute translatable="true"/>
</appInfo>
</annotation>
</attribute>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
the name of the class that implements this Quick Fix processor. The
class must be public and implement
&lt;samp&gt;org.eclipse.jdt.ui.text.java.IQuickFixProcessor&lt;/samp&gt;
with a public 0-argument constructor.
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn="org.eclipse.jdt.ui.text.java.IQuickFixProcessor"/>
</appInfo>
</annotation>
</attribute>
<attribute name="requiredSourceLevel" type="string">
<annotation>
<documentation>
an optional attribute to specify the minimal source compliance this processor requires
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="handledMarkerTypes">
<annotation>
<documentation>
Specifies the marker types of the problems this quick fix processor can handle.
If no handled marker type are specified, the processor will get problems of types org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem and org.eclipse.jdt.core.task.
</documentation>
</annotation>
<complexType>
<sequence>
<element ref="markerType" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="markerType">
<complexType>
<attribute name="id" type="string" use="required">
<annotation>
<documentation>
the marker type id of the marker type that can be handled by this processor. The processor will not handle marker subtypes.
</documentation>
<appInfo>
<meta.attribute kind="identifier" basedOn="org.eclipse.core.resources.markers/@id"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appInfo>
<meta.section type="examples"/>
</appInfo>
<documentation>
The following is an example of a Quick Fix processor contribution:
&lt;pre&gt;
&lt;extension point=&quot;org.eclipse.jdt.ui.quickFixProcessors&quot;&gt;
&lt;quickFixProcessor
id=&quot;AdvancedQuickFixProcessor&quot;
name=&quot;Advanced Quick Fix Processor&quot;
requiredSourceLevel=&quot;1.5&quot;
class=&quot;com.example.AdvancedQuickFixProcessor&quot;&gt;
&lt;handledMarkerTypes&gt;
&lt;markerType id=&quot;org.eclipse.myplugin.audits&quot;/&gt;
&lt;/handledMarkerTypes&gt;
&lt;enablement&gt;
&lt;with variable=&quot;projectNatures&quot;&gt;
&lt;iterate operator=&quot;or&quot;&gt;
&lt;equals value=&quot;org.eclipse.jdt.core.javanature&quot;/&gt;
&lt;/iterate&gt;
&lt;/with&gt;
&lt;/enablement&gt;
&lt;/quickFixProcessor&gt;
&lt;/extension&gt;
&lt;/pre&gt;
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="since"/>
</appInfo>
<documentation>
Extension point since 3.0. Element &lt;code&gt;handledMarkerTypes&lt;/code&gt; since 3.2.
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="apiInfo"/>
</appInfo>
<documentation>
The contributed class must implement &lt;code&gt;org.eclipse.jdt.ui.text.java.IQuickFixProcessor&lt;/code&gt;
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="implementation"/>
</appInfo>
<documentation>
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="copyright"/>
</appInfo>
<documentation>
Copyright (c) 2001, 2013 IBM Corporation and others.&lt;br&gt;
This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at &lt;a href=&quot;https://www.eclipse.org/legal/epl-2.0&quot;&gt;https://www.eclipse.org/legal/epl-v20.html&lt;/a&gt;/
SPDX-License-Identifier: EPL-2.0
</documentation>
</annotation>
</schema>