Files
clice/editors/vscode/src/setting.ts
2025-11-28 00:37:22 +08:00

32 lines
853 B
TypeScript

import * as vscode from 'vscode';
interface Setting {
executable: string | undefined,
mode: string,
host: string,
port: number,
}
export function getSetting(): Setting | undefined {
const setting = vscode.workspace.getConfiguration('clice')
const executable = setting.get<string>('executable');
const mode = setting.get<string>('mode');
if (mode !== "pipe" && mode !== "socket") {
vscode.window.showErrorMessage(`Unexpected mode: ${mode}`);
return undefined
}
const host = setting.get<string>('host')!;
const port = setting.get<number>('port')!;
if (mode === "socket" && (!host || !port)) {
vscode.window.showErrorMessage('Socket mode requires both host and port to be configured.');
return undefined;
}
return {
executable, mode, host, port,
}
}