/**
* 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 Aug 25, 2004
*
* @author Fabio Zadrozny
*/
package org.python.pydev.editor.codecompletion;
import org.eclipse.jface.text.DefaultInformationControl;
import org.eclipse.jface.text.IInformationControl;
import org.eclipse.jface.text.IInformationControlCreator;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.swt.widgets.Shell;
import org.python.copiedfromeclipsesrc.JDTNotAvailableException;
import org.python.pydev.editor.PyInformationPresenter;
import org.python.pydev.shared_ui.content_assist.ContentAssistHackingAroundBugs;
import org.python.pydev.shared_ui.content_assist.DefaultContentAssist;
/**
* @author Fabio Zadrozny
*/
public class PyContentAssistant extends DefaultContentAssist {
public PyContentAssistant() {
super();
enableColoredLabels(true);
ContentAssistHackingAroundBugs.fixAssistBugs(this);
}
/**
* Shows the completions available and sets the lastAutoActivated flag
* and updates the lastActivationCount.
*/
@Override
public String showPossibleCompletions() {
try {
return super.showPossibleCompletions();
} catch (RuntimeException e) {
Throwable e1 = e;
while (e1.getCause() != null) {
e1 = e1.getCause();
}
if (e1 instanceof JDTNotAvailableException) {
return e1.getMessage();
}
throw e;
}
}
public static IInformationControlCreator createInformationControlCreator(ISourceViewer sourceViewer) {
return new IInformationControlCreator() {
@Override
public IInformationControl createInformationControl(Shell parent) {
return new DefaultInformationControl(parent, new PyInformationPresenter());
}
};
}
}