##// END OF EJS Templates
Try to elide long completion based on user input....
Try to elide long completion based on user input. If what the user has typed is already in the completion and the completion is really long, try to elide what the user has already typed from the displayed text of the completion. Keep the first 3 and last 3 of what is already present. This will behave weirdly if all the completion have a common prefix as I believe prompt toolkit will insert the common prefix (or do we?). I'll have to check how to consider the common prefix as being typed.

File last commit:

r24010:77b36a9f
r25689:d5704fdc
Show More
test_splitinput.py
38 lines | 1.2 KiB | text/x-python | PythonLexer
/ IPython / core / tests / test_splitinput.py
Thomas Kluyver
Update split_user_input unicode test.
r4769 # coding: utf-8
Thomas Kluyver
Remove unused imports from IPython.core
r11124 import nose.tools as nt
from IPython.core.splitinput import split_user_input, LineInfo
Thomas Kluyver
Reuse common code for inputsplitter and prefilter.
r4746 from IPython.testing import tools as tt
tests = [
('x=1', ('', '', 'x', '=1')),
('?', ('', '?', '', '')),
('??', ('', '??', '', '')),
(' ?', (' ', '?', '', '')),
(' ??', (' ', '??', '', '')),
('??x', ('', '??', 'x', '')),
('?x=1', ('', '?', 'x', '=1')),
('!ls', ('', '!', 'ls', '')),
(' !ls', (' ', '!', 'ls', '')),
('!!ls', ('', '!!', 'ls', '')),
(' !!ls', (' ', '!!', 'ls', '')),
(',ls', ('', ',', 'ls', '')),
(';ls', ('', ';', 'ls', '')),
(' ;ls', (' ', ';', 'ls', '')),
('f.g(x)', ('', '', 'f.g', '(x)')),
('f.g (x)', ('', '', 'f.g', '(x)')),
Fernando Perez
Fix split_user_input to correctly handle %% escape for cell magics.
r6998 ('?%hist1', ('', '?', '%hist1', '')),
('?%%hist2', ('', '?', '%%hist2', '')),
('??%hist3', ('', '??', '%hist3', '')),
('??%%hist4', ('', '??', '%%hist4', '')),
Thomas Kluyver
Reuse common code for inputsplitter and prefilter.
r4746 ('?x*', ('', '?', 'x*', '')),
]
Srinivas Reddy Thatiparthy
Remove PY3 variable
r23108 tests.append((u"Pérez Fernando", (u'', u'', u'Pérez', u'Fernando')))
Thomas Kluyver
Reuse common code for inputsplitter and prefilter.
r4746
def test_split_user_input():
return tt.check_pairs(split_user_input, tests)
Thomas Kluyver
Remove unused imports from IPython.core
r11124
def test_LineInfo():
"""Simple test for LineInfo construction and str()"""
linfo = LineInfo(' %cd /home')
nt.assert_equal(str(linfo), 'LineInfo [ |%|cd|/home]')