PY-2189 Do not perform autopopup handler in case of REPL console

This commit is contained in:
Oleg Shpynov
2010-10-26 15:16:33 +04:00
parent 72a9982cd9
commit 4e1735abdd
3 changed files with 28 additions and 0 deletions
@@ -150,6 +150,8 @@
<defaultLiveTemplatesProvider implementation="com.jetbrains.python.codeInsight.PyDefaultLiveTemplatesProvider"/>
<completion.contributor language="Python" implementationClass="com.jetbrains.python.codeInsight.PyClassNameCompletionContributor"/>
<typedHandler implementation="com.jetbrains.python.console.PydevCompletionAutopopupBlockingHandler" id="pydevBlockAutoPopup"
order="before completionAutoPopup"/>
<referencesSearch implementation="com.jetbrains.python.psi.search.PyInitReferenceSearchExecutor"/>
<referencesSearch implementation="com.jetbrains.python.psi.search.PyStringReferenceSearch"/>
@@ -0,0 +1,24 @@
package com.jetbrains.python.console;
import com.intellij.codeInsight.editorActions.TypedHandlerDelegate;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
import com.intellij.psi.PsiFile;
/**
* @author oleg
* @date 10/26/10
*/
public class PydevCompletionAutopopupBlockingHandler extends TypedHandlerDelegate {
public static final Key<Object> REPL_KEY = new Key<Object>("python.repl.console.editor");
@Override
public Result checkAutoPopup(final char charTyped, final Project project, final Editor editor, final PsiFile file) {
if (editor.getUserData(REPL_KEY) != null){
return Result.DEFAULT;
}
return Result.CONTINUE;
}
}
@@ -11,6 +11,8 @@ import com.jetbrains.python.console.pydev.PydevConsoleCommunication;
public class PydevLanguageConsole extends LanguageConsoleImpl {
public PydevLanguageConsole(final Project project, final String title) {
super(project, title, PythonLanguage.getInstance(), false);
// Mark editor as console one, to prevent autopopup completion
getConsoleEditor().putUserData(PydevCompletionAutopopupBlockingHandler.REPL_KEY, new Object());
}
public void setPydevConsoleCommunication(final PydevConsoleCommunication communication) {