-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpretty_format.py
More file actions
32 lines (26 loc) · 1.02 KB
/
pretty_format.py
File metadata and controls
32 lines (26 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from .pretty.pretty import pretty
import sublime
import sublime_plugin
def get_region_indent_level(view, region):
start_pt = region.begin()
row, col = view.rowcol(start_pt)
return col
class SchemeCodeFormatterCommand(sublime_plugin.TextCommand):
def run(self, edit):
try:
self.format_regions(edit)
sublime.status_message("formated")
except Exception as e:
sublime.status_message(str(e))
def format_regions(self, edit):
regions = [s for s in self.view.sel()]
view_encoding = self.view.encoding()
if view_encoding == 'Undefined':
view_encoding = 'utf-8'
for region in reversed(regions):
if region.size() < 4: continue
indent_level = get_region_indent_level(self.view, region)
original_code = self.view.substr(region)
prettied_code = pretty(original_code, indent_level)
if prettied_code != original_code:
self.view.replace(edit, region, prettied_code)