MCPcopy Create free account
hub / github.com/deepnote/vscode-deepnote / showDialog

Method showDialog

src/notebooks/export/exportDialog.ts:21–67  ·  view source on GitHub ↗
(
        format: ExportFormat,
        source: Uri | undefined,
        defaultFileName?: string
    )

Source from the content-addressed store, hash-verified

19 */
20export class ExportDialog {
21 public async showDialog(
22 format: ExportFormat,
23 source: Uri | undefined,
24 defaultFileName?: string
25 ): Promise<Uri | undefined> {
26 // map each export method to a set of file extensions
27 let fileExtensions: { [name: string]: string[] } = {};
28 let extension: string | undefined;
29 switch (format) {
30 case ExportFormat.python:
31 fileExtensions = PythonExtensions;
32 extension = '.py';
33 break;
34
35 case ExportFormat.pdf:
36 extension = '.pdf';
37 fileExtensions = PDFExtensions;
38 break;
39
40 case ExportFormat.html:
41 extension = '.html';
42 fileExtensions = HTMLExtensions;
43 break;
44
45 case ExportFormat.ipynb:
46 extension = '.ipynb';
47 const filtersKey = localize.DataScience.exportDialogFilter;
48 fileExtensions[filtersKey] = ['ipynb'];
49 break;
50
51 default:
52 return;
53 }
54
55 const targetFileName =
56 defaultFileName || !source
57 ? defaultFileName || ''
58 : `${path.basename(source.path, path.extname(source.path))}${extension}`;
59
60 const options: SaveDialogOptions = {
61 defaultUri: await this.getDefaultUri(source, targetFileName),
62 saveLabel: localize.DataScience.exportButtonTitle,
63 filters: fileExtensions
64 };
65
66 return window.showSaveDialog(options);
67 }
68
69 private async getDefaultUri(source: Uri | undefined, targetFileName: string): Promise<Uri | undefined> {
70 if (source && source.scheme === 'untitled' && isWebExtension()) {

Callers 4

getTargetFileMethod · 0.80
getTargetFileFunction · 0.80
exportMethod · 0.80
exportFileMethod · 0.80

Calls 3

getDefaultUriMethod · 0.95
basenameMethod · 0.65
extnameMethod · 0.65

Tested by

no test coverage detected