Skip to content

Commit b5f0246

Browse files
committed
Better handle selection after formatting with cljfmt
1 parent 2ff6f01 commit b5f0246

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- No exceptions on disconnect
55
- Removed background on unused symbols inside quotes
66
- Simplified formatting rules: if list's first form is a symbol, indent next line by +2 spaces, in all other cases, indent to opening paren (1 space)
7+
- Better handle selection after formatting with cljfmt
78

89
### 4.1.1 - Sep 6, 2024
910

cs_cljfmt.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ def format_string(view, text):
2222
if 'Failed' not in proc.stderr:
2323
return proc.stdout
2424

25-
def indent_lines(view, selections, edit):
26-
regions = [region for region in selections if not region.empty()]
25+
def indent_lines(view, regions, edit):
26+
regions = [region for region in regions if not region.empty()]
2727
if not regions:
2828
regions = [sublime.Region(0, view.size())]
2929
replacements = []
@@ -43,18 +43,18 @@ def indent_lines(view, selections, edit):
4343
elif line[:2] == '? ':
4444
pass
4545
if replacements:
46-
selections = [(view.rowcol(r.a), view.rowcol(r.b)) for r in selections]
46+
selections_before = [(view.rowcol(r.a), view.rowcol(r.b)) for r in view.sel()]
4747
delta = 0
4848
for region, string in replacements:
4949
transformed_region = sublime.Region(region.a + delta, region.b + delta)
5050
view.replace(edit, transformed_region, string)
5151
delta = delta - region.size() + len(string)
5252

53-
selections.clear()
54-
for ((rowa, cola), (rowb, colb)) in selections:
53+
view.sel().clear()
54+
for ((rowa, cola), (rowb, colb)) in selections_before:
5555
a = view.text_point(rowa, cola)
5656
b = view.text_point(rowb, colb)
57-
selections.add(sublime.Region(a, b))
57+
view.sel().add(sublime.Region(a, b))
5858

5959
def newline_indent(view, point):
6060
text = view.substr(sublime.Region(0, point))

0 commit comments

Comments
 (0)