//===--- Comments.cpp - Comment Manipulation -------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// /// /// \file /// \brief Implements comment manipulation. /// //===----------------------------------------------------------------------===// #include "Comments.h" namespace clang { namespace format { StringRef getLineCommentIndentPrefix(StringRef Comment) { static const char *const KnownPrefixes[] = {"///", "//", "//!"}; StringRef LongestPrefix; for (StringRef KnownPrefix : KnownPrefixes) { if (Comment.startswith(KnownPrefix)) { size_t PrefixLength = KnownPrefix.size(); while (PrefixLength < Comment.size() && Comment[PrefixLength] == ' ') ++PrefixLength; if (PrefixLength > LongestPrefix.size()) LongestPrefix = Comment.substr(0, PrefixLength); } } return LongestPrefix; } } // namespace format } // namespace clang