private static QuickFix MakeQuickFix(Diagnostic diagnostic) { var span = diagnostic.Location.GetMappedLineSpan(); var quickFix = new QuickFix(); quickFix.FileName = span.Path; quickFix.Line = span.StartLinePosition.Line + 1; quickFix.Column = span.StartLinePosition.Character + 1; quickFix.EndLine = span.EndLinePosition.Line + 1; quickFix.EndColumn = span.EndLinePosition.Character + 1; quickFix.Text = diagnostic.GetMessage(); quickFix.LogLevel = diagnostic.Severity.ToString(); return quickFix; }
public static async Task<ISymbol> SymbolFromQuickFix(OmnisharpWorkspace workspace, QuickFix result) { var document = workspace.GetDocument(result.FileName); var sourceText = await document.GetTextAsync(); var position = sourceText.Lines.GetPosition(new LinePosition(result.Line - 1, result.Column - 1)); var semanticModel = await document.GetSemanticModelAsync(); return SymbolFinder.FindSymbolAtPosition(semanticModel, position, workspace); }