Disallow floating promises. (#14605)

This commit is contained in:
Christian Gunderman
2025-12-05 16:12:49 -08:00
committed by GitHub
parent 3cf44acc08
commit 025e450ac2
57 changed files with 128 additions and 4 deletions
@@ -20,6 +20,10 @@ export default [
parser: tsParser,
ecmaVersion: 2022,
sourceType: 'module',
parserOptions: {
project: './tsconfig.json',
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
@@ -35,6 +39,7 @@ export default [
eqeqeq: 'warn',
'no-throw-literal': 'warn',
semi: 'warn',
'@typescript-eslint/no-floating-promises': ['error'],
},
},
];
@@ -62,9 +62,11 @@ export class DiffManager {
) {
this.subscriptions.push(
vscode.window.onDidChangeActiveTextEditor((editor) => {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.onActiveEditorChange(editor);
}),
);
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.onActiveEditorChange(vscode.window.activeTextEditor);
}
+10 -4
View File
@@ -112,6 +112,7 @@ export async function activate(context: vscode.ExtensionContext) {
detectIdeFromEnv().name,
);
// eslint-disable-next-line @typescript-eslint/no-floating-promises
checkForUpdates(context, log, isManagedExtensionSurface);
const diffContentProvider = new DiffContentProvider();
@@ -120,6 +121,7 @@ export async function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(
vscode.workspace.onDidCloseTextDocument((doc) => {
if (doc.uri.scheme === DIFF_SCHEME) {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
diffManager.cancelDiff(doc.uri);
}
}),
@@ -127,11 +129,12 @@ export async function activate(context: vscode.ExtensionContext) {
DIFF_SCHEME,
diffContentProvider,
),
vscode.commands.registerCommand(
(vscode.commands.registerCommand(
'gemini.diff.accept',
(uri?: vscode.Uri) => {
const docUri = uri ?? vscode.window.activeTextEditor?.document.uri;
if (docUri && docUri.scheme === DIFF_SCHEME) {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
diffManager.acceptDiff(docUri);
}
},
@@ -141,10 +144,11 @@ export async function activate(context: vscode.ExtensionContext) {
(uri?: vscode.Uri) => {
const docUri = uri ?? vscode.window.activeTextEditor?.document.uri;
if (docUri && docUri.scheme === DIFF_SCHEME) {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
diffManager.cancelDiff(docUri);
}
},
),
)),
);
ideServer = new IDEServer(log, diffManager);
@@ -166,12 +170,14 @@ export async function activate(context: vscode.ExtensionContext) {
}
context.subscriptions.push(
vscode.workspace.onDidChangeWorkspaceFolders(() => {
(vscode.workspace.onDidChangeWorkspaceFolders(() => {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
ideServer.syncEnvVars();
}),
vscode.workspace.onDidGrantWorkspaceTrust(() => {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
ideServer.syncEnvVars();
}),
})),
vscode.commands.registerCommand('gemini-cli.runGeminiCLI', async () => {
const workspaceFolders = vscode.workspace.workspaceFolders;
if (!workspaceFolders || workspaceFolders.length === 0) {
@@ -107,6 +107,7 @@ function sendIdeContextUpdateNotification(
params: ideContext,
});
// eslint-disable-next-line @typescript-eslint/no-floating-promises
transport.send(notification);
}
@@ -196,6 +197,7 @@ export class IDEServer {
const onDidChangeDiffSubscription = this.diffManager.onDidChange(
(notification) => {
for (const transport of Object.values(this.transports)) {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
transport.send(notification);
}
},
@@ -248,6 +250,8 @@ export class IDEServer {
delete this.transports[transport.sessionId];
}
};
// eslint-disable-next-line @typescript-eslint/no-floating-promises
mcpServer.connect(transport);
} else {
this.log(