Fixed #26289 -- Enabled shell tab completion on systems using libedit.

This commit is contained in:
Saúl Ibarra Corretgé 2016-02-27 18:13:01 +01:00 committed by Tim Graham
parent 839a955d08
commit 6c33e73333
2 changed files with 10 additions and 1 deletions

View File

@ -69,7 +69,13 @@ class Command(BaseCommand):
# we already know 'readline' was imported successfully.
import rlcompleter
readline.set_completer(rlcompleter.Completer(imported_objects).complete)
readline.parse_and_bind("tab:complete")
# Enable tab completion on systems using libedit (e.g. Mac OSX).
# These lines are copied from Lib/site.py on Python 3.4.
readline_doc = getattr(readline, '__doc__', '')
if readline_doc is not None and 'libedit' in readline_doc:
readline.parse_and_bind("bind ^I rl_complete")
else:
readline.parse_and_bind("tab:complete")
# We want to honor both $PYTHONSTARTUP and .pythonrc.py, so follow system
# conventions and get $PYTHONSTARTUP first then .pythonrc.py.

View File

@ -285,6 +285,9 @@ Management Commands
* To assist with testing, :func:`~django.core.management.call_command` now
accepts a command object as the first argument.
* The :djadmin:`shell` command supports tab completion on systems using
``libedit``, e.g. Mac OSX.
Migrations
~~~~~~~~~~