import readline
-import rlcompleter
import os.path
from .config import *
words = origline.split()
if not words:
- self.current_candidates = sorted(self.options.keys())
+ self.current_candidates = sorted([c for c in self.options])
else:
try:
if begin == 0:
- candidates = self.options.keys()
+ candidates = [c for c in self.options]
+ elif words[-1] in self.options[words[0]]:
+ candidates = []
else:
first = words[0]
candidates = self.options[first]
if being_completed:
- self.current_candidates = [ w for w in candidates
- if w.startswith(being_completed) ]
+ self.current_candidates = [w for w in candidates
+ if w.startswith(being_completed)]
else:
self.current_candidates = candidates
- except (KeyError, IndexError), err:
+ except (KeyError, IndexError):
self.current_candidates = []
try:
"""
Read history file
"""
- if os.path.isfile(HISTORY_FILENAME):
- readline.read_history_file(HISTORY_FILENAME)
+ try:
+ readline.read_history_file(c['HISTORY_FILENAME'])
+ except:
+ pass
def save_history():
"""
Save history to file
"""
- readline.write_history_file(HISTORY_FILENAME)
+ try:
+ readline.write_history_file(c['HISTORY_FILENAME'])
+ except:
+ pass
def init_interactive_shell(d):
Init the rainbow shell
"""
readline.set_completer(RainbowCompleter(d).complete)
- readline.parse_and_bind('set editing-mode vi')
- readline.parse_and_bind("set input-meta on")
- readline.parse_and_bind("set convert-meta off")
- readline.parse_and_bind("set output-meta on")
+ readline.parse_and_bind('set skip-completed-text on')
if 'libedit' in readline.__doc__:
readline.parse_and_bind("bind ^I rl_complete")
else:
readline.parse_and_bind("tab: complete")
-