mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-20 08:38:56 +01:00
Move drop/paste ids onto providers (#189961)
For #179430, #30066 This lets us call just the provider we are interested in
This commit is contained in:
@@ -9,11 +9,11 @@ import { createEditForMediaFiles, createEditAddingLinksForUriList, mediaMimes, g
|
||||
|
||||
class PasteEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
|
||||
private readonly _id = 'insertLink';
|
||||
public static readonly id = 'insertLink';
|
||||
|
||||
private readonly _yieldTo = [
|
||||
{ mimeType: 'text/plain' },
|
||||
{ extensionId: 'vscode.ipynb', editId: 'insertAttachment' },
|
||||
{ extensionId: 'vscode.ipynb', providerId: 'insertAttachment' },
|
||||
];
|
||||
|
||||
async provideDocumentPasteEdits(
|
||||
@@ -32,7 +32,7 @@ class PasteEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
return createEdit;
|
||||
}
|
||||
|
||||
const uriEdit = new vscode.DocumentPasteEdit('', this._id, '');
|
||||
const uriEdit = new vscode.DocumentPasteEdit('', '');
|
||||
const urlList = await dataTransfer.get('text/uri-list')?.asString();
|
||||
if (!urlList) {
|
||||
return;
|
||||
@@ -65,7 +65,7 @@ class PasteEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
return;
|
||||
}
|
||||
|
||||
const pasteEdit = new vscode.DocumentPasteEdit(edit.snippet, this._id, edit.label);
|
||||
const pasteEdit = new vscode.DocumentPasteEdit(edit.snippet, edit.label);
|
||||
pasteEdit.additionalEdit = edit.additionalEdits;
|
||||
pasteEdit.yieldTo = this._yieldTo;
|
||||
return pasteEdit;
|
||||
@@ -74,6 +74,7 @@ class PasteEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
|
||||
export function registerPasteSupport(selector: vscode.DocumentSelector,) {
|
||||
return vscode.languages.registerDocumentPasteEditProvider(selector, new PasteEditProvider(), {
|
||||
id: PasteEditProvider.id,
|
||||
pasteMimeTypes: [
|
||||
'text/uri-list',
|
||||
...mediaMimes,
|
||||
|
||||
@@ -10,7 +10,7 @@ const textPlainMime = 'text/plain';
|
||||
|
||||
class PasteLinkEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
|
||||
readonly id = 'insertMarkdownLink';
|
||||
public static readonly id = 'insertMarkdownLink';
|
||||
|
||||
async provideDocumentPasteEdits(
|
||||
document: vscode.TextDocument,
|
||||
@@ -34,7 +34,7 @@ class PasteLinkEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
return;
|
||||
}
|
||||
|
||||
const edit = new vscode.DocumentPasteEdit('', this.id, pasteEdit.label);
|
||||
const edit = new vscode.DocumentPasteEdit('', pasteEdit.label);
|
||||
edit.additionalEdit = pasteEdit.additionalEdits;
|
||||
edit.yieldTo = pasteEdit.markdownLink ? undefined : [{ mimeType: textPlainMime }];
|
||||
return edit;
|
||||
@@ -43,6 +43,7 @@ class PasteLinkEditProvider implements vscode.DocumentPasteEditProvider {
|
||||
|
||||
export function registerLinkPasteSupport(selector: vscode.DocumentSelector,) {
|
||||
return vscode.languages.registerDocumentPasteEditProvider(selector, new PasteLinkEditProvider(), {
|
||||
id: PasteLinkEditProvider.id,
|
||||
pasteMimeTypes: [textPlainMime]
|
||||
});
|
||||
}
|
||||
|
||||
@@ -10,11 +10,11 @@ import { Schemes } from '../../util/schemes';
|
||||
|
||||
class MarkdownImageDropProvider implements vscode.DocumentDropEditProvider {
|
||||
|
||||
private readonly _id = 'insertLink';
|
||||
public static readonly id = 'insertLink';
|
||||
|
||||
private readonly _yieldTo = [
|
||||
{ mimeType: 'text/plain' },
|
||||
{ extensionId: 'vscode.ipynb', editId: 'insertAttachment' },
|
||||
{ extensionId: 'vscode.ipynb', providerId: 'insertAttachment' },
|
||||
];
|
||||
|
||||
async provideDocumentDropEdits(document: vscode.TextDocument, _position: vscode.Position, dataTransfer: vscode.DataTransfer, token: vscode.CancellationToken): Promise<vscode.DocumentDropEdit | undefined> {
|
||||
@@ -46,7 +46,6 @@ class MarkdownImageDropProvider implements vscode.DocumentDropEditProvider {
|
||||
}
|
||||
|
||||
const edit = new vscode.DocumentDropEdit(snippet.snippet);
|
||||
edit.id = this._id;
|
||||
edit.label = snippet.label;
|
||||
edit.yieldTo = this._yieldTo;
|
||||
return edit;
|
||||
@@ -68,7 +67,6 @@ class MarkdownImageDropProvider implements vscode.DocumentDropEditProvider {
|
||||
}
|
||||
|
||||
const edit = new vscode.DocumentDropEdit(filesEdit.snippet);
|
||||
edit.id = this._id;
|
||||
edit.label = filesEdit.label;
|
||||
edit.additionalEdit = filesEdit.additionalEdits;
|
||||
edit.yieldTo = this._yieldTo;
|
||||
@@ -78,6 +76,7 @@ class MarkdownImageDropProvider implements vscode.DocumentDropEditProvider {
|
||||
|
||||
export function registerDropIntoEditorSupport(selector: vscode.DocumentSelector) {
|
||||
return vscode.languages.registerDocumentDropEditProvider(selector, new MarkdownImageDropProvider(), {
|
||||
id: MarkdownImageDropProvider.id,
|
||||
dropMimeTypes: [
|
||||
'text/uri-list',
|
||||
...mediaMimes,
|
||||
|
||||
Reference in New Issue
Block a user