Skip to content

Commit d9dc495

Browse files
committed
accept optional sublime Window in notify functions
fallback sublime functions
1 parent 360c41a commit d9dc495

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

plugin/core/logging.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from __future__ import annotations
2-
from typing import Any
2+
from typing import Any, Optional
33
import traceback
44
import inspect
55
import sublime
@@ -41,25 +41,33 @@ def printf(*args: Any, prefix: str = 'LSP') -> None:
4141
print(prefix + ":", *args)
4242

4343

44-
def notify(window: sublime.Window, message: str, status: str = 'LSP: see console log…') -> None:
45-
"""Pick either of the 2 ways to show a message:
46-
- via a blocking modal dialog
47-
- via a detailed console message and a short status message"""
44+
def notify(window: Optional[sublime.Window], message: str,
45+
status: str = 'LSP: see console log…') -> None:
46+
"""Pick either of the 2 ways to show a user notification message:
47+
- via a detailed console message and a short status message
48+
- via a blocking modal dialog"""
4849
from .settings import userprefs
4950
if userprefs().suppress_error_dialogs:
50-
window.status_message(status)
51-
print(message)
51+
if window:
52+
window.status_message(status) # print short message to statusbar
53+
else:
54+
sublime.status_message(status)
55+
print(message) # print full message to console log
5256
else:
53-
window.message_dialog(message)
57+
sublime.message_dialog(message)
5458

5559

56-
def notify_error(window: sublime.Window, message: str, status: str = '❗LSP: see console log…') -> None:
57-
"""Pick either of the 2 ways to show a message:
58-
- via a blocking modal dialog
59-
- via a detailed console message and a short status message"""
60+
def notify_error(window: Optional[sublime.Window], message: str,
61+
status: str = '❗LSP: see console log…') -> None:
62+
"""Pick either of the 2 ways to show a user error notification message:
63+
- via a detailed console message and a short status message
64+
- via a blocking error modal dialog"""
6065
from .settings import userprefs
6166
if userprefs().suppress_error_dialogs:
62-
window.status_message(status)
63-
print(message)
67+
if window:
68+
window.status_message(status) # print short message to statusbar
69+
else:
70+
sublime.status_message(status)
71+
print(message) # print full message to console log
6472
else:
6573
sublime.error_message(message)

0 commit comments

Comments
 (0)