Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 160e833d617d0cd3b4d30c044b2012834258f994 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**********************************************************************
Copyright (c) 2000, 2002 IBM Corp. and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Common Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/cpl-v10.html

Contributors:
    IBM Corporation - Initial implementation
**********************************************************************/

package org.eclipse.jface.text.contentassist;


import org.eclipse.jface.text.IDocument;


/**
 * Extension interface to <code>ICompletionProposal</code>.
 * Add the following functions:
 * <ul>
 * <li> handling of trigger characters other then ENTER
 * <li> completion proposal validation for a given offset
 * <li> freely positionable context information
 * </ul>
 * 
 * @since 2.0
 */
public interface ICompletionProposalExtension {
	
	/**
	 * Applies the proposed completion to the given document. The insertion
	 * has been triggered by entering the given character at the given offset.
	 * This method assumes that <code>isValidFor</code> returns
	 * <code>true</code> if called for <code>offset</code>.
	 *
	 * @param document the document into which to insert the proposed completion
	 * @param trigger the trigger to apply the completion
	 * @param offset the offset at which the trigger has been activated
	 */
	void apply(IDocument document, char trigger, int offset);
	
	/**
	 * Returns whether this completion proposal is valid for the given
	 * position in the given document.
	 * 
	 * @param document the document for which the proposal is tested
	 * @param offset the offset for which the proposal is tested
	 */
	boolean isValidFor(IDocument document, int offset);
	
	/**
	 * Returns the characters which trigger the application of this completion proposal.
	 * 
	 * @return the completion characters for this completion proposal or <code>null</code>
	 *		if no completion other than the new line character is possible
	 */
	char[] getTriggerCharacters();
	
	/**
	 * Returns the position to which the computed context information refers to or
	 * <code>-1</code> if no context information can be provided by this completion proposal.
	 * 
	 * @return the position to which the context information refers to or <code>-1</code> for no information
	 */
	int getContextInformationPosition();
}

Back to the top