public async Task<FormatRangeResponse> FormatRange(FormatRangeRequest request)
        {
            var document = _workspace.GetDocument(request.FileName);
            if (document == null)
            {
                return null;
            }

            var lines = (await document.GetSyntaxTreeAsync()).GetText().Lines;
            var start = lines.GetPosition(new LinePosition(request.Line - 1, request.Column - 1));
            var end = lines.GetPosition(new LinePosition(request.EndLine - 1, request.EndColumn - 1));
            var changes = await Formatting.GetFormattingChangesForRange(_workspace, Options, document, start, end);

            return new FormatRangeResponse()
            {
                Changes = changes
            };
        }
        private static async Task<IEnumerable<LinePositionSpanTextChange>> FormattingChangesForRange(FormatRangeRequest req)
        {
            var workspace = TestHelpers.CreateSimpleWorkspace(req.Buffer, req.FileName);
            var controller = new OmnisharpController(workspace, null);

            return (await controller.FormatRange(req)).Changes;
        }
        private static async Task<IEnumerable<LinePositionSpanTextChange>> FormattingChangesForRange(FormatRangeRequest req)
        {
            var workspace = await TestHelpers.CreateSimpleWorkspace(req.Buffer, req.FileName);
            RequestHandler<FormatRangeRequest, FormatRangeResponse> controller = new FormatRangeService(workspace, new FormattingOptions());

            return (await controller.Handle(req)).Changes;
        }