当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript ts-disposables.CompositeDisposable类代码示例

本文整理汇总了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;
    }
开发者ID:OmniSharp,项目名称:atom-languageclient,代码行数:27,代码来源:ActiveTextEditorProvider.ts

示例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();
    });
开发者ID:OmniSharp,项目名称:omnisharp-atom,代码行数:7,代码来源:lookup-spec.ts

示例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;
    }
开发者ID:OmniSharp,项目名称:atom-languageclient,代码行数:54,代码来源:AtomKeymaps.ts

示例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();
    });
开发者ID:OmniSharp,项目名称:omnisharp-atom,代码行数:13,代码来源:solution-information-spec.ts

示例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();
    });
开发者ID:OmniSharp,项目名称:omnisharp-atom,代码行数:13,代码来源:find-usages-spec.ts

示例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);
                })
开发者ID:OmniSharp,项目名称:atom-languageclient,代码行数:15,代码来源:ActiveTextEditorProvider.ts

示例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;
    }
开发者ID:OmniSharp,项目名称:atom-languageclient,代码行数:16,代码来源:AtomCommands.ts

示例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;
        }
    });
开发者ID:OmniSharp,项目名称:omnisharp-atom,代码行数:43,代码来源:code-format-spec.ts

示例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;
        });
    }
开发者ID:OmniSharp,项目名称:atom-languageclient,代码行数:55,代码来源:LanguageProvider.ts

示例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(() => {
开发者ID:OmniSharp,项目名称:atom-languageclient,代码行数:10,代码来源:LanguageProvider.ts


注:本文中的ts-disposables.CompositeDisposable类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。