From 6d12737fda8746df64a215e1c7f45bf5078982db Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 28 Oct 2024 03:52:19 -0700 Subject: [PATCH] add throttling --- extensions/void/src/DiffProvider.ts | 7 +++++-- extensions/void/src/common/ctrlK.ts | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/extensions/void/src/DiffProvider.ts b/extensions/void/src/DiffProvider.ts index 9191392e..794905fa 100644 --- a/extensions/void/src/DiffProvider.ts +++ b/extensions/void/src/DiffProvider.ts @@ -2,8 +2,10 @@ import * as vscode from 'vscode'; import { findDiffs } from './findDiffs'; import { Diff, DiffArea, BaseDiff, } from './common/shared_types'; import { readFileContentOfUri } from './common/readFileContentOfUri'; +import { throttle } from 'lodash'; +const THROTTLE_TIME = 100 // TODO in theory this should be disposed const greenDecoration = vscode.window.createTextEditorDecorationType({ @@ -377,7 +379,7 @@ export class DiffProvider implements vscode.CodeLensProvider { // used by us only - public async updateStream(docUriStr: string, diffArea: DiffArea, newDiffAreaCode: string) { + public updateStream = throttle(async (docUriStr: string, diffArea: DiffArea, newDiffAreaCode: string) => { const editor = vscode.window.activeTextEditor // TODO the editor should be that of `docUri` and not necessarily the current editor if (!editor) { @@ -432,12 +434,13 @@ export class DiffProvider implements vscode.CodeLensProvider { const diffareaRange = new vscode.Range(diffArea.startLine, 0, diffArea.endLine, Number.MAX_SAFE_INTEGER) workspaceEdit.replace(editor.document.uri, diffareaRange, newCode) await vscode.workspace.applyEdit(workspaceEdit) - } + }, THROTTLE_TIME) } + /* import * as vscode from 'vscode'; import { SuggestedEdit } from './findDiffs'; diff --git a/extensions/void/src/common/ctrlK.ts b/extensions/void/src/common/ctrlK.ts index ebdc9dec..703ad30c 100644 --- a/extensions/void/src/common/ctrlK.ts +++ b/extensions/void/src/common/ctrlK.ts @@ -1,5 +1,5 @@ import * as vscode from 'vscode'; -import { OnFinalMessage, OnText, sendLLMMessage, SetAbort } from "./sendLLMMessage" +import { AbortRef, OnFinalMessage, OnText, sendLLMMessage } from "./sendLLMMessage" import { VoidConfig } from '../sidebar/contextForConfig'; import { findDiffs } from '../findDiffs'; import { searchDiffChunkInstructions, writeFileWithDiffInstructions } from './systemPrompts'; @@ -31,7 +31,7 @@ const applyCtrlLChangesToFile = throttle( ) -const applyCtrlK = async ({ fileUri, startLine, endLine, instructions, voidConfig, setAbort }: { fileUri: vscode.Uri, startLine: number, endLine: number, instructions: string, voidConfig: VoidConfig, setAbort: SetAbort }) => { +const applyCtrlK = async ({ fileUri, startLine, endLine, instructions, voidConfig, abortRef }: { fileUri: vscode.Uri, startLine: number, endLine: number, instructions: string, voidConfig: VoidConfig, abortRef: AbortRef }) => { const fileStr = await readFileContentOfUri(fileUri) const fileLines = fileStr.split('\n') @@ -91,7 +91,7 @@ Complete the following: console.error('Error rewriting file with diff', e); }, voidConfig, - setAbort, + abortRef, }) }