Fix zero-indexed column numbering

We accidentally changed column numbering from one-indexed to
zero-indexed.
This commit is contained in:
Ian Cordasco 2016-07-26 19:15:08 -05:00
parent ec6165e9d8
commit 6eca38f2f2
No known key found for this signature in database
GPG key ID: 656D3395E4A9791A
5 changed files with 11 additions and 4 deletions

View file

@ -3,6 +3,9 @@
- Fix local config file discovery. (See also `GitLab#181`_)
- Fix indexing of column numbers. We accidentally were starting column indices
at 0 instead of 1.
.. links
.. _GitLab#181:

View file

@ -139,7 +139,9 @@ class BaseFormatter(object):
if not self.options.show_source or error.physical_line is None:
return ''
pointer = (' ' * error.column_number) + '^'
# Because column numbers are 1-indexed, we need to remove one to get
# the proper number of space characters.
pointer = (' ' * (error.column_number - 1)) + '^'
# Physical lines have a newline at the end, no need to add an extra
# one
return error.physical_line + pointer

View file

@ -258,7 +258,9 @@ class StyleGuide(object):
:rtype:
int
"""
error = Error(code, filename, line_number, column_number, text,
# NOTE(sigmavirus24): Apparently we're provided with 0-indexed column
# numbers so we have to offset that here.
error = Error(code, filename, line_number, column_number + 1, text,
physical_line)
error_is_selected = (self.should_report_error(error.code) is
Decision.Selected)

View file

@ -73,7 +73,7 @@ def test_show_source_updates_physical_line_appropriately(line, column):
error = style_guide.Error('A000', 'file.py', 1, column, 'error', line)
output = formatter.show_source(error)
_, pointer = output.rsplit('\n', 1)
assert pointer.count(' ') == column
assert pointer.count(' ') == (column - 1)
def test_write_uses_an_output_file():

View file

@ -176,7 +176,7 @@ def test_handle_error_notifies_listeners(select_list, ignore_list, error_code):
formatter=formatter)
with mock.patch('linecache.getline', return_value=''):
guide.handle_error(error_code, 'stdin', 1, 1, 'error found')
guide.handle_error(error_code, 'stdin', 1, 0, 'error found')
error = style_guide.Error(error_code, 'stdin', 1, 1, 'error found',
None)
listener_trie.notify.assert_called_once_with(error_code, error)