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


TypeScript CompositeDisposable.add方法代码示例

本文整理汇总了TypeScript中ts-disposables.CompositeDisposable.add方法的典型用法代码示例。如果您正苦于以下问题:TypeScript CompositeDisposable.add方法的具体用法?TypeScript CompositeDisposable.add怎么用?TypeScript CompositeDisposable.add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ts-disposables.CompositeDisposable的用法示例。


在下文中一共展示了CompositeDisposable.add方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: 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

示例2: 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

示例3: 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

示例4:

        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

示例5: 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

示例6: 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

示例7: _

 }).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,代码行数:19,代码来源:LanguageProvider.ts


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