feat(SublimeText2.WebPackages): cache packages
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import sublime
|
||||
import sublime_plugin
|
||||
import decimal
|
||||
|
||||
try:
|
||||
# python 3 / Sublime Text 3
|
||||
from . import simplejson as json
|
||||
from .simplejson import OrderedDict
|
||||
except (ValueError):
|
||||
# python 2 / Sublime Text 2
|
||||
import simplejson as json
|
||||
from simplejson import OrderedDict
|
||||
|
||||
s = sublime.load_settings("Pretty JSON.sublime-settings")
|
||||
|
||||
|
||||
class PrettyjsonCommand(sublime_plugin.TextCommand):
|
||||
""" Pretty Print JSON
|
||||
"""
|
||||
def run(self, edit):
|
||||
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"):
|
||||
selection = sublime.Region(0, self.view.size())
|
||||
else:
|
||||
selection = region
|
||||
|
||||
try:
|
||||
obj = json.loads(self.view.substr(selection),
|
||||
object_pairs_hook=OrderedDict,
|
||||
parse_float=decimal.Decimal)
|
||||
|
||||
self.view.replace(edit, selection, json.dumps(obj,
|
||||
indent=s.get("indent", 2),
|
||||
ensure_ascii=s.get("ensure_ascii", False),
|
||||
sort_keys=s.get("sort_keys", False),
|
||||
separators=(',', ': '),
|
||||
use_decimal=True))
|
||||
|
||||
except Exception:
|
||||
import sys
|
||||
exc = sys.exc_info()[1]
|
||||
sublime.status_message(str(exc))
|
Reference in New Issue
Block a user