public async Task <FixUsingsResponse> FixUsings(FixUsingsRequest request)
        {
            var document = _workspace.GetDocument(request.FileName);
            var response = new FixUsingsResponse();

            if (document != null)
            {
                response = await new FixUsingsWorker().FixUsings(_workspace, document);

                if (!request.WantsTextChanges)
                {
                    // return the new document
                    var docText = await _workspace.CurrentSolution.GetDocument(document.Id).GetTextAsync();

                    response.Buffer = docText.ToString();
                }
                else
                {
                    // return the text changes
                    var changes = await _workspace.CurrentSolution.GetDocument(document.Id).GetTextChangesAsync(document);

                    response.Changes = await LinePositionSpanTextChange.Convert(document, changes);
                }
            }

            return(response);
        }
示例#2
0
        public async Task <FixUsingsResponse> FixUsings(OmnisharpWorkspace workspace, IEnumerable <ICodeActionProvider> codeActionProviders, Document document)
        {
            _workspace     = workspace;
            _document      = document;
            _semanticModel = await document.GetSemanticModelAsync();
            await AddMissingUsings(codeActionProviders);
            await RemoveUsings(codeActionProviders);
            await SortUsings();
            await TryAddLinqQuerySyntax();

            var ambiguous = await GetAmbiguousUsings(codeActionProviders);

            var response = new FixUsingsResponse();

            response.AmbiguousResults = ambiguous;

            return(response);
        }