blob: 241c4c5e731bd1976e9a6da25d417b814101cc12 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2008 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.internal.debug.ui.contentassist;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.IType;
/**
* Provides a context for context assist in the Java debugger.
*
* @since 3.2
*/
public interface IJavaDebugContentAssistContext {
/**
* Returns the type in which to perform completions.
*
* @return type in which to perform completions
* @throws CoreException if a type cannot be resolved
*/
public IType getType() throws CoreException;
/**
* Returns the position within this context's type's source where the snippet
* on which completions are being performed is inserted. This position must not
* be in comments. Returns -1, if the position is not known.
*
* @return position within source where completions are performed or -1
* @throws CoreException if an exception occurs determining the position
*/
public int getInsertionPosition() throws CoreException;
/**
* Returns an array (possibly empty) of local variable information.
* If the result is not empty, two arrays are returned. The first
* array contains the names of local variables visible at the current
* scope, and the second array contains the associated fully qualified
* type names of the local variables.
* <p>
* Local variable information can be optionally be provided when an insertion
* position is unknown, but local variable information is known.
* </p>
*
* @return arrays of variable names and fully qualified type names of local variables
* visible at the current scope
* @throws CoreException if an exception occurs determining local variable
* information
*/
public String[][] getLocalVariables() throws CoreException;
/**
* Returns whether the current scope is in a static context.
*
* @return whether the current scope is in a static context
* @throws CoreException if an exception occurs while determining scope
*/
public boolean isStatic() throws CoreException;
/**
* Returns the snippet on which code completion is should be performed, given the
* snippet that is currently being edited. Allows implementations to perform any
* special pre-processing on the snippet.
*
* @param snippet the snippet in source viewer on which completion is being performed
* @return the snippet on which to perform code completion
* @throws CoreException
*/
public String getSnippet(String snippet) throws CoreException;
}