From c25e0b57785938b43077220a4329fe2fa4213ce3 Mon Sep 17 00:00:00 2001 From: Elizaveta Shashkova Date: Thu, 5 Jul 2018 19:20:31 +0300 Subject: [PATCH] Disable IPython completion for speed (PY-30222) and correct types showing (PY-30611) IPython completion works very slow in some cases and becomes useless. It's better to make completion less detailed, but --- .../pydev/_pydev_bundle/_pydev_completer.py | 9 +++------ .../pydev/_pydev_bundle/pydev_console_utils.py | 12 ++++++++++++ .../pydev/_pydev_bundle/pydev_ipython_console.py | 3 --- python/helpers/pydev/pydevconsole.py | 15 --------------- .../console/completion/PydevConsoleReference.java | 2 +- .../jetbrains/python/debugger/PyDebugProcess.java | 2 -- 6 files changed, 16 insertions(+), 27 deletions(-) diff --git a/python/helpers/pydev/_pydev_bundle/_pydev_completer.py b/python/helpers/pydev/_pydev_bundle/_pydev_completer.py index 9d19b9a7c420..b669be333669 100644 --- a/python/helpers/pydev/_pydev_bundle/_pydev_completer.py +++ b/python/helpers/pydev/_pydev_bundle/_pydev_completer.py @@ -170,12 +170,9 @@ def generate_completions_as_xml(frame, act_tok): updated_globals.update(frame.f_globals) updated_globals.update(frame.f_locals) #locals later because it has precedence over the actual globals - if pydevconsole.IPYTHON: - completions = pydevconsole.get_completions(act_tok, act_tok, updated_globals, frame.f_locals) - else: - completer = Completer(updated_globals, None) - #list(tuple(name, descr, parameters, type)) - completions = completer.complete(act_tok) + completer = Completer(updated_globals, None) + #list(tuple(name, descr, parameters, type)) + completions = completer.complete(act_tok) valid_xml = pydevd_xml.make_valid_xml_value quote = pydevd_xml.quote diff --git a/python/helpers/pydev/_pydev_bundle/pydev_console_utils.py b/python/helpers/pydev/_pydev_bundle/pydev_console_utils.py index 2928b0404e5a..8938d09bdc70 100644 --- a/python/helpers/pydev/_pydev_bundle/pydev_console_utils.py +++ b/python/helpers/pydev/_pydev_bundle/pydev_console_utils.py @@ -510,6 +510,18 @@ class BaseInterpreterInterface: xml.write("") return xml.getvalue() + def getCompletions(self, text, act_tok): + try: + from _pydev_bundle._pydev_completer import Completer + + completer = Completer(self.get_namespace(), None) + return completer.complete(act_tok) + except: + import traceback + + traceback.print_exc() + return [] + def loadFullValue(self, seq, scope_attrs): """ Evaluate full value for async Console variables in a separate thread and send results to IDE side diff --git a/python/helpers/pydev/_pydev_bundle/pydev_ipython_console.py b/python/helpers/pydev/_pydev_bundle/pydev_ipython_console.py index 1f7b60af7364..aedb60ebfa0a 100644 --- a/python/helpers/pydev/_pydev_bundle/pydev_ipython_console.py +++ b/python/helpers/pydev/_pydev_bundle/pydev_ipython_console.py @@ -47,9 +47,6 @@ class InterpreterInterface(BaseInterpreterInterface): def get_namespace(self): return self.interpreter.get_namespace() - def getCompletions(self, text, act_tok): - return self.interpreter.getCompletions(text, act_tok) - def close(self): sys.exit(0) diff --git a/python/helpers/pydev/pydevconsole.py b/python/helpers/pydev/pydevconsole.py index 1b52610dfdff..115e9d6d8949 100644 --- a/python/helpers/pydev/pydevconsole.py +++ b/python/helpers/pydev/pydevconsole.py @@ -97,29 +97,14 @@ class InterpreterInterface(BaseInterpreterInterface): self.interpreter = InteractiveConsole(self.namespace) self._input_error_printed = False - def do_add_exec(self, codeFragment): command = Command(self.interpreter, codeFragment) command.run() return command.more - def get_namespace(self): return self.namespace - - def getCompletions(self, text, act_tok): - try: - from _pydev_bundle._pydev_completer import Completer - - completer = Completer(self.namespace, None) - return completer.complete(act_tok) - except: - import traceback - - traceback.print_exc() - return [] - def close(self): sys.exit(0) diff --git a/python/src/com/jetbrains/python/console/completion/PydevConsoleReference.java b/python/src/com/jetbrains/python/console/completion/PydevConsoleReference.java index 735e225fe044..7e03569c0f1a 100644 --- a/python/src/com/jetbrains/python/console/completion/PydevConsoleReference.java +++ b/python/src/com/jetbrains/python/console/completion/PydevConsoleReference.java @@ -132,7 +132,7 @@ public class PydevConsoleReference extends PsiPolyVariantReferenceBase() { @Override public void handleInsert(InsertionContext context, LookupElement item) { diff --git a/python/src/com/jetbrains/python/debugger/PyDebugProcess.java b/python/src/com/jetbrains/python/debugger/PyDebugProcess.java index 9bafad5ea57c..4623f24fd3a4 100644 --- a/python/src/com/jetbrains/python/debugger/PyDebugProcess.java +++ b/python/src/com/jetbrains/python/debugger/PyDebugProcess.java @@ -1016,7 +1016,6 @@ public class PyDebugProcess extends XDebugProcess implements IPyDebugProcess, Pr @NotNull public List getCompletions(String prefix) throws Exception { if (isConnected()) { - dropFrameCaches(); final PyStackFrame frame = currentFrame(); return myDebugger.getCompletions(frame.getThreadId(), frame.getFrameId(), prefix); } @@ -1026,7 +1025,6 @@ public class PyDebugProcess extends XDebugProcess implements IPyDebugProcess, Pr @NotNull public String getDescription(String prefix) throws Exception { if (isConnected()) { - dropFrameCaches(); final PyStackFrame frame = currentFrame(); return myDebugger.getDescription(frame.getThreadId(), frame.getFrameId(), prefix); }