# Completion Proposal Filter

###### Identifier:

org.eclipse.cdt.ui.ProposalFilter

###### Since:

CDT 3.1

###### Description:

When the user requests code completion for an identifier prefix then proposals are gathered from a variety of sources. It is quite common that several proposals for the same completion are gathered. After gathering it is therefore necessary to filter proposals and present them in an optimal ordering to the user. The notion of what is "optimal" may vary from one application to another. This extension point allows the contribution of completion filters which best suit the needs of the user in any given situation. The decision about which filter will actually be used remains with the user who can select his preference from a list of all contributed filters (menu Window - Preferences - C/C++ - Editor - Content Assist).

###### Configuration Markup:

<!ELEMENT extension (ProposalFilter)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

<!ELEMENT ProposalFilter EMPTY>

<!ATTLIST ProposalFilter

id IDREF #REQUIRED

name CDATA #REQUIRED

class CDATA #REQUIRED>

- id - The required unique id of the ProposalFilter
- name - The required name of the ProposalFilter. This name will appear in the preferences combo and should therefore be informative for the user.
- class - The required fully qualified name of the implementing class which must implement org.eclipse.cdt.ui.text.contentassist.IProposalFilter

###### Examples:

See the default implementation in org.eclipse.cdt.internal.ui.text.contentassist.DefaultProposalFilter as an example.

###### API Information:

ProposalFilters must implement interface `org.eclipse.cdt.ui.text.contentassist.IProposalFilter`.

###### Supplied Implementation:

The default implementation in org.eclipse.cdt.internal.ui.text.contentassist.DefaultProposalFilter is the default filtering method which is used as long as the user preference is not changed.

Copyright (c) 2006 Norbert Ploett and others. 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 http://www.eclipse.org/legal/epl-v10.html Contributors: Norbert Ploett (Siemens) - Initial Contribution

``