mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 17:48:56 +01:00
Support more image/video/audio types for markdown copy into files
Fixes #239016
This commit is contained in:
@@ -8,16 +8,52 @@ export const Mime = {
|
||||
textPlain: 'text/plain',
|
||||
} as const;
|
||||
|
||||
export const mediaMimes = new Set([
|
||||
'image/avif',
|
||||
'image/bmp',
|
||||
'image/gif',
|
||||
'image/jpeg',
|
||||
'image/png',
|
||||
'image/webp',
|
||||
'video/mp4',
|
||||
'video/ogg',
|
||||
'audio/mpeg',
|
||||
'audio/aac',
|
||||
'audio/x-wav',
|
||||
export const rootMediaMimesTypes = Object.freeze({
|
||||
image: 'image',
|
||||
audio: 'audio',
|
||||
video: 'video',
|
||||
});
|
||||
|
||||
export enum MediaKind {
|
||||
Image = 1,
|
||||
Video,
|
||||
Audio
|
||||
}
|
||||
|
||||
export function getMediaKindForMime(mime: string): MediaKind | undefined {
|
||||
const root = mime.toLowerCase().split('/').at(0);
|
||||
switch (root) {
|
||||
case 'image': return MediaKind.Image;
|
||||
case 'video': return MediaKind.Video;
|
||||
case 'audio': return MediaKind.Audio;
|
||||
default: return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
export const mediaFileExtensions = new Map<string, MediaKind>([
|
||||
// Images
|
||||
['avif', MediaKind.Image],
|
||||
['bmp', MediaKind.Image],
|
||||
['gif', MediaKind.Image],
|
||||
['ico', MediaKind.Image],
|
||||
['jpe', MediaKind.Image],
|
||||
['jpeg', MediaKind.Image],
|
||||
['jpg', MediaKind.Image],
|
||||
['png', MediaKind.Image],
|
||||
['psd', MediaKind.Image],
|
||||
['svg', MediaKind.Image],
|
||||
['tga', MediaKind.Image],
|
||||
['tif', MediaKind.Image],
|
||||
['tiff', MediaKind.Image],
|
||||
['webp', MediaKind.Image],
|
||||
|
||||
// Videos
|
||||
['ogg', MediaKind.Video],
|
||||
['mp4', MediaKind.Video],
|
||||
['mov', MediaKind.Video],
|
||||
|
||||
// Audio Files
|
||||
['mp3', MediaKind.Audio],
|
||||
['aac', MediaKind.Audio],
|
||||
['wav', MediaKind.Audio],
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user