More test cases for position segment

This commit is contained in:
EinfachToll 2014-01-23 09:23:53 +01:00
parent 90132fe386
commit 10cd7b78f0
2 changed files with 15 additions and 5 deletions

View File

@ -505,9 +505,17 @@ class TestVim(TestCase):
pl = Pl()
segment_info = vim_module._get_segment_info()
try:
segment_info['buffer'][:] = ['1']
vim_module._set_cursor(1, 0)
self.assertEqual(vim.position(pl=pl, segment_info=segment_info), 'All')
segment_info['buffer'][0:-1] = [str(i) for i in range(99)]
vim_module._set_cursor(49, 0)
self.assertEqual(vim.position(pl=pl, segment_info=segment_info), '50%')
self.assertEqual(vim.position(pl=pl, segment_info=segment_info, gradient=True),
[{'contents': '50%', 'highlight_group': ['position_gradient', 'position'], 'gradient_level': 50.0}])
vim_module._set_cursor(0, 0)
self.assertEqual(vim.position(pl=pl, segment_info=segment_info), 'Top')
vim_module._set_cursor(97, 0)
self.assertEqual(vim.position(pl=pl, segment_info=segment_info, position_strings={'top':'Comienzo', 'bottom':'Final', 'all':'Todo'}), 'Final')
segment_info['buffer'][0:-1] = [str(i) for i in range(2)]
vim_module._set_cursor(0, 0)
self.assertEqual(vim.position(pl=pl, segment_info=segment_info, position_strings={'top':'Comienzo', 'bottom':'Final', 'all':'Todo'}), 'Todo')
self.assertEqual(vim.position(pl=pl, segment_info=segment_info, gradient=True),
[{'contents': 'All', 'highlight_group': ['position_gradient', 'position'], 'gradient_level': 0.0}])

View File

@ -304,10 +304,12 @@ def _emul_line2byte(line):
@_vim
def _emul_line(expr):
cursorline = windows[_window - 1].cursor[0] + 1
numlines = len(_buf_lines[_buffer()])
if expr == 'w0':
return 1
return max(cursorline-5, 1)
if expr == 'w$':
return 1
return min(cursorline+5, numlines)
raise NotImplementedError