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


TypeScript IConnection.onDefinition方法代码示例

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

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

示例1: constructor

  constructor(
      protected connection: IConnection,
      private converter: AnalyzerLSPConverter,
      private featureFinder: FeatureFinder, private analyzer: LsAnalyzer,
      settings: Settings) {
    super();

    this.connection.onDefinition(async(textPosition) => {
      return this.handleErrors(
          this.getDefinition(textPosition), undefined) as Promise<Definition>;
    });

    this.connection.onReferences(async(params) => {
      return this.handleErrors(this.getReferences(params), []);
    });

    this.connection.onWorkspaceSymbol(async(params) => {
      const analysis =
          await this.analyzer.analyzePackage('get workspace symbols');
      const symbols = this.findSymbols(analysis);
      return fuzzaldrin.filter(symbols, params.query, {key: 'name'});
    });

    this.connection.onDocumentSymbol(async(params) => {
      const localPath = converter.getWorkspacePathToFile(params.textDocument);
      const analysis =
          await this.analyzer.analyze([localPath], 'get document symbols');
      const maybeDocument = analysis.getDocument(localPath);
      if (!(maybeDocument instanceof Document)) {
        return [];
      }
      return this.findSymbols(maybeDocument);
    });

    this.connection.onCodeLens(async(params) => {
      const lenses = [];
      if (settings.referencesCodeLens) {
        lenses.push(...await this.handleErrors(this.getCodeLenses(params), []));
      }
      return lenses;
    });
  }
开发者ID:asdfg9822,项目名称:polymer-editor-service,代码行数:42,代码来源:definition-finder.ts


示例2: constructor

  constructor(
      protected connection: IConnection,
      private converter: AnalyzerLSPConverter,
      private featureFinder: FeatureFinder, private analyzer: LsAnalyzer,
      settings: Settings) {
    super();
    this.connection.onDefinition(async(textPosition) => {
      return this.handleErrors(this.getDefinition(textPosition), null);
    });

    this.connection.onReferences(async(params) => {
      return this.handleErrors(this.getReferences(params), []);
    });

    this.connection.onWorkspaceSymbol(async(params) => {
      const analysis =
          await this.analyzer.analyzePackage({reason: 'get workspace symbols'});
      const symbols = this.findSymbols(analysis);
      return fuzzaldrin.filter(symbols, params.query, {key: 'name'});
    });

    this.connection.onDocumentSymbol(async(params) => {
      const url = params.textDocument.uri;
      const analysis =
          await this.analyzer.analyze([url], {reason: 'get document symbols'});
      const result = analysis.getDocument(url);
      if (!result.successful) {
        return [];
      }
      return this.findSymbols(result.value);
    });

    this.connection.onCodeLens(async(params) => {
      const lenses = [];
      if (settings.referencesCodeLens) {
        lenses.push(...await this.handleErrors(this.getCodeLenses(params), []));
      }
      return lenses;
    });
  }
开发者ID:MehdiRaash,项目名称:tools,代码行数:40,代码来源:definition-finder.ts


示例3:

	return null;
});

connection.onDocumentHighlight(documentHighlightParams => {
	let document = documents.get(documentHighlightParams.textDocument.uri);
	let mode = languageModes.getModeAtPosition(document, documentHighlightParams.position);
	if (mode && mode.findDocumentHighlight) {
		return mode.findDocumentHighlight(document, documentHighlightParams.position);
	}
	return [];
});

connection.onDefinition(definitionParams => {
	let document = documents.get(definitionParams.textDocument.uri);
	let mode = languageModes.getModeAtPosition(document, definitionParams.position);
	if (mode && mode.findDefinition) {
		return mode.findDefinition(document, definitionParams.position);
	}
	return [];
});

connection.onReferences(referenceParams => {
	let document = documents.get(referenceParams.textDocument.uri);
	let mode = languageModes.getModeAtPosition(document, referenceParams.position);
	if (mode && mode.findReferences) {
		return mode.findReferences(document, referenceParams.position);
	}
	return [];
});

connection.onSignatureHelp(signatureHelpParms => {
	let document = documents.get(signatureHelpParms.textDocument.uri);
开发者ID:armanio123,项目名称:vscode,代码行数:32,代码来源:htmlServerMain.ts


示例4: initStylableLanguageService


//.........这里部分代码省略.........
        }

        docsDispatcher.keys!().forEach(key => {
            const doc = docsDispatcher.get!(key);
            if (!!doc) {
                if (doc.languageId === 'stylable') {
                    let diagnostics: Diagnostic[];
                    if (
                        ignore &&
                        (res.diagnostics.ignore as string[]).some(p => {
                            return fromVscodePath(doc.uri).startsWith(path.resolve(p));
                        })
                    ) {
                        diagnostics = [];
                    } else {
                        diagnostics = createDiagnosis(doc, processor, services.requireModule)
                            .map(diag => {
                                diag.source = 'stylable';
                                return diag;
                            })
                            .concat(newCssService.getDiagnostics(doc));
                    }
                    connection.sendDiagnostics({ uri: doc.uri, diagnostics });
                }
            }
        });
    }

    // docsDispatcher.onDidOpen(diagnose);
    docsDispatcher.onDidChangeContent(diagnose);

    connection.onDidChangeConfiguration(diagnose);

    connection.onDefinition(
        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;
开发者ID:wix,项目名称:stylable-intelligence,代码行数:67,代码来源:service.ts


示例5: constructor


//.........这里部分代码省略.........
                                });
                            }
                        } else if (params.query == '') {
                            const topDecls = service.getTopLevelDeclarations(params.limit);
                            if (topDecls) {
                                result = topDecls.map(decl => {
                                    return SymbolInformation.create(decl.name, decl.kind, decl.location.range,
                                        'file:///' + decl.location.file, util.formExternalUri(decl));
                                });
                            }
                        } else {
                            const navigateToItems = service.getWorkspaceSymbols(params.query, params.limit);
                            if (navigateToItems) {
                                result = navigateToItems.map(item => {
                                    let start = ts.getLineAndCharacterOfPosition(service.services.getProgram().getSourceFile(item.fileName), item.textSpan.start);
                                    let end = ts.getLineAndCharacterOfPosition(service.services.getProgram().getSourceFile(item.fileName), item.textSpan.start + item.textSpan.length);
                                    return SymbolInformation.create(item.name, util.convertStringtoSymbolKind(item.kind), Range.create(start.line, start.character, end.line, end.character), 'file:///' + item.fileName, item.containerName);
                                });
                            }
                        }
                        const exit = new Date().getTime();
                        console.error('symbol', params.query, 'total', (exit - enter) / 1000.0, 'busy', (exit - init) / 1000.0, 'wait', (init - enter) / 1000.0);
                        return resolve(result);
                    } catch (e) {
                        console.error(params, e);
                        return resolve([]);
                    }
                }, function () {
                    return reject()
                })
            });
        });

        this.connection.onDefinition((params: TextDocumentPositionParams): Promise<Definition> => {
            const enter = new Date().getTime();
            return new Promise<Definition>(function (resolve, reject) {
                initialized.then(function () {
                    try {
                        const init = new Date().getTime();
                        let reluri = util.uri2reluri(params.textDocument.uri, workspaceRoot);
                        const defs: ts.DefinitionInfo[] = service.getDefinition(reluri, params.position.line, params.position.character);
                        let result: Location[] = [];
                        if (defs) {
                            for (let def of defs) {
                                // if (def['url']) {
                                //TODO process external doc ref here
                                //result.push(Location.create(def['url'], util.formEmptyRange()));
                                // } else {
                                let start = ts.getLineAndCharacterOfPosition(service.services.getProgram().getSourceFile(def.fileName), def.textSpan.start);
                                let end = ts.getLineAndCharacterOfPosition(service.services.getProgram().getSourceFile(def.fileName), def.textSpan.start + def.textSpan.length);
                                result.push(Location.create(util.path2uri(workspaceRoot, def.fileName), {
                                    start: start,
                                    end: end
                                }));
                                // }
                            }
                        } else {
                            //check whether definition is external, if uri string returned, add this location
                            // TODO
                            /*
                             let externalDef = connection.service.getExternalDefinition(params.textDocument.uri, params.position.line, params.position.character);
                             if (externalDef) {
                             let fileName = externalDef.file;
                             let res = Location.create(util.formExternalUri(externalDef), util.formEmptyRange());
                             result.push(res);
                             }
开发者ID:antonina-cherednichenko,项目名称:poc-jslang-server,代码行数:67,代码来源:connection.ts



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