Пример #1
0
        private async Task HandleCodeLensRequest(
            CodeLensRequest codeLensParams,
            RequestContext <LanguageServer.CodeLens[]> requestContext)
        {
            JsonSerializer jsonSerializer =
                JsonSerializer.Create(
                    Constants.JsonSerializerSettings);

            var scriptFile =
                this.editorSession.Workspace.GetFile(
                    codeLensParams.TextDocument.Uri);

            var codeLenses =
                this.ProvideCodeLenses(scriptFile)
                .Select(
                    codeLens =>
                    codeLens.ToProtocolCodeLens(
                        new CodeLensData
            {
                Uri        = codeLens.File.ClientFilePath,
                ProviderId = codeLens.Provider.ProviderId
            },
                        this.jsonSerializer))
                .ToArray();

            await requestContext.SendResult(codeLenses);
        }
        /// <summary>
        /// Handles a request for CodeLenses from VSCode.
        /// </summary>
        /// <param name="codeLensParams">Parameters on the CodeLens request that was received.</param>
        /// <param name="requestContext"></param>
        private async Task HandleCodeLensRequest(
            CodeLensRequest codeLensParams,
            RequestContext <LanguageServer.CodeLens[]> requestContext)
        {
            ScriptFile scriptFile = _editorSession.Workspace.GetFile(
                codeLensParams.TextDocument.Uri);

            CodeLens[] codeLensResults = ProvideCodeLenses(scriptFile);

            var codeLensResponse = new LanguageServer.CodeLens[codeLensResults.Length];

            for (int i = 0; i < codeLensResults.Length; i++)
            {
                codeLensResponse[i] = codeLensResults[i].ToProtocolCodeLens(
                    new CodeLensData
                {
                    Uri        = codeLensResults[i].File.ClientFilePath,
                    ProviderId = codeLensResults[i].Provider.ProviderId
                },
                    _jsonSerializer);
            }

            await requestContext.SendResult(codeLensResponse);
        }