mirror of
https://github.com/davidhalter/jedi.git
synced 2026-03-05 02:54:16 +08:00
Add simple PYTHONSTARTUP file
This commit is contained in:
41
jedi/utils.py
Normal file
41
jedi/utils.py
Normal file
@@ -0,0 +1,41 @@
|
||||
"""
|
||||
Utilities for end-users.
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
from jedi import Interpreter
|
||||
|
||||
|
||||
def readline_complete(text, state):
|
||||
"""
|
||||
Function to be passed to :func:`readline.set_completer`.
|
||||
|
||||
Usage::
|
||||
|
||||
import readline
|
||||
readline.set_completer(readline_complete)
|
||||
|
||||
"""
|
||||
ns = vars(sys.modules['__main__'])
|
||||
completions = Interpreter(text, [ns]).completions()
|
||||
try:
|
||||
return text + completions[state].complete
|
||||
except IndexError:
|
||||
return None
|
||||
|
||||
|
||||
def setup_readline():
|
||||
"""
|
||||
Install Jedi completer to :mod:`readline`.
|
||||
"""
|
||||
try:
|
||||
import readline
|
||||
except ImportError:
|
||||
print("Module readline not available.")
|
||||
else:
|
||||
readline.set_completer(readline_complete)
|
||||
readline.parse_and_bind("tab: complete")
|
||||
|
||||
# Default delimiters minus "()":
|
||||
readline.set_completer_delims(' \t\n`~!@#$%^&*-=+[{]}\\|;:\'",<>/?')
|
||||
Reference in New Issue
Block a user