showOpenDialog method

Future<List<String>> showOpenDialog({
  1. bool canSelectFiles = true,
  2. bool canSelectFolders = false,
  3. bool canSelectMany = false,
  4. String? defaultUri,
  5. Map<String, List<String>>? filters,
  6. String? title,
  7. int timeoutSeconds = 30 * 60,
})

Show open dialog

Implementation

Future<List<String>> showOpenDialog({
  bool canSelectFiles = true,
  bool canSelectFolders = false,
  bool canSelectMany = false,
  String? defaultUri,
  Map<String, List<String>>? filters,
  String? title,
  int timeoutSeconds = 30 * 60,
}) async {
  final result = await _adapter.sendRequest(
    'executeScriptVce',
    {
      'script': '''
      const uris = await context.vscode.window.showOpenDialog({
        canSelectFiles: params.canSelectFiles,
        canSelectFolders: params.canSelectFolders,
        canSelectMany: params.canSelectMany,
        defaultUri: params.defaultUri ? context.vscode.Uri.file(params.defaultUri) : undefined,
        filters: params.filters,
        title: params.title
      });
      return uris ? uris.map(uri => uri.fsPath) : [];
    ''',
      'params': {
        'canSelectFiles': canSelectFiles,
        'canSelectFolders': canSelectFolders,
        'canSelectMany': canSelectMany,
        'defaultUri': defaultUri,
        'filters': filters,
        'title': title,
      },
    },
    scriptName: 'showOpenDialog',
    timeout: Duration(seconds: timeoutSeconds),
  );

  if (result['success'] == true) {
    return (result['result'] as List).cast<String>();
  }
  return [];
}