Skip to content

Commit 3d81cc9

Browse files
committed
Added option to delay completion request
1 parent 9288c45 commit 3d81cc9

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,14 @@
109109
"default": 256,
110110
"description": "Max number of new tokens to be generated.",
111111
"order": 7
112+
},
113+
"inference.delay": {
114+
"type": "number",
115+
"default": 250,
116+
"description": "Completion request delay in milliseconds (0 - no delay, -1 - no completions).",
117+
"order": 8,
118+
"minimum": -1,
119+
"maximum": 5000
112120
}
113121
}
114122
}

src/config.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,16 @@ class Config {
3535
}
3636
}
3737

38+
let delay = config.get('delay') as number;
39+
3840
return {
3941
endpoint,
4042
maxLines,
4143
maxTokens,
4244
temperature,
4345
modelName,
44-
modelFormat
46+
modelFormat,
47+
delay
4548
};
4649
}
4750

src/prompts/provider.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,21 @@ export class PromptProvider implements vscode.InlineCompletionItemProvider {
2020
this.context = context;
2121
}
2222

23+
async delayCompletion(delay: number, token: vscode.CancellationToken): Promise<boolean> {
24+
if (config.inference.delay < 0) {
25+
return false;
26+
}
27+
await new Promise(p => setTimeout(p, delay));
28+
if (token.isCancellationRequested) {
29+
return false;
30+
}
31+
return true;
32+
}
33+
2334
async provideInlineCompletionItems(document: vscode.TextDocument, position: vscode.Position, context: vscode.InlineCompletionContext, token: vscode.CancellationToken): Promise<vscode.InlineCompletionItem[] | vscode.InlineCompletionList | undefined | null> {
35+
if (!await this.delayCompletion(config.inference.delay, token)) {
36+
return;
37+
}
2438

2539
try {
2640

@@ -66,15 +80,6 @@ export class PromptProvider implements vscode.InlineCompletionItemProvider {
6680

6781
// Config
6882
let inferenceConfig = config.inference;
69-
// let config = vscode.workspace.getConfiguration('inference');
70-
// let endpoint = config.get('endpoint') as string;
71-
// let model = config.get('model') as string;
72-
// let maxLines = config.get('maxLines') as number;
73-
// let maxTokens = config.get('maxTokens') as number;
74-
// let temperature = config.get('temperature') as number;
75-
// if (endpoint.endsWith('/')) {
76-
// endpoint = endpoint.slice(0, endpoint.length - 1);
77-
// }
7883

7984
// Update status
8085
this.statusbar.text = `$(sync~spin) Llama Coder`;

0 commit comments

Comments
 (0)