From 37464164b3951cc31b12bb5043d89b24e545f0e7 Mon Sep 17 00:00:00 2001 From: deathaxe Date: Wed, 31 Jul 2024 15:03:47 +0200 Subject: [PATCH 1/2] fix PrettyJsonLintListener This commit converts `PrettyJsonLintListener` into a `ViewEventListener`, so it contains `self.view` member, required by mixed in `PrettyJsonBaseCommand` class. --- PrettyJsonListeners.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/PrettyJsonListeners.py b/PrettyJsonListeners.py index 7311113..539a562 100644 --- a/PrettyJsonListeners.py +++ b/PrettyJsonListeners.py @@ -6,15 +6,16 @@ from .PrettyJson import PrettyJsonBaseCommand s = sublime.load_settings("Pretty JSON.sublime-settings") -class PrettyJsonLintListener(sublime_plugin.EventListener, PrettyJsonBaseCommand): - def on_post_save(self, view): +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"]) - if any(syntax in view.settings().get("syntax") for syntax in as_json): + view_syntax = self.view.settings().get("syntax") + if any(syntax in view_syntax for syntax in as_json): self.clear_phantoms() - json_content = view.substr(sublime.Region(0, view.size())) + json_content = self.view.substr(sublime.Region(0, self.view.size())) try: self.json_loads(json_content) except Exception as ex: From f7800eb48b0701371a93f1a8d5b7ad89fbf750f5 Mon Sep 17 00:00:00 2001 From: deathaxe Date: Wed, 31 Jul 2024 15:09:17 +0200 Subject: [PATCH 2/2] Read syntax setting only once ... regardless how many items are in `as_json`. --- PrettyJsonListeners.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PrettyJsonListeners.py b/PrettyJsonListeners.py index 539a562..f71be52 100644 --- a/PrettyJsonListeners.py +++ b/PrettyJsonListeners.py @@ -28,5 +28,6 @@ class PrettyJsonAutoPrettyOnSaveListener(sublime_plugin.EventListener): return as_json = s.get("as_json", ["JSON"]) - if any(syntax in view.settings().get("syntax") for syntax in as_json): + view_syntax = view.settings().get("syntax") + if any(syntax in view_syntax for syntax in as_json): view.run_command("pretty_json")