Show More
@@ -672,15 +672,18 b' def transform_ipy_prompt(line):' | |||||
672 | return line |
|
672 | return line | |
673 |
|
673 | |||
674 |
|
674 | |||
675 | def _make_help_call(target, esc, lspace): |
|
675 | def _make_help_call(target, esc, lspace, next_input=None): | |
676 | """Prepares a pinfo(2)/psearch call from a target name and the escape |
|
676 | """Prepares a pinfo(2)/psearch call from a target name and the escape | |
677 | (i.e. ? or ??)""" |
|
677 | (i.e. ? or ??)""" | |
678 | method = 'pinfo2' if esc == '??' \ |
|
678 | method = 'pinfo2' if esc == '??' \ | |
679 | else 'psearch' if '*' in target \ |
|
679 | else 'psearch' if '*' in target \ | |
680 | else 'pinfo' |
|
680 | else 'pinfo' | |
681 |
|
681 | |||
682 | tpl = '%sget_ipython().magic(u"%s %s")' |
|
682 | if next_input: | |
683 | return tpl % (lspace, method, target) |
|
683 | tpl = '%sget_ipython().magic(u"%s %s", next_input=%s)' | |
|
684 | return tpl % (lspace, method, target, make_quoted_expr(next_input)) | |||
|
685 | else: | |||
|
686 | return '%sget_ipython().magic(u"%s %s")' % (lspace, method, target) | |||
684 |
|
687 | |||
685 | _initial_space_re = re.compile(r'\s*') |
|
688 | _initial_space_re = re.compile(r'\s*') | |
686 | _help_end_re = re.compile(r"""(%? |
|
689 | _help_end_re = re.compile(r"""(%? | |
@@ -700,11 +703,9 b' def transform_help_end(line):' | |||||
700 | newline = _make_help_call(target, esc, lspace) |
|
703 | newline = _make_help_call(target, esc, lspace) | |
701 |
|
704 | |||
702 | # If we're mid-command, put it back on the next prompt for the user. |
|
705 | # If we're mid-command, put it back on the next prompt for the user. | |
703 |
if line.strip() != m.group(0) |
|
706 | next_input = line.rstrip('?') if line.strip() != m.group(0) else None | |
704 | newline += "; get_ipython().set_next_input(%s)" % \ |
|
|||
705 | make_quoted_expr(line.rstrip('?')) |
|
|||
706 |
|
707 | |||
707 | return newline |
|
708 | return _make_help_call(target, esc, lspace, next_input) | |
708 |
|
709 | |||
709 |
|
710 | |||
710 | class EscapedTransformer(object): |
|
711 | class EscapedTransformer(object): |
@@ -1703,7 +1703,8 b' class InteractiveShell(SingletonConfigurable, Magic):' | |||||
1703 | [D:\ipython]|1> _ip.set_next_input("Hello Word") |
|
1703 | [D:\ipython]|1> _ip.set_next_input("Hello Word") | |
1704 | [D:\ipython]|2> Hello Word_ # cursor is here |
|
1704 | [D:\ipython]|2> Hello Word_ # cursor is here | |
1705 | """ |
|
1705 | """ | |
1706 |
|
1706 | if isinstance(s, unicode): | ||
|
1707 | s = s.encode(self.stdin_encoding) | |||
1707 | self.rl_next_input = s |
|
1708 | self.rl_next_input = s | |
1708 |
|
1709 | |||
1709 | # Maybe move this to the terminal subclass? |
|
1710 | # Maybe move this to the terminal subclass? | |
@@ -1841,7 +1842,7 b' class InteractiveShell(SingletonConfigurable, Magic):' | |||||
1841 | from . import history |
|
1842 | from . import history | |
1842 | history.init_ipython(self) |
|
1843 | history.init_ipython(self) | |
1843 |
|
1844 | |||
1844 | def magic(self,arg_s): |
|
1845 | def magic(self, arg_s, next_input=None): | |
1845 | """Call a magic function by name. |
|
1846 | """Call a magic function by name. | |
1846 |
|
1847 | |||
1847 | Input: a string containing the name of the magic function to call and |
|
1848 | Input: a string containing the name of the magic function to call and | |
@@ -1858,6 +1859,11 b' class InteractiveShell(SingletonConfigurable, Magic):' | |||||
1858 | valid Python code you can type at the interpreter, including loops and |
|
1859 | valid Python code you can type at the interpreter, including loops and | |
1859 | compound statements. |
|
1860 | compound statements. | |
1860 | """ |
|
1861 | """ | |
|
1862 | # Allow setting the next input - this is used if the user does `a=abs?`. | |||
|
1863 | # We do this first so that magic functions can override it. | |||
|
1864 | if next_input: | |||
|
1865 | self.set_next_input(next_input) | |||
|
1866 | ||||
1861 | args = arg_s.split(' ',1) |
|
1867 | args = arg_s.split(' ',1) | |
1862 | magic_name = args[0] |
|
1868 | magic_name = args[0] | |
1863 | magic_name = magic_name.lstrip(prefilter.ESC_MAGIC) |
|
1869 | magic_name = magic_name.lstrip(prefilter.ESC_MAGIC) |
@@ -454,9 +454,9 b' syntax = \\' | |||||
454 | ('%hist?', 'get_ipython().magic(u"pinfo %hist")'), |
|
454 | ('%hist?', 'get_ipython().magic(u"pinfo %hist")'), | |
455 | ('f*?', 'get_ipython().magic(u"psearch f*")'), |
|
455 | ('f*?', 'get_ipython().magic(u"psearch f*")'), | |
456 | ('ax.*aspe*?', 'get_ipython().magic(u"psearch ax.*aspe*")'), |
|
456 | ('ax.*aspe*?', 'get_ipython().magic(u"psearch ax.*aspe*")'), | |
457 |
('a = abc?', 'get_ipython().magic(u"pinfo abc" |
|
457 | ('a = abc?', 'get_ipython().magic(u"pinfo abc", next_input=u"a = abc")'), | |
458 |
('a = abc.qe??', 'get_ipython().magic(u"pinfo2 abc.qe" |
|
458 | ('a = abc.qe??', 'get_ipython().magic(u"pinfo2 abc.qe", next_input=u"a = abc.qe")'), | |
459 |
('a = *.items?', 'get_ipython().magic(u"psearch *.items" |
|
459 | ('a = *.items?', 'get_ipython().magic(u"psearch *.items", next_input=u"a = *.items")'), | |
460 | ('a*2 #comment?', 'a*2 #comment?'), |
|
460 | ('a*2 #comment?', 'a*2 #comment?'), | |
461 | ], |
|
461 | ], | |
462 |
|
462 |
General Comments 0
You need to be logged in to leave comments.
Login now