提交 c2b3309f 编写于 作者: J Johannes Rieken

use async clipboard when running 'insert snippet', #76847

上级 35155f7a
......@@ -14,6 +14,7 @@ import { EditorContextKeys } from 'vs/editor/common/editorContextKeys';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
import { Snippet, SnippetSource } from 'vs/workbench/contrib/snippets/browser/snippetsFile';
import { IQuickPickItem, IQuickInputService, QuickPickInput } from 'vs/platform/quickinput/common/quickInput';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
interface ISnippetPick extends IQuickPickItem {
snippet: Snippet;
......@@ -87,6 +88,7 @@ class InsertSnippetAction extends EditorAction {
return undefined;
}
const clipboardService = accessor.get(IClipboardService);
const quickInputService = accessor.get(IQuickInputService);
const { lineNumber, column } = editor.getPosition();
let { snippet, name, langId } = Args.fromUser(arg);
......@@ -165,9 +167,13 @@ class InsertSnippetAction extends EditorAction {
}
return quickInputService.pick(picks, { matchOnDetail: true }).then(pick => resolve(pick && pick.snippet), reject);
}
}).then(snippet => {
}).then(async snippet => {
let clipboardText: string | undefined;
if (snippet.needsClipboard) {
clipboardText = await clipboardService.readText();
}
if (snippet) {
SnippetController2.get(editor).insert(snippet.codeSnippet, { overwriteBefore: 0, overwriteAfter: 0 });
SnippetController2.get(editor).insert(snippet.codeSnippet, { clipboardText });
}
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册