in src/main.ts [1224:1293]
protected registerProvider(options: undefined): Disposable {
const client = this._client;
let openFileBrowser = (ownerUri: string, expandPath: string, fileFilters: string[], changeFilter: boolean): Thenable<boolean> => {
let params: types.FileBrowserOpenParams = { ownerUri, expandPath, fileFilters, changeFilter };
return client.sendRequest(protocol.FileBrowserOpenRequest.type, params).then(
r => r,
e => {
client.logFailedRequest(protocol.FileBrowserOpenRequest.type, e);
return Promise.resolve(undefined);
}
);
};
let registerOnFileBrowserOpened = (handler: (response: azdata.FileBrowserOpenedParams) => any): void => {
client.onNotification(protocol.FileBrowserOpenedNotification.type, handler);
};
let expandFolderNode = (ownerUri: string, expandPath: string): Thenable<boolean> => {
let params: types.FileBrowserExpandParams = { ownerUri, expandPath };
return client.sendRequest(protocol.FileBrowserExpandRequest.type, params).then(
r => r,
e => {
client.logFailedRequest(protocol.FileBrowserExpandRequest.type, e);
return Promise.resolve(undefined);
}
);
};
let registerOnFolderNodeExpanded = (handler: (response: azdata.FileBrowserExpandedParams) => any): void => {
client.onNotification(protocol.FileBrowserExpandedNotification.type, handler);
};
let validateFilePaths = (ownerUri: string, serviceType: string, selectedFiles: string[]): Thenable<boolean> => {
let params: types.FileBrowserValidateParams = { ownerUri, serviceType, selectedFiles };
return client.sendRequest(protocol.FileBrowserValidateRequest.type, params).then(
r => r,
e => {
client.logFailedRequest(protocol.FileBrowserValidateRequest.type, e);
return Promise.resolve(undefined);
}
);
};
let registerOnFilePathsValidated = (handler: (response: azdata.FileBrowserValidatedParams) => any): void => {
client.onNotification(protocol.FileBrowserValidatedNotification.type, handler);
};
let closeFileBrowser = (ownerUri: string): Thenable<azdata.FileBrowserCloseResponse> => {
let params: types.FileBrowserCloseParams = { ownerUri };
return client.sendRequest(protocol.FileBrowserCloseRequest.type, params).then(
r => r,
e => {
client.logFailedRequest(protocol.FileBrowserCloseRequest.type, e);
return Promise.resolve(undefined);
}
);
};
return azdata.dataprotocol.registerFileBrowserProvider({
providerId: client.providerId,
closeFileBrowser,
expandFolderNode,
openFileBrowser,
registerOnFileBrowserOpened,
registerOnFilePathsValidated,
registerOnFolderNodeExpanded,
validateFilePaths
});
}