Author: Armin Rigo <[email protected]>
Branch:
Changeset: r75825:2b2163d65ee4
Date: 2015-02-11 10:54 +0100
http://bitbucket.org/pypy/pypy/changeset/2b2163d65ee4/
Log: issue #1978 resolved
diff --git a/lib_pypy/pyrepl/readline.py b/lib_pypy/pyrepl/readline.py
--- a/lib_pypy/pyrepl/readline.py
+++ b/lib_pypy/pyrepl/readline.py
@@ -73,6 +73,7 @@
assume_immutable_completions = False
use_brackets = False
sort_in_column = True
+ tab_insert_spaces_if_stem_is_empty = False
def error(self, msg="none"):
pass # don't show error messages by default
@@ -86,6 +87,13 @@
return ''.join(b[p+1:self.pos])
def get_completions(self, stem):
+ if len(stem) == 0 and self.tab_insert_spaces_if_stem_is_empty:
+ b = self.buffer
+ p = self.pos
+ while p > 0 and b[p - 1] != '\n':
+ p -= 1
+ num_spaces = 4 - ((self.pos - p) % 4)
+ return [' ' * num_spaces]
result = []
function = self.config.readline_completer
if function is not None:
@@ -204,14 +212,15 @@
boolean value is true.
"""
reader = self.get_reader()
- saved = reader.more_lines
+ saved = reader.more_lines, reader.tab_insert_spaces_if_stem_is_empty
try:
reader.more_lines = more_lines
reader.ps1 = reader.ps2 = ps1
reader.ps3 = reader.ps4 = ps2
+ reader.tab_insert_spaces_if_stem_is_empty = True
return reader.readline(returns_unicode=returns_unicode)
finally:
- reader.more_lines = saved
+ reader.more_lines, reader.tab_insert_spaces_if_stem_is_empty =
saved
def parse_and_bind(self, string):
pass # XXX we don't support parsing GNU-readline-style init files
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit