/**
* Copyright (c) 2005-2013 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
/*
* Created on Apr 12, 2005
*
* @author Fabio Zadrozny
*/
package org.python.pydev.editor.correctionassist.heuristics;
import java.io.File;
import java.util.List;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.python.pydev.core.IPythonNature;
import org.python.pydev.core.MisconfigurationException;
import org.python.pydev.core.docutils.PySelection;
import org.python.pydev.editor.PyEdit;
import org.python.pydev.shared_ui.ImageCache;
/**
* @author Fabio Zadrozny
*/
public interface IAssistProps {
/**
* Gets the completion proposals related to the common assists
*
* @note This method is only called if isValid returned true (and isValid is ALWAYS called before it).
*
* @param ps this is the selection
* @param imageCache this is a cache for images (from the pydev plugin)
* @param f this is the file related to the editor
* @param nature this is the nature related to this file
* @param edit this is the edit where the request took place
* @param offset this is the offset of the edit
*
* @return a list of completions with proposals to fix things
* @throws BadLocationException
* @throws MisconfigurationException
*/
List<ICompletionProposal> getProps(PySelection ps, ImageCache imageCache, File f, IPythonNature nature,
PyEdit edit, int offset) throws BadLocationException, MisconfigurationException;
/**
* Gets whether this assist proposal is valid to be applied at the current line
*
* @param ps the current selection
* @param sel is the current string without any comments
* @param edit this is the edit where the request took place
* @param offset this is the offset of the edit
*
* @return whether the assist can be applied at the current line
*/
boolean isValid(PySelection ps, String sel, PyEdit edit, int offset);
}