-
Notifications
You must be signed in to change notification settings - Fork 181
/
Copy pathPrettyJsonListeners.py
33 lines (25 loc) · 1.1 KB
/
PrettyJsonListeners.py
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
33
import sublime
import sublime_plugin
from .PrettyJson import PrettyJsonBaseCommand
s = sublime.load_settings("Pretty JSON.sublime-settings")
class PrettyJsonLintListener(sublime_plugin.ViewEventListener, PrettyJsonBaseCommand):
def on_post_save(self):
if not s.get("validate_on_save", True):
return
as_json = s.get("as_json", ["JSON"])
view_syntax = self.view.settings().get("syntax")
if any(syntax in view_syntax for syntax in as_json):
self.clear_phantoms()
json_content = self.view.substr(sublime.Region(0, self.view.size()))
try:
self.json_loads(json_content)
except Exception as ex:
self.show_exception(msg=ex)
class PrettyJsonAutoPrettyOnSaveListener(sublime_plugin.EventListener):
def on_pre_save(self, view):
if not s.get("pretty_on_save", False):
return
as_json = s.get("as_json", ["JSON"])
view_syntax = view.settings().get("syntax")
if any(syntax in view_syntax for syntax in as_json):
view.run_command("pretty_json")