@@ -33,20 +33,58 @@ export default class ZlsClient extends LspClient {
3333 }
3434
3535 private messageHandler = ( ev : MessageEvent ) => {
36- if ( ev . data . stderr ) {
37- const line = document . createElement ( "div" ) ;
38- line . innerText = ev . data . stderr ;
36+ if ( ev . data ?. method == "window/logMessage" || ev . data . stderr ) {
37+ let logLevel = "[?????] " ;
38+ let color = "white" ;
39+ if ( ! ev . data . stderr ) {
40+ switch ( ev . data . params . type ) {
41+ case 5 :
42+ logLevel = "[DEBUG] " ;
43+ color = "white" ;
44+ break ;
45+ case 4 :
46+ logLevel = "[LOG ] " ;
47+ color = "paleturquoise" ;
48+ break ;
49+ case 3 :
50+ logLevel = "[INFO ] " ;
51+ color = "lightblue" ;
52+ break ;
53+ case 2 :
54+ logLevel = "[WARN ] " ;
55+ color = "darkorange" ;
56+ break ;
57+ case 1 :
58+ logLevel = "[ERROR] " ;
59+ color = "crimson" ;
60+ break ;
61+ default :
62+ break ;
63+ }
64+ }
65+
66+ const line = document . createElement ( 'div' ) ;
67+ line . style . color = color ;
68+
69+ const logLevelSpan = document . createElement ( 'span' ) ;
70+ logLevelSpan . textContent = logLevel ;
71+
72+ const logTextSpan = document . createElement ( 'span' ) ;
73+ logTextSpan . textContent = ev . data . stderr ? ev . data . stderr : ev . data . params . message ;
74+
75+ line . appendChild ( logLevelSpan ) ;
76+ line . appendChild ( logTextSpan ) ;
77+
3978 document . getElementById ( "zls-stderr" ) ?. append ( line ) ;
4079 scrollOutputToEnd ( ) ;
41- return ;
80+ } else {
81+ console . debug ( "LSP <<-" , ev . data ) ;
4282 }
43-
44- console . log ( "LSP <<-" , ev . data ) ;
4583 this . handleMessage ( ev . data ) ;
4684 } ;
4785
4886 public async sendMessage ( message : JsonRpcMessage ) : Promise < void > {
49- console . log ( "LSP ->>" , message ) ;
87+ console . debug ( "LSP ->>" , message ) ;
5088 if ( this . worker ) {
5189 const str = JSON . stringify ( message ) ;
5290
0 commit comments