Skip to content

Commit 1a46292

Browse files
committed
improve ZLS logging
1 parent bededde commit 1a46292

File tree

1 file changed

+45
-7
lines changed

1 file changed

+45
-7
lines changed

src/editor.ts

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)