Skip to content

Commit b326376

Browse files
committed
Fixed multi-line comments (closes #129)
1 parent 6b36292 commit b326376

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

cs_indent.py

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -165,20 +165,27 @@ def run(self, edit):
165165
change_id = view.change_id()
166166
for region in [r for r in view.sel()]:
167167
region = view.transform_region_from(region, change_id)
168-
line = view.line(region)
169-
line_text = view.substr(line)
170-
# uncomment ;
171-
if m := re.match(r'^(\s*)(;[;\s]*)(.*)', line_text):
172-
view.replace(edit, line, m[1] + m[3])
173-
continue
174-
parsed = cs_parser.parse_tree(view)
175-
# uncomment #_
176-
if node := cs_parser.search(parsed, region.begin(), pred = lambda node: node.name == "discard"):
177-
view.replace(edit, sublime.Region(node.start, node.body.start), '')
178-
continue
179-
# prepend ;
180-
if m := re.match(r'^(\s*)([^\s].*)', line_text):
181-
view.replace(edit, line, m[1] + '; ' + m[2])
168+
for line in [l for l in view.lines(region)]:
169+
line = view.transform_region_from(line, change_id)
170+
line_text = view.substr(line)
171+
172+
# skip leading spaces
173+
m = re.match(r'^\s*', line_text)
174+
line = sublime.Region(line.begin() + len(m[0]), line.end())
175+
line_text = view.substr(line)
176+
177+
# uncomment ;
178+
if m := re.match(r'^(\s*)(;[;\s]*)(.*)', line_text):
179+
view.replace(edit, line, m[1] + m[3])
180+
continue
181+
parsed = cs_parser.parse_tree(view)
182+
# uncomment #_
183+
if node := cs_parser.search(parsed, line.begin(), pred = lambda node: node.name == "discard"):
184+
view.replace(edit, sublime.Region(node.start, node.body.start), '')
185+
continue
186+
# prepend ;
187+
if m := re.match(r'^(\s*)([^\s].*)', line_text):
188+
view.replace(edit, line, m[1] + '; ' + m[2])
182189

183190
def cljfmt_indent(view, point):
184191
i = None

0 commit comments

Comments
 (0)