Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/clang/lib/Format/NamespaceEndCommentsFixer.h
35233 views
1
//===--- NamespaceEndCommentsFixer.h ----------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
///
9
/// \file
10
/// This file declares NamespaceEndCommentsFixer, a TokenAnalyzer that
11
/// fixes namespace end comments.
12
///
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_CLANG_LIB_FORMAT_NAMESPACEENDCOMMENTSFIXER_H
16
#define LLVM_CLANG_LIB_FORMAT_NAMESPACEENDCOMMENTSFIXER_H
17
18
#include "TokenAnalyzer.h"
19
20
namespace clang {
21
namespace format {
22
23
// Finds the namespace token corresponding to a closing namespace `}`, if that
24
// is to be formatted.
25
// If \p Line contains the closing `}` of a namespace, is affected and is not in
26
// a preprocessor directive, the result will be the matching namespace token.
27
// Otherwise returns null.
28
// \p AnnotatedLines is the sequence of lines from which \p Line is a member of.
29
const FormatToken *
30
getNamespaceToken(const AnnotatedLine *Line,
31
const SmallVectorImpl<AnnotatedLine *> &AnnotatedLines);
32
33
class NamespaceEndCommentsFixer : public TokenAnalyzer {
34
public:
35
NamespaceEndCommentsFixer(const Environment &Env, const FormatStyle &Style);
36
37
std::pair<tooling::Replacements, unsigned>
38
analyze(TokenAnnotator &Annotator,
39
SmallVectorImpl<AnnotatedLine *> &AnnotatedLines,
40
FormatTokenLexer &Tokens) override;
41
};
42
43
} // end namespace format
44
} // end namespace clang
45
46
#endif
47
48