//===--- WhitespaceManager.h - Format C++ code ------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file /// WhitespaceManager class manages whitespace around tokens and their /// replacements. /// //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_LIB_FORMAT_WHITESPACEMANAGER_H #define LLVM_CLANG_LIB_FORMAT_WHITESPACEMANAGER_H #include "TokenAnnotator.h" #include "clang/Basic/SourceManager.h" namespace clang { namespace format { /// Manages the whitespaces around tokens and their replacements. /// /// This includes special handling for certain constructs, e.g. the alignment of /// trailing line comments. /// /// To guarantee correctness of alignment operations, the \c WhitespaceManager /// must be informed about every token in the source file; for each token, there /// must be exactly one call to either \c replaceWhitespace or /// \c addUntouchableToken. /// /// There may be multiple calls to \c breakToken for a given token. class WhitespaceManager { … }; } // namespace format } // namespace clang #endif