Skip to content

Commit e41d6b5

Browse files
committed
DocumentationExtraction.py: Diff cut-off fix
Fix diff's cut-off bug. Added subequent test cases. Fixes #4187
1 parent e05c816 commit e41d6b5

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

coalib/bearlib/languages/documentation/DocumentationExtraction.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ def _extract_doc_comment_simple(content, line, column, markers):
3636
while line < len(content):
3737
pos = content[line].find(markers[2])
3838
if pos == -1:
39+
line_column = len(content[line])-len(content[line].lstrip())
3940
doc_comment += ('\n' if content[line][align_column:] == ''
41+
else content[line].strip()+'\n'
42+
if line_column < align_column
4043
else content[line][align_column:])
4144
else:
4245
doc_comment += content[line][align_column:pos]

tests/bearlib/languages/documentation/DocumentationExtractionTest.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,16 @@ def test_extract_documentation_PYTHON3(self):
180180
'short'),
181181
docstyle_PYTHON3_default, '',
182182
docstyle_PYTHON3_default.markers[0],
183-
TextRange.from_values(40, 1, 42, 9)))
183+
TextRange.from_values(40, 1, 42, 9)),
184+
DocumentationComment(
185+
('\n'
186+
'A bad indented docstring\n'
187+
' Improper indentation.\n'
188+
':param impact: The force of Impact.\n'),
189+
docstyle_PYTHON3_default, ' ' * 4,
190+
docstyle_PYTHON3_default.markers[0],
191+
TextRange.from_values(45, 5, 49, 8)),
192+
)
184193

185194
self.assertEqual(
186195
tuple(extract_documentation(data, 'PYTHON3', 'default')),

tests/bearlib/languages/documentation/documentation_extraction_testdata/data.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,10 @@ def foobar_travel(country):
4040
"""super
4141
nicely
4242
short"""
43+
44+
def foobar_collision(impact):
45+
"""
46+
A bad indented docstring
47+
Improper indentation.
48+
:param impact: The force of Impact.
49+
"""

0 commit comments

Comments
 (0)