Skip to content

Commit

Permalink
source.Range.column_range: clamp to first line.
Browse files Browse the repository at this point in the history
whitequark committed Sep 2, 2015
1 parent d2e0d1b commit 3f3ae13
Showing 2 changed files with 7 additions and 2 deletions.
8 changes: 6 additions & 2 deletions pythonparser/source.py
Original file line number Diff line number Diff line change
@@ -125,9 +125,13 @@ def column(self):
def column_range(self):
"""
Returns a [*begin*, *end*) tuple describing the range of columns spanned
by this range.
by this range. If range spans more than one line, returned *end* is
the last column of the line.
"""
return self.begin().column(), self.end().column()
if self.begin().line() == self.end().line():
return self.begin().column(), self.end().column()
else:
return self.begin().column(), len(self.begin().source_line()) - 1

def line(self):
"""
1 change: 1 addition & 0 deletions pythonparser/test/test_source.py
Original file line number Diff line number Diff line change
@@ -61,6 +61,7 @@ def test_column_range(self):
self.assertEqual((2,2), self.range(2, 2).column_range())
self.assertEqual((0,2), self.range(9, 11).column_range())
self.assertEqual((2,2), self.range(11, 11).column_range())
self.assertEqual((0,8), self.range(0, 11).column_range())

def test_line(self):
self.assertEqual(1, self.range(2, 2).line())

0 comments on commit 3f3ae13

Please sign in to comment.