mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 21:09:43 +00:00
some 💄, some API todos
This commit is contained in:
parent
c83064b982
commit
52f633d19c
|
@ -17,7 +17,7 @@ vscode.workspace.registerFileSystemProvider(testFs.scheme, testFs, { isCaseSensi
|
|||
export async function createRandomFile(contents = '', dir: vscode.Uri | undefined = undefined, ext = ''): Promise<vscode.Uri> {
|
||||
let fakeFile: vscode.Uri;
|
||||
if (dir) {
|
||||
assert.equal(dir.scheme, testFs.scheme);
|
||||
assert.strictEqual(dir.scheme, testFs.scheme);
|
||||
fakeFile = dir.with({ path: dir.path + '/' + rndName() + ext });
|
||||
} else {
|
||||
fakeFile = vscode.Uri.parse(`${testFs.scheme}:/${rndName() + ext}`);
|
||||
|
@ -117,3 +117,19 @@ export function assertNoRpcFromEntry(entry: [obj: any, name: string]) {
|
|||
assert.strictEqual(rpcPaths.length, 0, rpcPaths.join('\n'));
|
||||
assert.strictEqual(proxyPaths.length, 0, proxyPaths.join('\n')); // happens...
|
||||
}
|
||||
|
||||
export async function asPromise<T>(event: vscode.Event<T>, timeout = 1000): Promise<T> {
|
||||
return new Promise<T>((resolve, reject) => {
|
||||
|
||||
const handle = setTimeout(() => {
|
||||
sub.dispose();
|
||||
reject(new Error('asPromise TIMEOUT reached'));
|
||||
}, timeout);
|
||||
|
||||
const sub = event(e => {
|
||||
clearTimeout(handle);
|
||||
sub.dispose();
|
||||
resolve(e);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
4
src/vs/vscode.proposed.d.ts
vendored
4
src/vs/vscode.proposed.d.ts
vendored
|
@ -1105,6 +1105,7 @@ declare module 'vscode' {
|
|||
readonly uri: Uri;
|
||||
readonly version: number;
|
||||
readonly fileName: string;
|
||||
// todo@API should we really expose this?
|
||||
readonly viewType: string;
|
||||
readonly isDirty: boolean;
|
||||
readonly isUntitled: boolean;
|
||||
|
@ -1305,6 +1306,8 @@ declare module 'vscode' {
|
|||
|
||||
export namespace notebook {
|
||||
|
||||
// todo@API should we really support to pass the viewType? We do NOT support
|
||||
// to open the same file with different viewTypes at the same time
|
||||
export function openNotebookDocument(uri: Uri, viewType?: string): Thenable<NotebookDocument>;
|
||||
export const onDidOpenNotebookDocument: Event<NotebookDocument>;
|
||||
export const onDidCloseNotebookDocument: Event<NotebookDocument>;
|
||||
|
@ -1330,6 +1333,7 @@ declare module 'vscode' {
|
|||
export const onDidChangeActiveNotebookEditor: Event<NotebookEditor | undefined>;
|
||||
export const onDidChangeNotebookEditorSelection: Event<NotebookEditorSelectionChangeEvent>;
|
||||
export const onDidChangeNotebookEditorVisibleRanges: Event<NotebookEditorVisibleRangesChangeEvent>;
|
||||
// TODO@API add overload for just a URI
|
||||
export function showNotebookDocument(document: NotebookDocument, options?: NotebookDocumentShowOptions): Thenable<NotebookEditor>;
|
||||
}
|
||||
|
||||
|
|
|
@ -501,7 +501,6 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
|
|||
|
||||
const disposable = this._notebookService.registerNotebookController(viewType, extension, controller);
|
||||
this._notebookProviders.set(viewType, { controller, disposable });
|
||||
return;
|
||||
}
|
||||
|
||||
async $updateNotebookProviderOptions(viewType: string, options?: { transientOutputs: boolean; transientMetadata: TransientMetadata; }): Promise<void> {
|
||||
|
|
|
@ -680,6 +680,9 @@ export class NotebookService extends Disposable implements INotebookService, ICu
|
|||
}
|
||||
|
||||
registerNotebookController(viewType: string, extensionData: NotebookExtensionDescription, controller: IMainNotebookController): IDisposable {
|
||||
if (this._notebookProviders.has(viewType)) {
|
||||
throw new Error(`notebook controller for viewtype '${viewType}' already exists`);
|
||||
}
|
||||
this._notebookProviders.set(viewType, { extensionData, controller });
|
||||
|
||||
if (controller.viewOptions && !this.notebookProviderInfoStore.get(viewType)) {
|
||||
|
|
Loading…
Reference in a new issue