@@ -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
183190def cljfmt_indent (view , point ):
184191 i = None
0 commit comments