本文整理汇总了TypeScript中ts-disposables.CompositeDisposable类的典型用法代码示例。如果您正苦于以下问题:TypeScript CompositeDisposable类的具体用法?TypeScript CompositeDisposable怎么用?TypeScript CompositeDisposable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CompositeDisposable类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: switch
public switch(callback: (editor: ILanguageClientTextEditor, cd: CompositeDisposable) => void): IDisposable {
const outerCd = new CompositeDisposable();
this._disposable.add(outerCd);
outerCd.add(
() => this._disposable.remove(outerCd),
this.editor$
.filter(z => !!z)
.subscribe(editor => {
const innerCd = new CompositeDisposable();
outerCd.add(
innerCd,
this.editor$
.filter(active => active !== editor)
.subscribe(() => {
outerCd.remove(innerCd);
innerCd.dispose();
})
);
callback(editor, innerCd);
})
);
return outerCd;
}
示例2: it
it('adds commands', () => {
const disposable = new CompositeDisposable();
const commands: any = atom.commands;
expect(commands.registeredCommands['omnisharp-atom:type-lookup']).to.be.true;
disposable.dispose();
});
示例3: add
public add(
target: (string | KeymapType),
commandsOrPlatformOrKeystrokes: KeymapPlatform | string | IAtomKeymaps.KeymapObject,
commandsOrKeystrokes?: string | IAtomKeymaps.KeymapObject,
command?: string) {
let keystrokes: string | undefined;
let platform = KeymapPlatform.All;
let commands: IAtomKeymaps.KeymapObject | undefined;
let keymap: IAtomKeymaps.Keymap;
const cd = new CompositeDisposable();
this._disposable.add(cd);
cd.add(() => this._disposable.remove(cd));
const resolvedTarget = this._getSelectorType(target, platform);
if (typeof commandsOrPlatformOrKeystrokes === 'string') {
keystrokes = commandsOrPlatformOrKeystrokes;
} else if (typeof commandsOrPlatformOrKeystrokes === 'number') {
platform = commandsOrPlatformOrKeystrokes;
} else {
commands = commandsOrPlatformOrKeystrokes;
}
if (commandsOrKeystrokes) {
if (typeof commandsOrKeystrokes === 'string') {
keystrokes = commandsOrKeystrokes;
} else {
commands = commandsOrKeystrokes;
}
}
if (keystrokes && command) {
commands = {};
commands[this._getKeystrokes(platform, keystrokes)] = command;
} else if (!commands) {
commands = {};
}
keymap = {};
keymap[resolvedTarget] = commands;
_.each(commands, (cmd, stroke) => {
const keys = this._getKeystrokes(platform, stroke);
if (keys !== stroke) {
delete commands![stroke];
}
commands![keys] = this._getKey(cmd);
});
cd.add(atom.keymaps.add(`${packageName}${resolvedTarget}`, keymap));
return cd;
}
示例4: it
it('adds commands', () => {
const disposable = new CompositeDisposable();
const commands: any = atom.commands;
expect(commands.registeredCommands['omnisharp-atom:next-solution-status']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:solution-status']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:previous-solution-status']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:stop-server']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:start-server']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:restart-server']).to.be.true;
disposable.dispose();
});
示例5: it
it('adds commands', () => {
const disposable = new CompositeDisposable();
const commands: any = atom.commands;
expect(commands.registeredCommands['omnisharp-atom:find-usages']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:go-to-implementation']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:next-usage']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:go-to-usage']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:previous-usage']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:go-to-next-usage']).to.be.true;
expect(commands.registeredCommands['omnisharp-atom:go-to-previous-usage']).to.be.true;
disposable.dispose();
});
示例6: CompositeDisposable
.subscribe(editor => {
const innerCd = new CompositeDisposable();
outerCd.add(
innerCd,
this.editor$
.filter(active => active !== editor)
.subscribe(() => {
outerCd.remove(innerCd);
innerCd.dispose();
})
);
callback(editor, innerCd);
})
示例7: add
public add(target: (string | CommandType | Node), commandsOrName: string | IAtomCommands.CommandObject, callback?: IAtomCommands.EventCallback) {
const cd = new CompositeDisposable();
this._disposable.add(cd);
cd.add(() => this._disposable.remove(cd));
if (typeof commandsOrName === 'string') {
cd.add(atom.commands.add(this._getCommandType(target), this._getKey(commandsOrName), callback!));
} else {
const result: typeof commandsOrName = {};
_.each(commandsOrName, (method, key) => {
result[this._getKey(key)] = method;
});
cd.add(atom.commands.add(this._getCommandType(target), result));
}
return cd;
}
示例8: it
it('formats code', () => {
const d = restoreBuffers();
const disposable = new CompositeDisposable();
disposable.add(d);
let tries = 5;
return atom.workspace.open('simple/code-format/UnformattedClass.cs')
.then(editor => {
return execute(editor);
});
function execute(editor: Atom.TextEditor): any {
const promise = Omni.listener.formatRange
.take(1)
.toPromise()
.then(({request}) => {
expect(editor.getPath()).to.be.eql(request.FileName);
const expected = `public class UnformattedClass{ public const int TheAnswer = 42;}`;
const result = editor.getText().replace(/\r|\n/g, '');
try {
expect(result).to.contain(expected);
tries = 0;
} catch (e) {
if (tries > 0) {
return execute(editor);
} else {
tries = -1;
throw e;
}
} finally {
if (tries === -1) {
disposable.dispose();
throw new Error('Failed!');
} else if (tries === 0) {
disposable.dispose();
}
tries--;
}
});
codeFormat.format();
return promise;
}
});
示例9: _createClient
private _createClient(provider: ILanguageProvider, syncExpression: ISyncExpression) {
let connection: IConnection;
let client: LanguageProtocolClient;
const container = this._container.createChild();
container.registerInstance(ISyncExpression, syncExpression);
container.registerInstance(ILanguageProtocolClientOptions, provider.clientOptions);
container.registerSingleton(IDocumentDelayer, Delayer);
const capabilities = container.registerCapabilities(ILanguageProtocolClient);
const errorHandler = (error: Error, message: Message, count: number) => {
console.error(error, message, count);
};
const closeHandler = () => {
/* */
};
const connectionOptions = {
/* tslint:disable-next-line:no-any */
closeHandler, errorHandler, output(x: any) { console.log(x); }
};
const cd = new CompositeDisposable(container);
this._disposable.add(cd);
const connectionRequest = Connection.create(provider.serverOptions, connectionOptions);
return connectionRequest.then(conn => {
connection = conn;
container.registerInstance(IConnection, connection);
container.registerSingleton(LanguageProtocolClient);
container.registerAlias(LanguageProtocolClient, ILanguageProtocolClient);
client = container.resolve(LanguageProtocolClient);
cd.add(connection, client);
return client.start().then(() => client);
}).then(() => {
const disposables = container.resolveEach(
_(capabilities)
.filter(c => c.isCompatible(client.capabilities))
.map(x => x.ctor)
.value()
);
for (const item of disposables) {
if (item instanceof Error) {
console.error(item, item.innerError);
} else if (item.dipose) {
cd.add(item);
}
}
if (provider.onConnected) {
provider.onConnected(client);
}
return client;
});
}
示例10:
return connectionRequest.then(conn => {
connection = conn;
container.registerInstance(IConnection, connection);
container.registerSingleton(LanguageProtocolClient);
container.registerAlias(LanguageProtocolClient, ILanguageProtocolClient);
client = container.resolve(LanguageProtocolClient);
cd.add(connection, client);
return client.start().then(() => client);
}).then(() => {