Skip to content

Commit 30b31fb

Browse files
committed
refactor: use logger instead of LOG
1 parent e20b989 commit 30b31fb

File tree

12 files changed

+99
-190
lines changed

12 files changed

+99
-190
lines changed

.eslintrc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"root": true,
3+
"extends": ["@raidou/eslint-config-base"],
4+
"env": {
5+
"es6": true
6+
}
7+
}

.eslintrc.json

Lines changed: 0 additions & 62 deletions
This file was deleted.
File renamed without changes.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,13 @@
125125
"prepare": "npm run build"
126126
},
127127
"devDependencies": {
128+
"@raidou/eslint-config-base": "^1.5.0",
128129
"@types/node": "^17.0.18",
129130
"@types/semver": "^7.3.9",
130-
"@typescript-eslint/eslint-plugin": "^5.12.0",
131-
"@typescript-eslint/parser": "^5.12.0",
132131
"coc-helper": "^0.13.0",
133132
"coc.nvim": "^0.0.81-next.3",
134133
"eslint": "^8.9.0",
134+
"prettier": "^2.5.1",
135135
"ts-loader": "^9.2.6",
136136
"typescript": "^4.5.5",
137137
"webpack": "^5.69.1",

src/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import path from 'path';
44
import { InternalConfigManager } from './internalConfig';
55
import { activateLanguageServer } from './languageSetup';
66
import { fsExists } from './util/fsUtils';
7-
import { LOG, logger } from './util/logger';
7+
import { logger } from './util/logger';
88
import { Status, StatusBarEntry } from './util/status';
99

1010
// this method is called when your extension is activated
@@ -44,7 +44,7 @@ export async function activate(context: ExtensionContext): Promise<void> {
4444
}),
4545
);
4646
} else {
47-
LOG.info(
47+
logger.info(
4848
"Skipping language server activation since 'kotlin.languageServer.enabled' is false",
4949
);
5050
}

src/jarClassContentProvider.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class JarClassContentProvider implements TextDocumentContentProvider {
2828
if (!result) {
2929
// eslint-disable-next-line no-restricted-properties
3030
window.showMessage(
31-
`Could not fetch class file contents of '${uri}' from the language server. Make sure that it conforms to the format 'kls:file:///path/to/myJar.jar!/path/to/myClass.class'!`,
31+
`Could not fetch class file contents of '${uri.toString()}' from the language server. Make sure that it conforms to the format 'kls:file:///path/to/myJar.jar!/path/to/myClass.class'!`,
3232
'error',
3333
);
3434
return '';

src/languageSetup.ts

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import path from 'path';
1919
import { JarClassContentProvider } from './jarClassContentProvider';
2020
import { ServerDownloader } from './serverDownloader';
2121
import { fsExists } from './util/fsUtils';
22-
import { LOG } from './util/logger';
22+
import { logger } from './util/logger';
2323
import { correctBinname, correctScriptName, isOSUnixoid } from './util/osUtils';
2424
import { Status } from './util/status';
2525

@@ -29,7 +29,7 @@ export async function activateLanguageServer(
2929
status: Status,
3030
config: WorkspaceConfiguration,
3131
) {
32-
LOG.info('Activating Kotlin Language Server...');
32+
logger.info('Activating Kotlin Language Server...');
3333
status.update('Activating Kotlin Language Server...');
3434

3535
// Prepare language server
@@ -51,7 +51,9 @@ export async function activateLanguageServer(
5151
await langServerDownloader.downloadServerIfNeeded(status);
5252
} catch (error) {
5353
await window.showWarningMessage(
54-
`Could not update/download Kotlin Language Server: ${error}`,
54+
`Could not update/download Kotlin Language Server: ${(
55+
error as Error
56+
).toString()}`,
5557
);
5658
return;
5759
}
@@ -66,7 +68,7 @@ export async function activateLanguageServer(
6668
return;
6769
}
6870

69-
const outputChannel = window.createOutputChannel('Kotlin');
71+
const outputChannel = window.createOutputChannel('kotlin-language-server');
7072
context.subscriptions.push(outputChannel);
7173

7274
const transportLayer = config.get('languageServer.transport');
@@ -76,11 +78,11 @@ export async function activateLanguageServer(
7678
if (transportLayer === 'tcp') {
7779
tcpPort = config.get<number>('languageServer.port')!;
7880

79-
LOG.info(`Connecting via TCP, port: ${tcpPort}`);
81+
logger.info(`Connecting via TCP, port: ${tcpPort}`);
8082
} else if (transportLayer === 'stdio') {
81-
LOG.info('Connecting via Stdio.');
83+
logger.info('Connecting via Stdio.');
8284
} else {
83-
LOG.info(`Unknown transport layer: ${transportLayer}`);
85+
logger.info(`Unknown transport layer: ${transportLayer as string}`);
8486
}
8587

8688
status.dispose();
@@ -107,17 +109,20 @@ export async function activateLanguageServer(
107109
workspace.registerTextDocumentContentProvider('kls:file', contentProvider),
108110
);
109111
context.subscriptions.push(
110-
commands.registerCommand('kotlin.languageServer.restart', async () => {
111-
await languageClient.stop();
112-
languageClientDisposable.dispose();
113-
114-
outputChannel.appendLine('');
115-
outputChannel.appendLine(' === Language Server Restart ===');
116-
outputChannel.appendLine('');
117-
118-
languageClientDisposable = languageClient.start();
119-
context.subscriptions.push(languageClientDisposable);
120-
}),
112+
commands.registerCommand(
113+
'kotlin.languageServer.restart',
114+
logger.asyncCatch(async () => {
115+
await languageClient.stop();
116+
languageClientDisposable.dispose();
117+
118+
outputChannel.appendLine('');
119+
outputChannel.appendLine(' === Language Server Restart ===');
120+
outputChannel.appendLine('');
121+
122+
languageClientDisposable = languageClient.start();
123+
context.subscriptions.push(languageClientDisposable);
124+
}),
125+
),
121126
);
122127

123128
await languageClient.onReady();
@@ -176,7 +181,7 @@ function createLanguageClient(options: {
176181
env: options.env,
177182
}, // TODO: Support multi-root workspaces (and improve support for when no available is available)
178183
};
179-
LOG.info('Creating client at {}', options.startScriptPath);
184+
logger.info(`Creating client at ${options.startScriptPath}`);
180185
}
181186

182187
return new LanguageClient(
@@ -193,9 +198,9 @@ export function spawnLanguageServerProcessAndConnectViaTcp(options: {
193198
tcpPort?: number;
194199
}): Promise<StreamInfo> {
195200
return new Promise((resolve, reject) => {
196-
LOG.info('Creating server.');
201+
logger.info('Creating server.');
197202
const server = net.createServer((socket) => {
198-
LOG.info('Closing server since client has connected.');
203+
logger.info('Closing server since client has connected.');
199204
server.close();
200205
resolve({ reader: socket, writer: socket });
201206
});
@@ -206,14 +211,12 @@ export function spawnLanguageServerProcessAndConnectViaTcp(options: {
206211
'--tcpClientPort',
207212
tcpPort,
208213
]);
209-
LOG.info(
210-
'Creating client at {} via TCP port {}',
211-
options.startScriptPath,
212-
tcpPort,
214+
logger.info(
215+
`Creating client at ${options.startScriptPath} via TCP port ${tcpPort}`,
213216
);
214217

215218
const outputCallback = (data: any) =>
216-
options.outputChannel.append(`${data}`);
219+
options.outputChannel.append(`${data as string}`);
217220
proc.stdout.on('data', outputCallback);
218221
proc.stderr.on('data', outputCallback);
219222
proc.on('exit', (code, sig) =>
@@ -233,7 +236,7 @@ async function findJavaExecutable(rawBinname: string): Promise<string> {
233236
const userJavaHome = workspace.getConfiguration('java').get<string>('home');
234237

235238
if (userJavaHome) {
236-
LOG.debug('Looking for Java in java.home (settings): {}', userJavaHome);
239+
logger.debug(`Looking for Java in java.home (settings): ${userJavaHome}`);
237240

238241
const candidate = await findJavaExecutableInJavaHome(userJavaHome, binname);
239242

@@ -246,9 +249,8 @@ async function findJavaExecutable(rawBinname: string): Promise<string> {
246249
const envJavaHome = process.env['JAVA_HOME'];
247250

248251
if (envJavaHome) {
249-
LOG.debug(
250-
'Looking for Java in JAVA_HOME (environment variable): {}',
251-
envJavaHome,
252+
logger.debug(
253+
`Looking for Java in JAVA_HOME (environment variable): ${envJavaHome}`,
252254
);
253255

254256
const candidate = await findJavaExecutableInJavaHome(envJavaHome, binname);
@@ -260,7 +262,7 @@ async function findJavaExecutable(rawBinname: string): Promise<string> {
260262

261263
// Then search PATH parts
262264
if (process.env['PATH']) {
263-
LOG.debug('Looking for Java in PATH');
265+
logger.debug('Looking for Java in PATH');
264266

265267
const pathparts = process.env['PATH'].split(path.delimiter);
266268
for (let i = 0; i < pathparts.length; i++) {
@@ -272,7 +274,7 @@ async function findJavaExecutable(rawBinname: string): Promise<string> {
272274
}
273275

274276
// Else return the binary name directly (this will likely always fail downstream)
275-
LOG.debug('Could not find Java, will try using binary name directly');
277+
logger.debug('Could not find Java, will try using binary name directly');
276278
return binname;
277279
}
278280

@@ -289,6 +291,4 @@ async function findJavaExecutableInJavaHome(
289291
return binpath;
290292
}
291293
}
292-
293-
return;
294294
}

src/lspExtensions.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import { TextDocumentIdentifier, RequestType } from 'coc.nvim';
22

33
export namespace JarClassContentsRequest {
4-
export const type = new RequestType<
5-
TextDocumentIdentifier,
6-
string,
7-
void,
8-
void
9-
>('kotlin/jarClassContents');
4+
export const type = new RequestType<TextDocumentIdentifier, string, void>(
5+
'kotlin/jarClassContents',
6+
);
107
}

src/serverDownloader.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import path from 'path';
44
import semver from 'semver';
55
import { GitHubReleasesAPIResponse } from './githubApi';
66
import { fsExists } from './util/fsUtils';
7-
import { LOG } from './util/logger';
7+
import { logger } from './util/logger';
88
import { Status } from './util/status';
99

1010
export interface ServerInfo {
@@ -50,8 +50,8 @@ export class ServerDownloader {
5050
(await fs.promises.readFile(this.serverInfoFile())).toString('utf8'),
5151
) as ServerInfo;
5252
return semver.valid(info.version) ? info : undefined;
53-
} catch {
54-
return;
53+
} catch (err) {
54+
logger.warn((err as Error).toString());
5555
}
5656
}
5757

@@ -95,21 +95,23 @@ export class ServerDownloader {
9595

9696
if (secondsSinceLastUpdate > 480) {
9797
// Only query GitHub API for latest version if some time has passed
98-
LOG.info(`Querying GitHub API for new ${this.displayName} version...`);
98+
logger.info(`Querying GitHub API for new ${this.displayName} version...`);
9999

100100
let releaseInfo: GitHubReleasesAPIResponse;
101101

102102
try {
103103
releaseInfo = await this.latestReleaseInfo();
104104
} catch (error) {
105-
const message = `Could not fetch from GitHub releases API: ${error}.`;
105+
const message = `Could not fetch from GitHub releases API: ${(
106+
error as Error
107+
).toString()}.`;
106108
if (serverInfo === undefined) {
107109
// No server is installed yet, so throw
108110
throw new Error(message);
109111
} else {
110112
// Do not throw since user might just be offline
111113
// and a version of the server is already installed
112-
LOG.warn(message);
114+
logger.warn(message);
113115
return;
114116
}
115117
}

0 commit comments

Comments
 (0)