Skip to content

Commit 85c346a

Browse files
committed
3.3.0
1 parent 23b7b05 commit 85c346a

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
### 3.3.0 - Oct 26, 2023
2+
3+
- Eval inside already evaled region re-evals same region instead of going to top form
4+
- Printer can display newlines
5+
16
### 3.2.1 - Sep 10, 2023
27

38
- Socket: Report number of reflection warnings in status bar

cs_conn.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,19 @@ def ready(self):
4242
def eval_impl(self, form):
4343
pass
4444

45+
def eval_region(self, region, view):
46+
if region.empty():
47+
if eval := cs_eval.by_region(view, region):
48+
return eval.region()
49+
return cs_parser.topmost_form(view, region.begin())
50+
return region
51+
4552
def eval(self, view, sel):
4653
"""
4754
Eval code and call `cs_eval.on_success(id, value)` or `cs_eval.on_exception(id, value, trace)`
4855
"""
4956
for region in sel:
50-
if region.empty():
51-
region = cs_parser.topmost_form(view, region.begin())
57+
region = self.eval_region(region, view)
5258
eval = cs_eval.Eval(view, region)
5359
(line, column) = view.rowcol_utf16(region.begin())
5460
line = line + 1

cs_conn_socket_repl.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,7 @@ def eval(self, view, sel):
8585
cs_warn.reset_warnings()
8686
for region in sel:
8787
# find regions to eval
88-
if region.empty():
89-
region = cs_parser.topmost_form(view, region.begin())
88+
region = self.eval_region(region, view)
9089

9190
start = region.begin()
9291
parsed = cs_parser.parse(view.substr(region))

cs_printer.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import re
2+
13
def safe_get(l, i, default = None):
24
"""
35
Like dict.get(), but for lists
@@ -117,4 +119,7 @@ def format(text, node, indent = '', limit = 80):
117119
elif node.name == 'tagged':
118120
return format_tagged(text, node, indent, limit)
119121
else:
120-
return wrap_string(text[node.start:node.end], limit = limit, indent = indent)
122+
str = text[node.start:node.end]
123+
str = re.sub("(?<!\\\\)\\\\n", "\n", str)
124+
str = "\n".join(wrap_string(s, limit = limit, indent = indent) for s in str.split("\n"))
125+
return str

0 commit comments

Comments
 (0)