diff --git a/org.eclipse.jdt.ui/schema/javaCompletionProposalComputer.exsd b/org.eclipse.jdt.ui/schema/javaCompletionProposalComputer.exsd
index 4eff4fa..6097afd 100644
--- a/org.eclipse.jdt.ui/schema/javaCompletionProposalComputer.exsd
+++ b/org.eclipse.jdt.ui/schema/javaCompletionProposalComputer.exsd
@@ -1,231 +1,231 @@
-<?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;enablement&lt;/code&gt; tag. Properties to test on are:
-&lt;dl&gt;
-&lt;li&gt;project: type IJavaProject; the current project&lt;/li&gt;
-&lt;/dl&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>
-      </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;p&gt;
-&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;
-&lt;/p&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, 2012 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
+<?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;enablement&lt;/code&gt; tag. Properties to test on are:
+&lt;dl&gt;
+&lt;li&gt;project: type IJavaProject; the current project&lt;/li&gt;
+&lt;/dl&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>
+      </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;p&gt;
+&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;
+&lt;/p&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, 2012 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
