/******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation 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 API and implementation *******************************************************************************/ package net.sourceforge.phpdt.core; import net.sourceforge.phpdt.core.compiler.IProblem; /** * A completion requestor accepts results as they are computed and is aware * of source positions to complete the various different results. *
* This interface may be implemented by clients. *
* * @see ICodeAssist * @since 2.0 */ public interface ICompletionRequestor { /** * Code assist notification of an anonymous type declaration completion. * @param superTypePackageName Name of the package that contains the super type of this * new anonymous type declaration . * * @param superTypeName Name of the super type of this new anonymous type declaration. * * @param parameterPackageNames Names of the packages in which the parameter types are declared. * Should contain as many elements as parameterTypeNames. * * @param parameterTypeNames Names of the parameters types. * Should contain as many elements as parameterPackageNames. * * @param completionName The completion for the anonymous type declaration. * Can include zero, one or two brackets. If the closing bracket is included, * then the cursor should be placed before it. * * @param modifiers The modifiers of the constructor. * * @param completionStart The start position of insertion of the name of this new anonymous type declaration. * * @param completionEnd The end position of insertion of the name of this new anonymous type declaration. * * @param relevance The relevance of the completion proposal * It is a positive integer which are used for determine if this proposal is more relevant than another proposal. * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance * value is higher. * * NOTE - All package and type names are presented in their readable form: * Package names are in the form "a.b.c". * Base types are in the form "int" or "boolean". * Array types are in the qualified form "M[]" or "int[]". * Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. * * NOTE: parameter names can be retrieved from the source model after the user selects a specific method. */ void acceptAnonymousType( char[] superTypePackageName, char[] superTypeName, char[][] parameterPackageNames, char[][] parameterTypeNames, char[][] parameterNames, char[] completionName, int modifiers, int completionStart, int completionEnd, int relevance); /** * Code assist notification of a class completion. * * @param packageName Declaring package name of the class. * @param className Name of the class. * @param completionName The completion for the class. Can include ';' for imported classes. * @param modifiers The modifiers of the class. * @param completionStart The start position of insertion of the name of the class. * @param completionEnd The end position of insertion of the name of the class. * @param relevance The relevance of the completion proposal * It is a positive integer which are used for determine if this proposal is more relevant than another proposal. * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance * value is higher. * * NOTE - All package and type names are presented in their readable form: * Package names are in the form "a.b.c". * Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. */ void acceptClass( char[] packageName, char[] className, char[] completionName, int modifiers, int completionStart, int completionEnd, int relevance); /** * Code assist notification of a compilation error detected during completion. * @param error Only problems which are categorized as non-syntax errors are notified to the * requestor, warnings are silently ignored. * In case an error got signalled, no other completions might be available, * therefore the problem message should be presented to the user. * The source positions of the problem are related to the source where it was * detected (might be in another compilation unit, if it was indirectly requested * during the code assist process). * Note: the problem knows its originating file name. */ void acceptError(IProblem error); /** * Code assist notification of a field completion. * * @param declaringTypePackageName Name of the package in which the type that contains this field is declared. * @param declaringTypeName Name of the type declaring this new field. * @param name Name of the field. * @param typePackageName Name of the package in which the type of this field is declared. * @param typeName Name of the type of this field. * @param completionName The completion for the field. * @param modifiers The modifiers of this field. * @param completionStart The start position of insertion of the name of this field. * @param completionEnd The end position of insertion of the name of this field. * @param relevance The relevance of the completion proposal * It is a positive integer which are used for determine if this proposal is more relevant than another proposal. * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance * value is higher. * * NOTE - All package and type names are presented in their readable form: * Package names are in the form "a.b.c". * Base types are in the form "int" or "boolean". * Array types are in the qualified form "M[]" or "int[]". * Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. */ void acceptField( char[] declaringTypePackageName, char[] declaringTypeName, char[] name, char[] typePackageName, char[] typeName, char[] completionName, int modifiers, int completionStart, int completionEnd, int relevance); /** * Code assist notification of an interface completion. * * @param packageName Declaring package name of the interface. * @param className Name of the interface. * @param completionName The completion for the interface. Can include ';' for imported interfaces. * @param modifiers The modifiers of the interface. * @param completionStart The start position of insertion of the name of the interface. * @param completionEnd The end position of insertion of the name of the interface. * @param relevance The relevance of the completion proposal * It is a positive integer which are used for determine if this proposal is more relevant than another proposal. * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance * value is higher. * * NOTE - All package and type names are presented in their readable form: * Package names are in the form "a.b.c". * Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. */ void acceptInterface( char[] packageName, char[] interfaceName, char[] completionName, int modifiers, int completionStart, int completionEnd, int relevance); /** * Code assist notification of a keyword completion. * @param keywordName The keyword source. * @param completionStart The start position of insertion of the name of this keyword. * @param completionEnd The end position of insertion of the name of this keyword. * @param relevance The relevance of the completion proposal * It is a positive integer which are used for determine if this proposal is more relevant than another proposal. * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance * value is higher. */ void acceptKeyword(char[] keywordName, int completionStart, int completionEnd, int relevance); /** * Code assist notification of a label completion. * * @param labelName The label source. * @param completionStart The start position of insertion of the name of this label. * @param completionEnd The end position of insertion of the name of this label. * @param relevance The relevance of the completion proposal * It is a positive integer which are used for determine if this proposal is more relevant than another proposal. * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance * value is higher. */ void acceptLabel(char[] labelName, int completionStart, int completionEnd, int relevance); /** * Code assist notification of a local variable completion. * * @param name Name of the new local variable. * @param typePackageName Name of the package in which the type of this new local variable is declared. * @param typeName Name of the type of this new local variable. * @param modifiers The modifiers of this new local variable. * @param completionStart The start position of insertion of the name of this new local variable. * @param completionEnd The end position of insertion of the name of this new local variable. * @param relevance The relevance of the completion proposal * It is a positive integer which are used for determine if this proposal is more relevant than another proposal. * This value can only be used for compare relevance. A proposal is more relevant than another if his relevance * value is higher. * * NOTE - All package and type names are presented in their readable form: * Package names are in the form "a.b.c". * Base types are in the form "int" or "boolean". * Array types are in the qualified form "M[]" or "int[]". * Nested type names are in the qualified form "A.M". * The default package is represented by an empty array. */ void acceptLocalVariable( char[] name, char[] typePackageName, char[] typeName, int modifiers, int completionStart, int completionEnd, int relevance); /** * Code assist notification of a method completion. * * @param declaringTypePackageName Name of the package in which the type that contains this new method is declared. * @param declaringTypeName Name of the type declaring this new method. * @param selector Name of the new method. * @param parameterPackageNames Names of the packages in which the parameter types are declared. * Should contain as many elements as parameterTypeNames. * @param parameterTypeNames Names of the parameters types. * Should contain as many elements as parameterPackageNames. * @param returnTypePackageName Name of the package in which the return type is declared. * @param returnTypeName Name of the return type of this new method, should benull
for a constructor.
* @param completionName The completion for the method. Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
* @param modifiers The modifiers of this new method.
* @param completionStart The start position of insertion of the name of this new method.
* @param completionEnd The end position of insertion of the name of this new method.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form "a.b.c".
* Base types are in the form "int" or "boolean".
* Array types are in the qualified form "M[]" or "int[]".
* Nested type names are in the qualified form "A.M".
* The default package is represented by an empty array.
*
* NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
*/
void acceptMethod(
char[] declaringTypePackageName,
char[] declaringTypeName,
char[] selector,
char[][] parameterPackageNames,
char[][] parameterTypeNames,
char[][] parameterNames,
char[] returnTypePackageName,
char[] returnTypeName,
char[] completionName,
int modifiers,
int completionStart,
int completionEnd,
int relevance);
/**
* Code assist notification of a method completion.
*
* @param declaringTypePackageName Name of the package in which the type that contains this new method is declared.
* @param declaringTypeName Name of the type declaring this new method.
* @param selector Name of the new method.
* @param parameterPackageNames Names of the packages in which the parameter types are declared.
* Should contain as many elements as parameterTypeNames.
* @param parameterTypeNames Names of the parameters types.
* Should contain as many elements as parameterPackageNames.
* @param returnTypePackageName Name of the package in which the return type is declared.
* @param returnTypeName Name of the return type of this new method, should be null
for a constructor.
* @param completionName The completion for the method. Can include zero, one or two brackets. If the closing bracket is included, then the cursor should be placed before it.
* @param modifiers The modifiers of this new method.
* @param completionStart The start position of insertion of the name of this new method.
* @param completionEnd The end position of insertion of the name of this new method.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form "a.b.c".
* Base types are in the form "int" or "boolean".
* Array types are in the qualified form "M[]" or "int[]".
* Nested type names are in the qualified form "A.M".
* The default package is represented by an empty array.
*
* NOTE: parameter names can be retrieved from the source model after the user selects a specific method.
*/
void acceptMethodDeclaration(
char[] declaringTypePackageName,
char[] declaringTypeName,
char[] selector,
char[][] parameterPackageNames,
char[][] parameterTypeNames,
char[][] parameterNames,
char[] returnTypePackageName,
char[] returnTypeName,
char[] completionName,
int modifiers,
int completionStart,
int completionEnd,
int relevance);
/**
* Code assist notification of a modifier completion.
*
* @param modifierName The new modifier.
* @param completionStart The start position of insertion of the name of this new modifier.
* @param completionEnd The end position of insertion of the name of this new modifier.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*/
void acceptModifier(char[] modifierName, int completionStart, int completionEnd, int relevance);
/**
* Code assist notification of a package completion.
*
* @param packageName The package name.
* @param completionName The completion for the package. Can include '.*;' for imports.
* @param completionStart The start position of insertion of the name of this new package.
* @param completionEnd The end position of insertion of the name of this new package.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package names are presented in their readable form:
* Package names are in the form "a.b.c".
* The default package is represented by an empty array.
*/
void acceptPackage(
char[] packageName,
char[] completionName,
int completionStart,
int completionEnd,
int relevance);
/**
* Code assist notification of a type completion.
*
* @param packageName Declaring package name of the type.
* @param typeName Name of the type.
* @param completionName The completion for the type. Can include ';' for imported types.
* @param completionStart The start position of insertion of the name of the type.
* @param completionEnd The end position of insertion of the name of the type.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form "a.b.c".
* Nested type names are in the qualified form "A.M".
* The default package is represented by an empty array.
*/
void acceptType(
char[] packageName,
char[] typeName,
char[] completionName,
int completionStart,
int completionEnd,
int relevance);
/**
* Code assist notification of a variable name completion.
*
* @param typePackageName Name of the package in which the type of this variable is declared.
* @param typeName Name of the type of this variable.
* @param name Name of the variable.
* @param completionName The completion for the variable.
* @param completionStart The start position of insertion of the name of this variable.
* @param completionEnd The end position of insertion of the name of this variable.
* @param relevance The relevance of the completion proposal
* It is a positive integer which are used for determine if this proposal is more relevant than another proposal.
* This value can only be used for compare relevance. A proposal is more relevant than another if his relevance
* value is higher.
*
* NOTE - All package and type names are presented in their readable form:
* Package names are in the form "a.b.c".
* Base types are in the form "int" or "boolean".
* Array types are in the qualified form "M[]" or "int[]".
* Nested type names are in the qualified form "A.M".
* The default package is represented by an empty array.
*/
void acceptVariableName(
char[] typePackageName,
char[] typeName,
char[] name,
char[] completionName,
int completionStart,
int completionEnd,
int relevance);
}