Skip to content

Commit 72f6c5f

Browse files
author
whitequark
committedJul 18, 2015
Add source.Range.source_lines().
1 parent cf773e6 commit 72f6c5f

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed
 

Diff for: ‎pythonparser/source.py

+7
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,13 @@ def source_line(self):
148148
"""
149149
return self.source_buffer.source_line(self.line())
150150

151+
def source_lines(self):
152+
"""
153+
Returns the lines of source code containing the entirety of this range.
154+
"""
155+
return [self.source_buffer.source_line(line)
156+
for line in range(self.line(), self.end().line() + 1)]
157+
151158
def __str__(self):
152159
"""
153160
Returns a Clang-style string representation of the beginning of this range.

Diff for: ‎pythonparser/test/test_source.py

+4
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ def test_source(self):
8585
def test_source_line(self):
8686
self.assertEqual("line two\n", self.range(9, 9).source_line())
8787

88+
def test_source_lines(self):
89+
self.assertEqual(["line two\n"], self.range(9, 9).source_lines())
90+
self.assertEqual(["line two\n", "\n"], self.range(9, 18).source_lines())
91+
8892
def test___str__(self):
8993
self.assertEqual("<input>:2:1-2:1", str(self.range(9, 9)))
9094

0 commit comments

Comments
 (0)
Please sign in to comment.