Issue #50 fixed ~ adding validation command, in case of error view jumps to error
This commit is contained in:
parent
4925960ced
commit
5e455c6a0f
|
@ -14,5 +14,9 @@
|
|||
{
|
||||
"caption": "Pretty JSON: JSON query with ./jq",
|
||||
"command": "jq_pretty_json"
|
||||
},
|
||||
{
|
||||
"caption": "Pretty JSON: Validate",
|
||||
"command": "pretty_json_validate"
|
||||
}
|
||||
]
|
|
@ -77,6 +77,7 @@ class PrettyJsonBaseCommand(sublime_plugin.TextCommand):
|
|||
regions = [self.view.full_line(self.view.text_point(line, 0)), ]
|
||||
self.view.add_regions('json_errors', regions, 'invalid', 'dot',
|
||||
sublime.DRAW_OUTLINED)
|
||||
self.view.show(regions[0])
|
||||
self.view.set_status('json_errors', message)
|
||||
|
||||
def show_exception(self):
|
||||
|
@ -90,6 +91,25 @@ class PrettyJsonBaseCommand(sublime_plugin.TextCommand):
|
|||
self.view.set_syntax_file("Packages/JavaScript/JSON.tmLanguage")
|
||||
|
||||
|
||||
class PrettyJsonValidate(PrettyJsonBaseCommand):
|
||||
def run(self, edit):
|
||||
self.view.erase_regions('json_errors')
|
||||
for region in self.view.sel():
|
||||
# If no selection, use the entire file as the selection
|
||||
if region.empty() and s.get("use_entire_file_if_no_selection", True):
|
||||
selection = sublime.Region(0, self.view.size())
|
||||
selected_entire_file = True
|
||||
else:
|
||||
selection = region
|
||||
|
||||
try:
|
||||
obj = self.json_loads(self.view.substr(selection))
|
||||
sublime.message_dialog("JSON is Valid")
|
||||
except Exception:
|
||||
self.show_exception()
|
||||
sublime.message_dialog("Invalid JSON")
|
||||
|
||||
|
||||
class PrettyJsonCommand(PrettyJsonBaseCommand):
|
||||
|
||||
""" Pretty Print JSON """
|
||||
|
|
Loading…
Reference in New Issue