Skip to content

Commit c302a2a

Browse files
authored
Merge pull request #5 from jneira/add-log-output
Add log output
2 parents 07ae540 + c831d81 commit c302a2a

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

package-lock.json

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@
8282
"scripts": {
8383
"compile": "tsc -b",
8484
"watch": "tsc -b -w",
85-
8685
"vscode:prepublish": "npm run esbuild-base -- --minify",
8786
"vscode:package": "npm run vscode:prepublish && vsce package",
8887
"esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=out/main.js --external:vscode --format=cjs --platform=node",
@@ -96,7 +95,7 @@
9695
"@types/node": "^18.0.3",
9796
"@types/vscode": "^1.69.0",
9897
"esbuild": "^0.14.49",
99-
"typescript": "^4.7.2",
98+
"typescript": "^4.8.4",
10099
"vsce": "^2.9.2"
101100
},
102101
"license": "SEE LICENSE IN LICENSE"

src/extension.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ import { connect } from "node:net";
55
const outputChannel: OutputChannel = window.createOutputChannel("Unison");
66
const clients: Map<string, LanguageClient> = new Map();
77

8+
function log(msg: string) {
9+
outputChannel.appendLine(msg)
10+
}
11+
812
exports.activate = function () {
913
workspace.workspaceFolders?.forEach((folder) => addWorkspaceFolder(folder));
1014
workspace.onDidChangeWorkspaceFolders(({ added, removed }) => {
@@ -27,15 +31,16 @@ async function addWorkspaceFolder(workspaceFolder: WorkspaceFolder) {
2731
documentSelector: [{ language: "unison" }],
2832
});
2933

34+
log(`Activating unison language server at ${folderPath}`)
3035
clients.set(folderPath, client);
31-
3236
await client.start();
3337
}
3438

3539
async function removeWorkspaceFolder(workspaceFolder: WorkspaceFolder) {
3640
let folderPath = workspaceFolder.uri.fsPath;
3741
let client = clients.get(folderPath);
3842
if (client) {
43+
log(`Deactivating unison language server at ${folderPath}`)
3944
clients.delete(folderPath);
4045
await client.stop();
4146
}
@@ -49,22 +54,26 @@ async function connectToServer() {
4954
let haveShownError = false;
5055
while (true) {
5156
try {
57+
const host = "127.0.0.1";
5258
const port = workspace.getConfiguration("unison").lspPort;
59+
log(`Trying to connect to ucm lsp server at ${host}:${port}`);
5360
let socket = connect({ port, host: "127.0.0.1" });
5461
await new Promise((resolve, reject) =>
5562
socket.once("connect", resolve).once("error", reject)
5663
);
5764
// Show a success message, but only if we were in an error state
65+
const okMsg = `Unison: Connected to Language Server at ${host}:${port}.`;
66+
log(okMsg);
5867
if (haveShownError) {
59-
window.showInformationMessage("Unison: Connected to Language Server.");
68+
window.showInformationMessage(okMsg);
6069
}
6170
return { reader: socket, writer: socket };
6271
} catch (e) {
72+
const errMsg = "Language server failed to connect";
73+
log(`${errMsg}, cause: ${e}`)
6374
if (!haveShownError) {
6475
haveShownError = true;
65-
window.showErrorMessage(
66-
"Unison: Language server failed to connect, is there a UCM running? (version M4a or later)"
67-
);
76+
window.showErrorMessage(`Unison: ${errMsg}, is there a UCM running? (version M4a or later)`);
6877
}
6978
await sleep(2000);
7079
continue;

0 commit comments

Comments
 (0)