public QuickFix Parse(string line) { if (!line.Contains("warning CS") && !line.Contains("error CS")) return null; var match = GetMatches(line, @".*(Source file '(.*)'.*)"); if(match.Matched) { var matches = match.Matches; var quickFix = new QuickFix { FileName = matches[0].Groups[2].Value, Text = matches[0].Groups[1].Value.Replace("'", "''") }; return quickFix; } match = GetMatches(line, @"\s*(.*cs)\((\d+),(\d+)\).*(warning|error) CS\d+: (.*) \["); if(match.Matched) { var matches = match.Matches; var quickFix = new QuickFix { FileName = matches[0].Groups[1].Value, Line = int.Parse(matches[0].Groups[2].Value), Column = int.Parse(matches[0].Groups[3].Value), Text = "[" + matches[0].Groups[4].Value + "] " + matches[0].Groups[5].Value.Replace("'", "''") }; return quickFix; } return null; }
/// <summary> /// Initialize a QuickFix pointing to the first line of the /// given region in the given file. /// </summary> public static QuickFix ForFirstLineInRegion (DomRegion region, CSharpFile file) { return(QuickFix.ForFirstLineInRegion (region, file.Document)); }
public IEnumerable<QuickFix> GetCurrentFileMembersAsFlatWithoutAccessModifiers(CurrentFileMembersRequest request) { var context = new BufferContext(request, this._parser); var result = new List<QuickFix>(); foreach (var item in context.ParsedContent.UnresolvedFile.TopLevelTypeDefinitions) { result.Add(new QuickFix() { FileName = item.Region.FileName , Line = item.Region.BeginLine , Column = item.Region.BeginColumn , EndLine = item.Region.EndLine , EndColumn = item.Region.EndColumn , Text = item.Name }); } var members = context.ParsedContent.UnresolvedFile.TopLevelTypeDefinitions .SelectMany(x => x.Members); foreach (var item in members) { var ambience = new CSharpAmbience(); ambience.ConversionFlags = ConversionFlags.ShowParameterList | ConversionFlags.ShowParameterNames; var memberTitle = ambience.ConvertSymbol(item.Resolve(context.ResolveContext)); var qf = new QuickFix() { FileName = item.Region.FileName , Line = item.Region.BeginLine , Column = item.Region.BeginColumn , EndLine = item.Region.EndLine , EndColumn = item.Region.EndColumn , Text = memberTitle }; result.Add(qf); } return result.OrderBy(x => x.Text); }