Example #1
0
        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;
        }
Example #2
0
 /// <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);

        }