# Java Completion Proposal Sorters

###### Identifier:

org.eclipse.jdt.ui.javaCompletionProposalSorters

###### Since:

3.2

###### Description:

This extension point allows to contribute sorters that may modify the completion proposal ordering in the Java editor.

###### Configuration Markup:

<!ELEMENT extension (proposalSorter+)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT proposalSorter EMPTY>

<!ATTLIST proposalSorter

id CDATA #REQUIRED

name CDATA #IMPLIED

class CDATA #REQUIRED

requiresUIThread (true | false) "true">

A proposal sorter contribution.

- id - the unique identifier of the sorter
- name - the label of the sorter as shown in the preferences. It should be a continuation of the phrase "Sort proposals...", for example "by relevance".
- class - the name of the class that implements the contributed sorter. The class must be a public subclass of `org.eclipse.jdt.ui.text.java.AbstractProposalSorter` and must have a public 0-argument constructor.
- requiresUIThread - Whether the given extension requires to run in UI Thread. If extension doesn't require to run in UI Thread to work, this should be set to "false". It's recommended for an extension to not require UI Thread and have this set to "false" in order to improve performances. If "false", the sorter may run in a non UI Thread. If "true", the sorter will run in UI Thread, freezing the UI while computing. @since 3.16

###### Examples:

    <extension
     point="org.eclipse.jdt.ui.javaCompletionProposalSorters">
     <proposalSorter
      id="org.eclipse.jdt.ui.RelevanceSorter"
      name="by relevance"
      class="org.eclipse.jdt.internal.ui.text.java.RelevanceSorter"/>
    </extension>

###### API Information:

See `AbstractProposalSorter`.

###### Supplied Implementation:

`org.eclipse.jdt.internal.ui.text.java.RelevanceSorter` and `org.eclipse.jdt.internal.ui.text.java.AlphabeticSorter` implement the two default sort behaviors.

Copyright (c) 2006 IBM Corporation and others.
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 https://www.eclipse.org/legal/epl-v20.html/ SPDX-License-Identifier: EPL-2.0