Skip to content

Commit f497d74

Browse files
authored
Print messages from window/logMessage into console instead of LSP log panel (#2444)
* Log messages from window/logMessage in console instead of log panel * Add type hints
1 parent 550d591 commit f497d74

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

plugin/core/protocol.py

+2
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ class MessageType(IntEnum):
216216
""" An information message. """
217217
Log = 4
218218
""" A log message. """
219+
Debug = 5
220+
""" A debug message. """
219221

220222

221223
class TextDocumentSyncKind(IntEnum):

plugin/core/sessions.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
from .protocol import InsertTextMode
4747
from .protocol import Location
4848
from .protocol import LocationLink
49+
from .protocol import LogMessageParams
4950
from .protocol import LSPAny
5051
from .protocol import LSPErrorCodes
5152
from .protocol import LSPObject
@@ -1918,7 +1919,7 @@ def m_window_showMessage(self, params: Any) -> None:
19181919
"""handles the window/showMessage notification"""
19191920
self.call_manager('handle_show_message', self, params)
19201921

1921-
def m_window_logMessage(self, params: Any) -> None:
1922+
def m_window_logMessage(self, params: LogMessageParams) -> None:
19221923
"""handles the window/logMessage notification"""
19231924
self.call_manager('handle_log_message', self, params)
19241925

plugin/core/windows.py

+17-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
from .panels import PanelName
1515
from .protocol import DocumentUri
1616
from .protocol import Error
17+
from .protocol import LogMessageParams
18+
from .protocol import MessageType
1719
from .sessions import AbstractViewListener
1820
from .sessions import get_plugin
1921
from .sessions import Logger
@@ -413,8 +415,21 @@ def destroy(self) -> None:
413415
self.panel_manager.destroy_output_panels()
414416
self.panel_manager = None
415417

416-
def handle_log_message(self, session: Session, params: Any) -> None:
417-
self.handle_server_message_async(session.config.name, extract_message(params))
418+
def handle_log_message(self, session: Session, params: LogMessageParams) -> None:
419+
if not userprefs().log_debug:
420+
return
421+
message_type = params['type']
422+
level = {
423+
MessageType.Error: "ERROR",
424+
MessageType.Warning: "WARNING",
425+
MessageType.Info: "INFO",
426+
MessageType.Log: "LOG",
427+
MessageType.Debug: "DEBUG"
428+
}.get(message_type, "?")
429+
message = params['message']
430+
print("{}: {}: {}".format(session.config.name, level, message))
431+
if message_type == MessageType.Error:
432+
self.window.status_message("{}: {}".format(session.config.name, message))
418433

419434
def handle_stderr_log(self, session: Session, message: str) -> None:
420435
self.handle_server_message_async(session.config.name, message)

0 commit comments

Comments
 (0)