<?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>
