forked from VimPlug/jedi
Add utils.JediRLCompleter
This commit is contained in:
@@ -2,27 +2,20 @@
|
|||||||
Utilities for end-users.
|
Utilities for end-users.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
from rlcompleter import Completer
|
||||||
|
|
||||||
from jedi import Interpreter
|
from jedi import Interpreter
|
||||||
|
|
||||||
|
|
||||||
def readline_complete(text, state):
|
class JediRLCompleter(Completer):
|
||||||
"""
|
|
||||||
Function to be passed to :func:`readline.set_completer`.
|
|
||||||
|
|
||||||
Usage::
|
def attr_matches(self, text):
|
||||||
|
if '(' in text or ')' in text:
|
||||||
import readline
|
completions = Interpreter(text, [self.namespace]).completions()
|
||||||
readline.set_completer(readline_complete)
|
return [text + c.complete for c in completions]
|
||||||
|
else:
|
||||||
"""
|
# NOTE: Completer is old type class
|
||||||
ns = vars(sys.modules['__main__'])
|
return Completer.attr_matches(self, text)
|
||||||
completions = Interpreter(text, [ns]).completions()
|
|
||||||
try:
|
|
||||||
return text + completions[state].complete
|
|
||||||
except IndexError:
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def setup_readline():
|
def setup_readline():
|
||||||
@@ -42,7 +35,7 @@ def setup_readline():
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
print("Module readline not available.")
|
print("Module readline not available.")
|
||||||
else:
|
else:
|
||||||
readline.set_completer(readline_complete)
|
readline.set_completer(JediRLCompleter().complete)
|
||||||
readline.parse_and_bind("tab: complete")
|
readline.parse_and_bind("tab: complete")
|
||||||
|
|
||||||
# Default delimiters minus "()":
|
# Default delimiters minus "()":
|
||||||
|
|||||||
Reference in New Issue
Block a user