public IEnumerable<TextLineCheckerError> CheckLine(ITextSnapshotLine line)
 {
     if (_chromiumSourceFiles.ApplyCodingStyle(_fileSystem, line)) {
     int indent = 0;
     var fragment = line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default);
     foreach (var point in fragment.GetPoints()) {
       if (WhitespaceCharacters.IndexOf(point.GetChar()) >= 0) {
     // continue as long as we find whitespaces
     indent++;
       } else if (GetMarker(line, fragment, point) != null) {
     if (indent % 2 == 0) // even indentation is not ok
     {
       var marker = GetMarker(line, fragment, point);
       yield return new TextLineCheckerError {
         Span = new SnapshotSpan(point, marker.Length),
         Message =
           string.Format("Accessor \"{0}\" should always be indented 1 character less than rest of class body.",
                         marker)
       };
     }
       } else {
     // Stop at the first non-whitespace character.
     yield break;
       }
     }
       }
 }
Пример #2
0
 public IEnumerable <TextLineCheckerError> CheckLine(ITextSnapshotLine line)
 {
     if (_chromiumSourceFiles.ApplyCodingStyle(line))
     {
         int indent   = 0;
         var fragment = line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default);
         foreach (var point in fragment.GetPoints())
         {
             if (_whitespaceCharacters.IndexOf(point.GetChar()) >= 0)
             {
                 // continue as long as we find whitespaces
                 indent++;
             }
             else if (GetMarker(line, fragment, point) != null)
             {
                 if (indent % 2 == 0) // even indentation is not ok
                 {
                     var marker = GetMarker(line, fragment, point);
                     yield return(new TextLineCheckerError {
                         Span = new SnapshotSpan(point, marker.Length),
                         Message =
                             string.Format("Accessor \"{0}\" should always be indented 1 character less than rest of class body.",
                                           marker)
                     });
                 }
             }
             else
             {
                 // Stop at the first non-whitespace character.
                 yield break;
             }
         }
     }
 }
Пример #3
0
 public IEnumerable <TextLineCheckerError> CheckLine(ITextSnapshotLine line)
 {
     if (_chromiumSourceFiles.ApplyCodingStyle(line))
     {
         var fragment = line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default);
         foreach (var point in fragment.GetPoints())
         {
             if (_whitespaceCharacters.IndexOf(point.GetChar()) >= 0)
             {
                 // continue as long as we find whitespaces
             }
             else if (GetMarker(line, fragment, point) != null)
             {
                 var marker = GetMarker(line, fragment, point);
                 yield return(new TextLineCheckerError {
                     Span = new SnapshotSpan(point, marker.Length),
                     Message = string.Format("Missing space before ( in \"{0}\".", marker)
                 });
             }
             else
             {
                 // Stop at the first non-whitespace character.
                 yield break;
             }
         }
     }
 }
Пример #4
0
        public IEnumerable <TextLineCheckerError> CheckLine(ITextSnapshotLine line)
        {
            if (!_globalSettingsProvider.GlobalSettings.CodingStyleElseIfOnNewLine)
            {
                yield break;
            }

            if (!_chromiumSourceFiles.ApplyCodingStyle(_fileSystem, line))
            {
                yield break;
            }

            var fragment = line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default);

            foreach (var point in fragment.GetPoints())
            {
                if (WhitespaceCharacters.IndexOf(point.GetChar()) >= 0)
                {
                    // continue as long as we find whitespaces
                }
                else if (GetMarker(line, fragment, point) != null)
                {
                    var marker = GetMarker(line, fragment, point);
                    yield return(new TextLineCheckerError {
                        Span = new SnapshotSpan(point, marker.Length),
                        Message = string.Format("\"{0}\" should always be on the same line as the \"}}\" character.", marker)
                    });
                }
                else
                {
                    // Stop at the first non-whitespace character.
                    yield break;
                }
            }
        }
        public IEnumerable <TextLineCheckerError> CheckLine(ITextSnapshotLine line)
        {
            if (!_globalSettingsProvider.GlobalSettings.CodingStyleOpenBraceAfterNewLine)
            {
                yield break;
            }

            if (!_chromiumSourceFiles.ApplyCodingStyle(_fileSystem, line))
            {
                yield break;
            }

            foreach (var point in line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default).GetPoints())
            {
                if (WhitespaceCharacters.IndexOf(point.GetChar()) >= 0)
                {
                    // continue as long as we find whitespaces
                }
                else if (point.GetChar() == '{')
                {
                    yield return(new TextLineCheckerError {
                        Span = new SnapshotSpan(point, point + 1),
                        Message =
                            "Open curly brace ('{') should always be at the end of a line, never on a new line preceeded by spaces.",
                    });
                }
                else
                {
                    // Stop at the first non-whitespace character.
                    yield break;
                }
            }
        }
Пример #6
0
        public IEnumerable <TextLineCheckerError> CheckLine(ITextSnapshotLine line)
        {
            if (!_globalSettingsProvider.GlobalSettings.CodingStyleTabCharacter)
            {
                yield break;
            }

            if (!_chromiumSourceFiles.ApplyCodingStyle(_fileSystem, line))
            {
                yield break;
            }

            if (line.Length == 0)
            {
                yield break;
            }

            foreach (var point in line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default).GetPoints())
            {
                if (point.GetChar() == '\t')
                {
                    yield return(new TextLineCheckerError {
                        Span = new SnapshotSpan(point, point + 1),
                        Message = "TAB characters are not allowed."
                    });
                }
            }
        }
Пример #7
0
        public IEnumerable <TextLineCheckerError> CheckLine(ITextSnapshotLine line)
        {
            if (!_globalSettingsProvider.GlobalSettings.CodingStyleTrailingSpace)
            {
                yield break;
            }

            if (!_chromiumSourceFiles.ApplyCodingStyle(_fileSystem, line))
            {
                yield break;
            }

            foreach (var point in line.GetFragment(line.Start, line.End, TextLineFragment.Options.Reverse).GetPoints())
            {
                if (WhitespaceCharacters.IndexOf(point.GetChar()) >= 0)
                {
                    yield return(new TextLineCheckerError {
                        Span = new SnapshotSpan(point, point + 1),
                        Message = "Trailing whitespaces are not allowed.",
                    });
                }
                else
                {
                    yield break;
                }
            }
        }
Пример #8
0
 private bool IsAllowedOverflow(ITextSnapshotLine line) {
   var keywords = new string[] {
     "#include",
     "#define",
     "#if",
     "#endif",
   };
   var text =
     line.GetFragment(line.Start.Position, line.Start.Position + 30, TextLineFragment.Options.Default)
       .SnapshotSpan.GetText();
   return keywords.Any(k => text.Contains(k));
 }
Пример #9
0
 public IEnumerable<TextLineCheckerError> CheckLine(ITextSnapshotLine line)
 {
     if (_chromiumSourceFiles.ApplyCodingStyle(line)) {
     var lineBreak = line.GetLineBreakText();
     if (lineBreak.Length > 0 && lineBreak != "\n") {
       var fragment = line.GetFragment(line.End.Position - 1, line.EndIncludingLineBreak.Position,
                                   TextLineFragment.Options.IncludeLineBreak);
       yield return new TextLineCheckerError {
     Span = fragment.SnapshotSpan,
     Message = "Line breaks should be \"unix\" (i.e. LF) style only.",
       };
     }
       }
 }
Пример #10
0
 public IEnumerable<TextLineCheckerError> CheckLine(ITextSnapshotLine line)
 {
     if (_chromiumSourceFiles.ApplyCodingStyle(line)) {
     foreach (var point in line.GetFragment(line.Start, line.End, TextLineFragment.Options.Reverse).GetPoints()) {
       if (_whitespaceCharacters.IndexOf(point.GetChar()) >= 0) {
     yield return new TextLineCheckerError {
       Span = new SnapshotSpan(point, point + 1),
       Message = "Trailing whitespaces are not allowed.",
     };
       } else
     yield break;
     }
       }
 }
Пример #11
0
        private bool IsAllowedOverflow(ITextSnapshotLine line)
        {
            var keywords = new string[] {
                "#include",
                "#define",
                "#if",
                "#endif",
            };
            var text =
                line.GetFragment(line.Start.Position, line.Start.Position + 30, TextLineFragment.Options.Default)
                .SnapshotSpan.GetText();

            return(keywords.Any(k => text.Contains(k)));
        }
Пример #12
0
 public IEnumerable <TextLineCheckerError> CheckLine(ITextSnapshotLine line)
 {
     if (_chromiumSourceFiles.ApplyCodingStyle(line))
     {
         var lineBreak = line.GetLineBreakText();
         if (lineBreak.Length > 0 && lineBreak != "\n")
         {
             var fragment = line.GetFragment(line.End.Position - 1, line.EndIncludingLineBreak.Position,
                                             TextLineFragment.Options.IncludeLineBreak);
             yield return(new TextLineCheckerError {
                 Span = fragment.SnapshotSpan,
                 Message = "Line breaks should be \"unix\" (i.e. LF) style only.",
             });
         }
     }
 }
        public IEnumerable<TextLineCheckerError> CheckLine(ITextSnapshotLine line)
        {
            if (_chromiumSourceFiles.ApplyCodingStyle(_fileSystem, line)) {
            if (line.Length == 0) {
              yield break;
            }

            foreach (var point in line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default).GetPoints()) {
              if (point.GetChar() == '\t') {
            yield return new TextLineCheckerError {
              Span = new SnapshotSpan(point, point + 1),
              Message = "TAB characters are not allowed."
            };
              }
            }
              }
        }
Пример #14
0
    private string GetMarker(ITextSnapshotLine line, TextLineFragment fragment, SnapshotPoint point) {
      string[] markers = {
        "else",
        "else if",
      };

      var match = markers
        .Where(marker => fragment.GetText(point - line.Start, marker.Length) == marker)
        .FirstOrDefault();
      if (match != null) {
        // If last character of line is not "{", we are good
        var end = line.GetFragment(line.End.Position - 1, line.End.Position, TextLineFragment.Options.Default);
        if (end.GetText() != "{")
          return null;
      }
      return match;
    }
Пример #15
0
 public IEnumerable<TextLineCheckerError> CheckLine(ITextSnapshotLine line)
 {
     if (_chromiumSourceFiles.ApplyCodingStyle(line)) {
     foreach (var point in line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default).GetPoints()) {
       if (_whitespaceCharacters.IndexOf(point.GetChar()) >= 0) {
     // continue as long as we find whitespaces
       } else if (point.GetChar() == '{') {
     yield return new TextLineCheckerError {
       Span = new SnapshotSpan(point, point + 1),
       Message =
         "Open curly brace ('{') should always be at the end of a line, never on a new line preceeded by spaces.",
     };
       } else {
     // Stop at the first non-whitespace character.
     yield break;
       }
     }
       }
 }
 public IEnumerable<TextLineCheckerError> CheckLine(ITextSnapshotLine line)
 {
     if (_chromiumSourceFiles.ApplyCodingStyle(_fileSystem, line)) {
     var fragment = line.GetFragment(line.Start, line.End, TextLineFragment.Options.Default);
     foreach (var point in fragment.GetPoints()) {
       if (WhitespaceCharacters.IndexOf(point.GetChar()) >= 0) {
     // continue as long as we find whitespaces
       } else if (GetMarker(line, fragment, point) != null) {
     var marker = GetMarker(line, fragment, point);
     yield return new TextLineCheckerError {
       Span = new SnapshotSpan(point, marker.Length),
       Message = string.Format("Missing space before ( in \"{0}\".", marker)
     };
       } else {
     // Stop at the first non-whitespace character.
     yield break;
       }
     }
       }
 }
Пример #17
0
        private string GetMarker(ITextSnapshotLine line, TextLineFragment fragment, SnapshotPoint point)
        {
            string[] markers =
            {
                "else",
                "else if",
            };

            var match = markers
                        .Where(marker => fragment.GetText(point - line.Start, marker.Length) == marker)
                        .FirstOrDefault();

            if (match != null)
            {
                // If last character of line is not "{", we are good
                var end = line.GetFragment(line.End.Position - 1, line.End.Position, TextLineFragment.Options.Default);
                if (end.GetText() != "{")
                {
                    return(null);
                }
            }
            return(match);
        }