X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/ICompletionRequestor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/ICompletionRequestor.java new file mode 100644 index 0000000..4586a1d --- /dev/null +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/core/ICompletionRequestor.java @@ -0,0 +1,405 @@ +/******************************************************************************* + * Copyright (c) 2000, 2001, 2002 International Business Machines Corp. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.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);
+}