當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。