blob: ac3c4e71b58e0155962732a095994af7250de702 [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jdt.ui" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appInfo>
<meta.schema plugin="org.eclipse.jdt.ui" id="javaCompletionProposalComputer" name="Java Completion Proposal Computer"/>
</appInfo>
<documentation>
This extension point allows to contribute Java completion proposal computers to participate in the content assist process of the Java editor.
&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.java.CompletionProposalCategory#matches(IJavaProject): --&gt;
The default variable is the containing &lt;code&gt;org.eclipse.jdt.core.IJavaProject&lt;/code&gt;.
&lt;br&gt;Defined variables for &lt;code&gt;&amp;lt;with&amp;gt;&lt;/code&gt; expressions are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;project&quot;: type &lt;code&gt;org.eclipse.jdt.core.IJavaProject&lt;/code&gt;; the current project (same as the default variable)&lt;/li&gt;
&lt;/ul&gt;
</documentation>
</annotation>
<include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>
<element name="extension">
<annotation>
<appInfo>
<meta.element labelAttribute="name" />
</appInfo>
</annotation>
<complexType>
<choice>
<element ref="javaCompletionProposalComputer"/>
<element ref="proposalCategory"/>
</choice>
<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" use="required">
<annotation>
<documentation>
the proposal category id
</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="javaCompletionProposalComputer">
<annotation>
<documentation>
A proposal computer contribution. If no partition types are specified, the computer is added to all partition types.
</documentation>
</annotation>
<complexType>
<sequence minOccurs="0" maxOccurs="6">
<element ref="partition"/>
</sequence>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
the name of the class that implements the contributed computer. The
class must be public and implement
&lt;code&gt;org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer&lt;/code&gt;
and must have a public 0-argument constructor.
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn=":org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer"/>
</appInfo>
</annotation>
</attribute>
<attribute name="activate" type="boolean" use="default" value="false">
<annotation>
<documentation>
if the attribute is set to &quot;true&quot; it will force this plug-in to be loaded on content assist invocation. @since 3.8.1 activation will not happen if the enablement expression for the category is not met.
</documentation>
</annotation>
</attribute>
<attribute name="categoryId" type="string" use="default" value="org.eclipse.jdt.ui.defaultProposalCategory">
<annotation>
<documentation>
the id of a &lt;tt&gt;proposalCategory&lt;/tt&gt;
</documentation>
<appInfo>
<meta.attribute kind="identifier" basedOn="org.eclipse.jdt.ui.javaCompletionProposalComputer/@id"/>
</appInfo>
</annotation>
</attribute>
<attribute name="needsSortingAfterFiltering" type="boolean" use="default" value="false">
<annotation>
<documentation>
if the attribute is set to &quot;true&quot; it forces the content assist processor to resort the list of proposals every time a new token is entered or removed to the completion prefix.
@since 3.8
</documentation>
</annotation>
</attribute>
<attribute name="requiresUIThread" type="boolean" use="default" value="true">
<annotation>
<documentation>
Whether the given extension requires to run in UI Thread. If extension doesn&apos;t require to run in UI Thread to work, this should be set to &quot;false&quot;. It&apos;s recommended for an extension to not require UI Thread and have this set to &quot;false&quot; in order to improve performance.
If &quot;false&quot;, the completion proposal may run in a non-UI Thread, in parallel with other completion computers.
If &quot;true&quot;, the completion proposal will run in UI Thread, freezing the UI while computing, and in sequence with other completion computers that also require UI Thread.
@since 3.16
</documentation>
</annotation>
</attribute>
</complexType>
</element>
<element name="partition">
<annotation>
<appInfo>
<meta.element labelAttribute="type"/>
</appInfo>
</annotation>
<complexType>
<attribute name="type" use="required">
<annotation>
<documentation>
a Java partition type for which the specified computer can provide completion proposals. See &lt;code&gt;IDocument.DEFAULT_CONTENT_TYPE&lt;/code&gt; and &lt;code&gt;IJavaPartitions&lt;/code&gt; for valid values.
</documentation>
</annotation>
<simpleType>
<restriction base="string">
<enumeration value="__dftl_partition_content_type">
</enumeration>
<enumeration value="__java_singleline_comment">
</enumeration>
<enumeration value="__java_multiline_comment">
</enumeration>
<enumeration value="__java_javadoc">
</enumeration>
<enumeration value="__java_string">
</enumeration>
<enumeration value="__java_character">
</enumeration>
</restriction>
</simpleType>
</attribute>
</complexType>
</element>
<element name="proposalCategory">
<annotation>
<documentation>
A proposal category contribution defines categories of proposals used to group them in the UI.
</documentation>
</annotation>
<complexType>
<sequence>
<element ref="enablement" minOccurs="0" maxOccurs="1"/>
</sequence>
<attribute name="icon" type="string">
<annotation>
<documentation>
an optional icon of the category, which can be displayed in the user preferences
</documentation>
<appInfo>
<meta.attribute kind="resource"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appInfo>
<meta.section type="since"/>
</appInfo>
<documentation>
3.2
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="examples"/>
</appInfo>
<documentation>
The following is an example of a Java completion proposal computer contribution:
&lt;pre&gt;
&lt;extension point=&quot;org.eclipse.jdt.ui.javaCompletionProposalComputer&quot;
id=&quot;textual_proposals&quot;
name=&quot;Text Proposals&quot;&gt;
&lt;proposalCategory icon=&quot;icons/wordcompletions.png&quot;/&gt;
&lt;/extension&gt;
&lt;extension point=&quot;org.eclipse.jdt.ui.javaCompletionProposalComputer&quot;
id=&quot;WordCompletionProposalComputer&quot;
name=&quot;Word Completion Proposal Computer&quot;&gt;
&lt;javaCompletionProposalComputer
class=&quot;org.eclipse.jdt.internal.ui.text.java.HippieProposalComputer&quot;
categoryId=&quot;org.eclipse.ui.texteditor.textual_proposals&quot;&gt;
&lt;partition type=&quot;__java_javadoc&quot;/&gt;
&lt;/javaCompletionProposalComputer&gt;
&lt;/extension&gt;
&lt;/pre&gt;
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="apiInfo"/>
</appInfo>
<documentation>
The contributed class must extend &lt;code&gt;org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer&lt;/code&gt;
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="implementation"/>
</appInfo>
<documentation>
see &lt;code&gt;org.eclipse.jdt.internal.ui.text.java.HippieProposalComputer&lt;/code&gt; for an example.
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="copyright"/>
</appInfo>
<documentation>
Copyright (c) 2006, 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>