]> granicus.if.org Git - python/commitdiff
Issue #25209: rlcomplete now can add a space or a colon after completed keyword.
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 27 Sep 2015 10:26:03 +0000 (13:26 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Sun, 27 Sep 2015 10:26:03 +0000 (13:26 +0300)
Lib/rlcompleter.py
Lib/test/test_rlcompleter.py
Misc/NEWS

index d517c0e2d39d24270a36c89ae5603d33b5c80dc4..568cf3680fd61fefadf4373de3d43eb79ec7e1a3 100644 (file)
@@ -106,6 +106,12 @@ class Completer:
         n = len(text)
         for word in keyword.kwlist:
             if word[:n] == text:
+                if word in {'finally', 'try'}:
+                    word = word + ':'
+                elif word not in {'False', 'None', 'True',
+                                  'break', 'continue', 'pass',
+                                  'else'}:
+                    word = word + ' '
                 matches.append(word)
         for nspace in [builtins.__dict__, self.namespace]:
             for word, val in nspace.items():
index d37b620b7a45f6fcd6ba999c9571a54958451a68..11a83059e0a06a11749cc7f2c872e972ee5ca916 100644 (file)
@@ -67,10 +67,15 @@ class TestRlcompleter(unittest.TestCase):
     def test_complete(self):
         completer = rlcompleter.Completer()
         self.assertEqual(completer.complete('', 0), '\t')
-        self.assertEqual(completer.complete('a', 0), 'and')
-        self.assertEqual(completer.complete('a', 1), 'as')
-        self.assertEqual(completer.complete('as', 2), 'assert')
-        self.assertEqual(completer.complete('an', 0), 'and')
+        self.assertEqual(completer.complete('a', 0), 'and ')
+        self.assertEqual(completer.complete('a', 1), 'as ')
+        self.assertEqual(completer.complete('as', 2), 'assert ')
+        self.assertEqual(completer.complete('an', 0), 'and ')
+        self.assertEqual(completer.complete('pa', 0), 'pass')
+        self.assertEqual(completer.complete('Fa', 0), 'False')
+        self.assertEqual(completer.complete('el', 0), 'elif ')
+        self.assertEqual(completer.complete('el', 1), 'else')
+        self.assertEqual(completer.complete('tr', 0), 'try:')
 
 if __name__ == '__main__':
     unittest.main()
index 38eb843f718d0c24c134d6e542ee5cccede6ad59..8d4549a77c686369523f5436740ae78b345a88dd 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #25209: rlcomplete now can add a space or a colon after completed keyword.
+
 - Issue #22241: timezone.utc name is now plain 'UTC', not 'UTC-00:00'.
 
 - Issue #23517: fromtimestamp() and utcfromtimestamp() methods of