mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-22 11:19:32 +00:00
Add priority to paste / drop apis (#182109)
* Add priority to paste / drop apis Fixes #181886 Replacement for #181453 * Make notebooks prefer text over creating attachments
This commit is contained in:
@@ -32,13 +32,19 @@ class PasteEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
return;
|
||||
}
|
||||
|
||||
const edit = await this._makeCreateImagePasteEdit(document, dataTransfer, token);
|
||||
if (edit) {
|
||||
return edit;
|
||||
const createEdit = await this._makeCreateImagePasteEdit(document, dataTransfer, token);
|
||||
if (createEdit) {
|
||||
return createEdit;
|
||||
}
|
||||
|
||||
const snippet = await tryGetUriListSnippet(document, dataTransfer, token);
|
||||
return snippet ? new vscode.DocumentPasteEdit(snippet.snippet, this._id, snippet.label) : undefined;
|
||||
if (!snippet) {
|
||||
return;
|
||||
}
|
||||
|
||||
const uriEdit = new vscode.DocumentPasteEdit(snippet.snippet, this._id, snippet.label);
|
||||
uriEdit.priority = this._getPriority(dataTransfer);
|
||||
return uriEdit;
|
||||
}
|
||||
|
||||
private async _makeCreateImagePasteEdit(document: vscode.TextDocument, dataTransfer: vscode.DataTransfer, token: vscode.CancellationToken): Promise<vscode.DocumentPasteEdit | undefined> {
|
||||
@@ -89,10 +95,19 @@ class PasteEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
return;
|
||||
}
|
||||
|
||||
const pasteEdit = new vscode.DocumentPasteEdit(snippet.snippet, '', snippet.label);
|
||||
const pasteEdit = new vscode.DocumentPasteEdit(snippet.snippet, this._id, snippet.label);
|
||||
pasteEdit.additionalEdit = workspaceEdit;
|
||||
pasteEdit.priority = this._getPriority(dataTransfer);
|
||||
return pasteEdit;
|
||||
}
|
||||
|
||||
private _getPriority(dataTransfer: vscode.DataTransfer): number {
|
||||
if (dataTransfer.get('text/plain')) {
|
||||
// Deprioritize in favor of normal text content
|
||||
return -10;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
export function registerPasteSupport(selector: vscode.DocumentSelector,) {
|
||||
|
||||
Reference in New Issue
Block a user