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


TypeScript IConnection.onRenameRequest方法代码示例

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


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

示例1: initStylableLanguageService


//.........这里部分代码省略.........
        async (params): Promise<Definition> => {
            const doc = fs.loadTextFileSync(params.textDocument.uri);
            const pos = params.position;

            const res = await provider
                .getDefinitionLocation(doc, {
                    line: pos.line,
                    character: pos.character
                }, fromVscodePath(params.textDocument.uri), fs);
            return res.map(loc => Location.create(toVscodePath(loc.uri), loc.range));
        }
    );

    connection.onHover(
        (params: TextDocumentPositionParams): Hover | null => {
            return newCssService.doHover(fs.get(params.textDocument.uri), params.position);
        }
    );

    connection.onReferences(
        (params: ReferenceParams): Location[] => {
            const refs = getRefs(params, fs, services.styl);
            if (refs.length) {
                return dedupeRefs(refs);
            } else {
                return dedupeRefs(newCssService.findReferences(fs.get(params.textDocument.uri), params.position));
            }
        }
    );

    connection.onDocumentFormatting(() => {
        return null;
    });

    connection.onDocumentColor((params: DocumentColorParams) => {
        const document = fs.get(params.textDocument.uri);
        return resolveDocumentColors(services.styl, newCssService, document);
    });

    connection.onColorPresentation((params: ColorPresentationParams) => {
        const document = fs.get(params.textDocument.uri);

        return getColorPresentation(newCssService, document, params);
    });

    connection.onRenameRequest(
        (params): WorkspaceEdit => {
            const edit: WorkspaceEdit = { changes: {} };
            getRenameRefs(
                {
                    context: { includeDeclaration: true },
                    position: params.position,
                    textDocument: params.textDocument
                },
                fs,
                services.styl
            ).forEach(ref => {
                if (edit.changes![ref.uri]) {
                    edit.changes![ref.uri].push({ range: ref.range, newText: params.newName });
                } else {
                    edit.changes![ref.uri] = [{ range: ref.range, newText: params.newName }];
                }
            });

            return edit;
        }
    );

    connection.onSignatureHelp(
        (params): Thenable<SignatureHelp> => {
            const doc: string = fs.loadTextFileSync(params.textDocument.uri);

            const sig = provider.getSignatureHelp(
                doc,
                params.position,
                params.textDocument.uri,
                fs,
                ParameterInformation
            );
            return Promise.resolve(sig!);
        }
    );

    function dedupeRefs(refs: Location[]): Location[] {
        const res: Location[] = [];
        refs.forEach(ref => {
            if (
                !res.find(
                    r =>
                        r.range.start.line === ref.range.start.line &&
                        r.range.start.character === ref.range.start.character &&
                        r.uri === ref.uri
                )
            ) {
                res.push(ref);
            }
        });
        return res;
    }
}
开发者ID:wix,项目名称:stylable-intelligence,代码行数:101,代码来源:service.ts


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