summaryrefslogtreecommitdiff
path: root/extension/src
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-06-27 09:51:37 -0700
committerNate Sesti <sestinj@gmail.com>2023-06-27 09:51:37 -0700
commit5dfd7b8ee8d79c47bf39ea8a97872f1e2af23c35 (patch)
treea57a7db561166481c08f935077aa9965589acada /extension/src
parent3ecd29eb6031be378d8c8f01a1e25259e04087e5 (diff)
downloadsncontinue-5dfd7b8ee8d79c47bf39ea8a97872f1e2af23c35.tar.gz
sncontinue-5dfd7b8ee8d79c47bf39ea8a97872f1e2af23c35.tar.bz2
sncontinue-5dfd7b8ee8d79c47bf39ea8a97872f1e2af23c35.zip
accept/reject all
Diffstat (limited to 'extension/src')
-rw-r--r--extension/src/commands.ts4
-rw-r--r--extension/src/suggestions.ts32
2 files changed, 33 insertions, 3 deletions
diff --git a/extension/src/commands.ts b/extension/src/commands.ts
index 22e15c43..424c238a 100644
--- a/extension/src/commands.ts
+++ b/extension/src/commands.ts
@@ -10,6 +10,8 @@ import {
rejectSuggestionCommand,
suggestionDownCommand,
suggestionUpCommand,
+ acceptAllSuggestionsCommand,
+ rejectAllSuggestionsCommand,
} from "./suggestions";
import * as bridge from "./bridge";
import { debugPanelWebview, setupDebugPanel } from "./debugPanel";
@@ -61,6 +63,8 @@ const commandsMap: { [command: string]: (...args: any) => any } = {
"continue.suggestionUp": suggestionUpCommand,
"continue.acceptSuggestion": acceptSuggestionCommand,
"continue.rejectSuggestion": rejectSuggestionCommand,
+ "continue.acceptAllSuggestions": acceptAllSuggestionsCommand,
+ "continue.rejectAllSuggestions": rejectAllSuggestionsCommand,
"continue.focusContinueInput": async () => {
vscode.commands.executeCommand("continue.continueGUIView.focus");
debugPanelWebview?.postMessage({
diff --git a/extension/src/suggestions.ts b/extension/src/suggestions.ts
index 9b358899..4631c33e 100644
--- a/extension/src/suggestions.ts
+++ b/extension/src/suggestions.ts
@@ -238,6 +238,26 @@ export function acceptSuggestionCommand(key: SuggestionRanges | null = null) {
selectSuggestion("selected", key);
}
+function handleAllSuggestions(accept: boolean) {
+ const editor = vscode.window.activeTextEditor;
+ if (!editor) return;
+ const editorUri = editor.document.uri.toString();
+ const suggestions = editorToSuggestions.get(editorUri);
+ if (!suggestions) return;
+
+ while (suggestions.length > 0) {
+ selectSuggestion(accept ? "new" : "old");
+ }
+}
+
+export function acceptAllSuggestionsCommand() {
+ handleAllSuggestions(true);
+}
+
+export function rejectAllSuggestionsCommand() {
+ handleAllSuggestions(false);
+}
+
export async function rejectSuggestionCommand(
key: SuggestionRanges | null = null
) {
@@ -292,9 +312,15 @@ export async function showSuggestion(
return new Promise((resolve, reject) => {
editor!
- .edit((edit) => {
- edit.insert(new vscode.Position(range.end.line, 0), suggestion + "\n");
- })
+ .edit(
+ (edit) => {
+ edit.insert(
+ new vscode.Position(range.end.line, 0),
+ suggestion + "\n"
+ );
+ },
+ { undoStopBefore: false, undoStopAfter: false }
+ )
.then(
(success) => {
if (success) {