From aa25c1cdda7da520e47695c96cd7856aecf0767c Mon Sep 17 00:00:00 2001 From: redatman Date: Thu, 1 Aug 2024 00:07:17 +0800 Subject: [PATCH 1/2] Fix: Reload settings on username/password change Add event listeners to the settings file to reload the plugin when the username or password changes. This ensures that the plugin always uses the latest credentials and prevents potential issues caused by outdated settings. --- gui.py | 13 ------------- simplenotecommands.py | 11 ++++++----- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/gui.py b/gui.py index cc107e6..5d700ea 100644 --- a/gui.py +++ b/gui.py @@ -20,19 +20,6 @@ ] -# def init_settings(reload_if_needed: Optional(Callable) = None): -# global SETTINGS -# if SETTINGS is None: -# SETTINGS = sublime.load_settings("SIMPLENOTE_SETTINGS_FILE") -# # logger.debug(("SETTINGS.__dict__: ", SETTINGS.__dict__)) -# # logger.debug(("SETTINGS.username: ", SETTINGS.get("username"))) -# if reload_if_needed: -# SETTINGS.clear_on_change("username") -# SETTINGS.clear_on_change("password") -# SETTINGS.add_on_change("username", reload_if_needed) -# SETTINGS.add_on_change("password", reload_if_needed) - - def edit_settings(): # sublime.run_command("open_file", {"file": CONFIG.SIMPLENOTE_SETTINGS_FILE_PATH}) sublime.run_command( diff --git a/simplenotecommands.py b/simplenotecommands.py index f2f3e5d..5427e73 100644 --- a/simplenotecommands.py +++ b/simplenotecommands.py @@ -283,13 +283,14 @@ def reload_if_needed(): def plugin_loaded(): # load_notes() - logger.debug(("Loaded notes number: ", len(Note.mapper_id_note))) + logger.debug(("Loaded notes number: ", Note.tree.count)) + settings = sublime.load_settings(CONFIG.SIMPLENOTE_SETTINGS_FILE_PATH) # logger.debug(("SETTINGS.__dict__: ", SETTINGS.__dict__)) # logger.debug(("SETTINGS.username: ", SETTINGS.get("username"))) - # SETTINGS.clear_on_change("username") - # SETTINGS.clear_on_change("password") - # SETTINGS.add_on_change("username", reload_if_needed) - # SETTINGS.add_on_change("password", reload_if_needed) + settings.clear_on_change("username") + settings.clear_on_change("password") + settings.add_on_change("username", reload_if_needed) + settings.add_on_change("password", reload_if_needed) reload_if_needed() From 60dbb1b55664bf1ad174a1516dccd706799c97a0 Mon Sep 17 00:00:00 2001 From: redatman Date: Thu, 1 Aug 2024 00:24:19 +0800 Subject: [PATCH 2/2] refactor: improve error handling in operations Improved error handling in various operations by directly logging and displaying exceptions to the user, facilitating easier troubleshooting and debugging. This enhancement removes the need for opening settings files on encountering errors and provides a more transparent feedback mechanism for users. --- operations.py | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/operations.py b/operations.py index 85732fa..2e16be0 100644 --- a/operations.py +++ b/operations.py @@ -5,8 +5,7 @@ import sublime -from ._config import CONFIG -from .gui import _show_message, open_view, remove_status +from .gui import _show_message, edit_settings, remove_status from .models import Note from .utils.patterns.singleton.base import Singleton @@ -53,6 +52,10 @@ def join(self): self.exception_callback(self.result) else: logger.debug(str(self.result)) + if isinstance(self.result, Exception): + logger.exception(self.result) + sublime.message_dialog(str(self.result)) + edit_settings() class NotesIndicator(Operation): @@ -66,9 +69,6 @@ def run(self): result: List[Note] = Note.index(limit=self.sync_note_number, data=True) self.result = result except Exception as err: - logger.exception(err) - sublime.message_dialog(str(err)) - open_view(CONFIG.SIMPLENOTE_SETTINGS_FILE_PATH) self.result = err @@ -80,9 +80,6 @@ def run(self): note.create() self.result = note except Exception as err: - logger.exception(err) - sublime.message_dialog(str(err)) - open_view(CONFIG.SIMPLENOTE_SETTINGS_FILE_PATH) self.result = err @@ -98,9 +95,6 @@ def run(self): note: Note = self.note.modify() self.result = note except Exception as err: - logger.exception(err) - sublime.message_dialog(str(err)) - open_view(CONFIG.SIMPLENOTE_SETTINGS_FILE_PATH) self.result = err @@ -115,9 +109,6 @@ def run(self): self.note.trash() self.result = self.note except Exception as err: - logger.exception(err) - sublime.message_dialog(str(err)) - open_view(CONFIG.SIMPLENOTE_SETTINGS_FILE_PATH) self.result = err