private OmniSharpRefactoringContext GetRefactoringContext(Request req) { var q = _bufferParser.ParsedContent(req.Buffer, req.FileName); var resolver = new CSharpAstResolver(q.Compilation, q.SyntaxTree, q.UnresolvedFile); var doc = new StringBuilderDocument(req.Buffer); var location = new TextLocation(req.Line, req.Column); var refactoringContext = new OmniSharpRefactoringContext(doc, location, resolver); return refactoringContext; }
private IEnumerable<CodeAction> GetContextualCodeActions(Request req) { var refactoringContext = GetRefactoringContext(req); var actions = new List<CodeAction>(); var providers = new CodeActionProviders().GetProviders(); foreach (var provider in providers) { var providerActions = provider.GetActions(refactoringContext); actions.AddRange(providerActions); } return actions; }
public SyntaxErrorsResponse FindSyntaxErrors(Request request) { var res = _bufferParser.ParsedContent(request.Buffer, request.FileName); var errors = res.SyntaxTree.Errors.Select(error => new Error { Message = error.Message.Replace("'", "''"), Column = error.Region.BeginColumn, Line = error.Region.BeginLine, FileName = request.FileName }); return new SyntaxErrorsResponse {Errors = errors}; }
public GetCodeActionsResponse GetCodeActions(Request req) { var actions = GetContextualCodeActions(req); return new GetCodeActionsResponse { CodeActions = actions.Select(a => a.Description) }; }