From 05ad8c6608e29771b62781a38a96d2110ed3d0c8 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Mon, 1 Aug 2016 23:59:49 +0200 Subject: [PATCH] Start working on param autocompletion for the REPL. --- jedi/evaluate/compiled/mixed.py | 8 ++++---- test/test_api/test_interpreter.py | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/jedi/evaluate/compiled/mixed.py b/jedi/evaluate/compiled/mixed.py index 96bd33bc..69119f18 100644 --- a/jedi/evaluate/compiled/mixed.py +++ b/jedi/evaluate/compiled/mixed.py @@ -118,11 +118,11 @@ def find_syntax_node_name(evaluator, python_object): # be something like ``email.utils``). return module - try: - names = module.used_names[python_object.__name__] - except NameError: - return None + name_str = python_object.__name__ + if name_str == '': + return None # It's too hard to find lambdas. + names = module.used_names[name_str] names = [n for n in names if n.is_definition()] try: diff --git a/test/test_api/test_interpreter.py b/test/test_api/test_interpreter.py index 7c82ea58..be3f12d5 100644 --- a/test/test_api/test_interpreter.py +++ b/test/test_api/test_interpreter.py @@ -148,3 +148,12 @@ class TestInterpreterAPI(TestCase): foo = Foo() self.check_interpreter_complete('foo.bar', locals(), ['bar']) self.check_interpreter_complete('foo.bar.baz', locals(), []) + + def test_param_completion(self): + def foo(bar): + pass + + lambd = lambda x: 3 + + self.check_interpreter_complete('foo(bar', locals(), ['bar']) + self.check_interpreter_complete('lambd(x', locals(), ['x'])