private static async Task InsertTextAsync( RequestExecutionQueue queue, LanguageServerProtocol server, Document document, int position, string text) { var sourceText = await document.GetTextAsync(); var lineInfo = sourceText.Lines.GetLinePositionSpan(new TextSpan(position, 0)); await server.ExecuteRequestAsync <DidChangeTextDocumentParams, object>( queue, Methods.TextDocumentDidChangeName, new DidChangeTextDocumentParams { TextDocument = ProtocolConversions.DocumentToVersionedTextDocumentIdentifier(document), ContentChanges = new TextDocumentContentChangeEvent[] { new TextDocumentContentChangeEvent { Range = new LSP.Range { Start = ProtocolConversions.LinePositionToPosition(lineInfo.Start), End = ProtocolConversions.LinePositionToPosition(lineInfo.End), }, Text = text, }, }, }, new LSP.ClientCapabilities(), clientName : null, CancellationToken.None); }