From d0f7cd444f0d05918ddf992a8b3324129c3ba82f Mon Sep 17 00:00:00 2001 From: Janos Wortmann Date: Fri, 6 Dec 2024 09:40:56 +0100 Subject: [PATCH 1/5] Fix LspToggleInlayHintsCommand not initializing --- plugin/inlay_hint.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugin/inlay_hint.py b/plugin/inlay_hint.py index 69ffc6a1c..1607f3e00 100644 --- a/plugin/inlay_hint.py +++ b/plugin/inlay_hint.py @@ -21,7 +21,9 @@ class LspToggleInlayHintsCommand(LspWindowCommand): def __init__(self, window: sublime.Window) -> None: super().__init__(window) - window.settings().set('lsp_show_inlay_hints', userprefs().show_inlay_hints) + settings = userprefs() + default = settings.show_inlay_hints if settings is not None else False + window.settings().set('lsp_show_inlay_hints', default) def run(self, enable: bool | None = None) -> None: window_settings = self.window.settings() From 31b9dbade4438fdc67d85a33a405ab967d5f7399 Mon Sep 17 00:00:00 2001 From: Janos Wortmann Date: Fri, 6 Dec 2024 09:51:11 +0100 Subject: [PATCH 2/5] Simplify line --- plugin/inlay_hint.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugin/inlay_hint.py b/plugin/inlay_hint.py index 1607f3e00..17f125a94 100644 --- a/plugin/inlay_hint.py +++ b/plugin/inlay_hint.py @@ -22,8 +22,7 @@ class LspToggleInlayHintsCommand(LspWindowCommand): def __init__(self, window: sublime.Window) -> None: super().__init__(window) settings = userprefs() - default = settings.show_inlay_hints if settings is not None else False - window.settings().set('lsp_show_inlay_hints', default) + window.settings().set('lsp_show_inlay_hints', settings.show_inlay_hints if settings is not None else False) def run(self, enable: bool | None = None) -> None: window_settings = self.window.settings() From bd076d5599c09b51cc0c100cf98d9a4ec03fa26b Mon Sep 17 00:00:00 2001 From: Janos Wortmann Date: Fri, 6 Dec 2024 21:19:57 +0100 Subject: [PATCH 3/5] Keep previous value when windows are restored on start --- plugin/inlay_hint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/inlay_hint.py b/plugin/inlay_hint.py index 17f125a94..bf62e9dc2 100644 --- a/plugin/inlay_hint.py +++ b/plugin/inlay_hint.py @@ -22,7 +22,7 @@ class LspToggleInlayHintsCommand(LspWindowCommand): def __init__(self, window: sublime.Window) -> None: super().__init__(window) settings = userprefs() - window.settings().set('lsp_show_inlay_hints', settings.show_inlay_hints if settings is not None else False) + window.settings().setdefault('lsp_show_inlay_hints', False if settings is None else settings.show_inlay_hints) def run(self, enable: bool | None = None) -> None: window_settings = self.window.settings() From 7f3da69bffa93d3d38afcf746b6610dd68f86efc Mon Sep 17 00:00:00 2001 From: Janos Wortmann Date: Sat, 7 Dec 2024 09:45:03 +0100 Subject: [PATCH 4/5] Read from settings file if available --- plugin/inlay_hint.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugin/inlay_hint.py b/plugin/inlay_hint.py index bf62e9dc2..6f3aab079 100644 --- a/plugin/inlay_hint.py +++ b/plugin/inlay_hint.py @@ -1,4 +1,5 @@ from __future__ import annotations +from .core.constants import ST_VERSION from .core.css import css from .core.edit import apply_text_edits from .core.protocol import InlayHint @@ -21,8 +22,16 @@ class LspToggleInlayHintsCommand(LspWindowCommand): def __init__(self, window: sublime.Window) -> None: super().__init__(window) + window.settings().setdefault('lsp_show_inlay_hints', self._get_default_value()) + + @staticmethod + def _get_default_value() -> bool: settings = userprefs() - window.settings().setdefault('lsp_show_inlay_hints', False if settings is None else settings.show_inlay_hints) + if settings is not None: + return settings.show_inlay_hints + if ST_VERSION >= 4171: # sublime.load_settings is available at import time + return sublime.load_settings('LSP.sublime-settings').get('show_inlay_hints') + return False def run(self, enable: bool | None = None) -> None: window_settings = self.window.settings() From 1ede7f9a10185efd993b928eca9e9db09ad907da Mon Sep 17 00:00:00 2001 From: Janos Wortmann Date: Sat, 7 Dec 2024 09:51:26 +0100 Subject: [PATCH 5/5] Rewording --- plugin/inlay_hint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/inlay_hint.py b/plugin/inlay_hint.py index 6f3aab079..66e5d170d 100644 --- a/plugin/inlay_hint.py +++ b/plugin/inlay_hint.py @@ -29,7 +29,7 @@ def _get_default_value() -> bool: settings = userprefs() if settings is not None: return settings.show_inlay_hints - if ST_VERSION >= 4171: # sublime.load_settings is available at import time + if ST_VERSION >= 4171: # All API functions are available at import time return sublime.load_settings('LSP.sublime-settings').get('show_inlay_hints') return False