Show More
@@ -67,9 +67,9 b' Experimental' | |||
|
67 | 67 | |
|
68 | 68 | Starting with IPython 6.0, this module can make use of the Jedi library to |
|
69 | 69 | generate completions both using static analysis of the code, and dynamically |
|
70 | inspecting multiple namespaces. The APIs attached to this new mechanism is | |
|
71 | unstable and will raise unless use in an :any:`provisionalcompleter` context | |
|
72 | manager. | |
|
70 | inspecting multiple namespaces. Jedi is an autocompletion and static analysis | |
|
71 | for Python. The APIs attached to this new mechanism is unstable and will | |
|
72 | raise unless use in an :any:`provisionalcompleter` context manager. | |
|
73 | 73 | |
|
74 | 74 | You will find that the following are experimental: |
|
75 | 75 | |
@@ -84,7 +84,7 b' You will find that the following are experimental:' | |||
|
84 | 84 | |
|
85 | 85 | We welcome any feedback on these new API, and we also encourage you to try this |
|
86 | 86 | module in debug mode (start IPython with ``--Completer.debug=True``) in order |
|
87 |
to have extra logging information i |
|
|
87 | to have extra logging information if :any:`jedi` is crashing, or if current | |
|
88 | 88 | IPython completer pending deprecations are returning results not yet handled |
|
89 | 89 | by :any:`jedi` |
|
90 | 90 | |
@@ -168,6 +168,12 b' MATCHES_LIMIT = 500' | |||
|
168 | 168 | |
|
169 | 169 | _deprecation_readline_sentinel = object() |
|
170 | 170 | |
|
171 | names = [] | |
|
172 | for c in range(0,0x10FFFF + 1): | |
|
173 | try: | |
|
174 | names.append(unicodedata.name(chr(c))) | |
|
175 | except ValueError: | |
|
176 | pass | |
|
171 | 177 | |
|
172 | 178 | class ProvisionalCompleterWarning(FutureWarning): |
|
173 | 179 | """ |
@@ -1989,7 +1995,8 b' class IPCompleter(Completer):' | |||
|
1989 | 1995 | return latex_text, latex_matches, ['latex_matches']*len(latex_matches), () |
|
1990 | 1996 | name_text = '' |
|
1991 | 1997 | name_matches = [] |
|
1992 | for meth in (self.unicode_name_matches, back_latex_name_matches, back_unicode_name_matches): | |
|
1998 | # need to add self.fwd_unicode_match() function here when done | |
|
1999 | for meth in (self.unicode_name_matches, back_latex_name_matches, back_unicode_name_matches, self.fwd_unicode_match): | |
|
1993 | 2000 | name_text, name_matches = meth(base_text) |
|
1994 | 2001 | if name_text: |
|
1995 | 2002 | return name_text, name_matches[:MATCHES_LIMIT], \ |
@@ -2064,3 +2071,19 b' class IPCompleter(Completer):' | |||
|
2064 | 2071 | self.matches = _matches |
|
2065 | 2072 | |
|
2066 | 2073 | return text, _matches, origins, completions |
|
2074 | ||
|
2075 | def fwd_unicode_match(self, text:str) -> Tuple[str, list]: | |
|
2076 | # initial code based on latex_matches() method | |
|
2077 | slashpos = text.rfind('\\') | |
|
2078 | # if text starts with slash | |
|
2079 | if slashpos > -1: | |
|
2080 | s = text[slashpos+1:] | |
|
2081 | candidates = [x for x in names if x.startswith(s)] | |
|
2082 | if candidates: | |
|
2083 | return s, [x for x in names if x.startswith(s)] | |
|
2084 | else: | |
|
2085 | return '', () | |
|
2086 | ||
|
2087 | # if text does not start with slash | |
|
2088 | else: | |
|
2089 | return u'', () |
@@ -31,9 +31,12 b' def test_debug_magic_passes_through_generators():' | |||
|
31 | 31 | env = os.environ.copy() |
|
32 | 32 | child = pexpect.spawn(sys.executable, ['-m', 'IPython', '--colors=nocolor', '--simple-prompt'], |
|
33 | 33 | env=env) |
|
34 |
child.timeout = |
|
|
34 | child.timeout = 15 | |
|
35 | 35 | |
|
36 | 36 | child.expect(in_prompt) |
|
37 | ||
|
38 | child.timeout = 2 | |
|
39 | ||
|
37 | 40 | child.sendline("def f(x):") |
|
38 | 41 | child.sendline(" raise Exception") |
|
39 | 42 | child.sendline("") |
General Comments 0
You need to be logged in to leave comments.
Login now