package org.python.pydev.debug.newconsole;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IInformationControlCreator;
import org.eclipse.jface.text.ITextHover;
import org.eclipse.jface.text.contentassist.IContentAssistant;
import org.eclipse.jface.text.quickassist.IQuickAssistAssistant;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
import org.python.pydev.editor.autoedit.DefaultIndentPrefs;
import org.python.pydev.editor.codecompletion.PyContentAssistant;
/**
* Configuration for the source viewer.
*/
public class PydevScriptConsoleSourceViewerConfiguration extends SourceViewerConfiguration {
public static final String PARTITION_TYPE = IDocument.DEFAULT_CONTENT_TYPE;
private ITextHover hover;
private PyContentAssistant contentAssist;
private IQuickAssistAssistant quickAssist;
public PydevScriptConsoleSourceViewerConfiguration(ITextHover hover, PyContentAssistant contentAssist,
IQuickAssistAssistant quickAssist) {
this.hover = hover;
this.contentAssist = contentAssist;
this.quickAssist = quickAssist;
}
public int getTabWidth(ISourceViewer sourceViewer) {
return DefaultIndentPrefs.getStaticTabWidth();
}
public ITextHover getTextHover(ISourceViewer sv, String contentType) {
return hover;
}
public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
return new String[] { PARTITION_TYPE };
}
@Override
public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
contentAssist.setInformationControlCreator(this.getInformationControlCreator(sourceViewer));
return contentAssist;
}
@Override
public IQuickAssistAssistant getQuickAssistAssistant(ISourceViewer sourceViewer) {
quickAssist.setInformationControlCreator(this.getInformationControlCreator(sourceViewer));
return quickAssist;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.text.source.SourceViewerConfiguration#getInformationControlCreator(org.eclipse.jface.text.source.ISourceViewer)
*/
public IInformationControlCreator getInformationControlCreator(ISourceViewer sourceViewer) {
return PyContentAssistant.createInformationControlCreator(sourceViewer);
}
}