Added suggestion delay setting and command to vscode extension. (#106)

* Added suggestion delay setting and command.

* Formatted with prettier

* Removed yarn local dependency
add-tracing
TheEmber 2023-04-17 04:12:16 +03:00 committed by GitHub
parent ac6637bdbb
commit dc88f03a1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 3 deletions

View File

@ -33,6 +33,10 @@
"command": "tabby.setServerUrl",
"title": "Tabby: Set URL of Tabby Server"
},
{
"command": "tabby.setSuggestionDelay",
"title": "Tabby: Set suggestion delay"
},
{
"command": "tabby.openSettings",
"title": "Tabby: Open Settings"
@ -50,6 +54,11 @@
"type": "string",
"default": "http://127.0.0.1:5000",
"markdownDescription": "Specifies the url of [Tabby Server](https://github.com/TabbyML/tabby)."
},
"tabby.suggestionDelay": {
"type": "number",
"default": 150,
"markdownDescription": "Specifies the delay after which the request is sent to the tabby(ms)."
}
}
}

View File

@ -20,6 +20,33 @@ const toogleEnabled: Command = {
},
};
const setSuggestionDelay: Command = {
command: "tabby.setSuggestionDelay",
callback: () => {
const configuration = workspace.getConfiguration("tabby");
window
.showInputBox({
prompt: "Enter the suggestion delay in ms",
value: configuration.get("suggestionDelay", "150"),
})
.then((delay) => {
if (delay) {
if (Number.parseInt(delay) !== null) {
console.debug("Set suggestion delay: ", Number.parseInt(delay));
configuration.update(
"suggestionDelay",
Number.parseInt(delay),
target,
false
);
} else {
console.debug("Set suggestion delay error. Wrong input.");
}
}
});
},
};
const setServerUrl: Command = {
command: "tabby.setServerUrl",
callback: () => {
@ -59,6 +86,6 @@ const emitEvent: Command = {
},
};
export const tabbyCommands = [toogleEnabled, setServerUrl, openSettings, emitEvent].map((command) =>
export const tabbyCommands = [toogleEnabled, setServerUrl, setSuggestionDelay, openSettings, emitEvent].map((command) =>
commands.registerCommand(command.command, command.callback, command.thisArg)
);

View File

@ -21,6 +21,7 @@ export class TabbyCompletionProvider implements InlineCompletionItemProvider {
private tabbyClient = TabbyClient.getInstance();
// User Settings
private enabled: boolean = true;
private suggestionDelay: number = 150;
constructor() {
this.updateConfiguration();
@ -49,8 +50,7 @@ export class TabbyCompletionProvider implements InlineCompletionItemProvider {
const currentTimestamp = Date.now();
this.latestTimestamp = currentTimestamp;
const suggestionDelay = 150;
await sleep(suggestionDelay);
await sleep(this.suggestionDelay);
if (currentTimestamp < this.latestTimestamp) {
return emptyResponse;
}
@ -94,6 +94,7 @@ export class TabbyCompletionProvider implements InlineCompletionItemProvider {
private updateConfiguration() {
const configuration = workspace.getConfiguration("tabby");
this.enabled = configuration.get("enabled", true);
this.suggestionDelay = configuration.get("suggestionDelay", 150);
}
private getPrompt(document: TextDocument, position: Position): string | undefined {