clang 20.0.0git
DefinitionBlockSeparator.h
Go to the documentation of this file.
1//===--- DefinitionBlockSeparator.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 DefinitionBlockSeparator, a TokenAnalyzer that inserts or
11/// removes empty lines separating definition blocks like classes, structs,
12/// functions, enums, and namespaces in between.
13///
14//===----------------------------------------------------------------------===//
15
16#ifndef LLVM_CLANG_LIB_FORMAT_DEFINITIONBLOCKSEPARATOR_H
17#define LLVM_CLANG_LIB_FORMAT_DEFINITIONBLOCKSEPARATOR_H
18
19#include "TokenAnalyzer.h"
20#include "WhitespaceManager.h"
21
22namespace clang {
23namespace format {
25public:
28
29 std::pair<tooling::Replacements, unsigned>
30 analyze(TokenAnnotator &Annotator,
32 FormatTokenLexer &Tokens) override;
33
34private:
35 void separateBlocks(SmallVectorImpl<AnnotatedLine *> &Lines,
37};
38} // namespace format
39} // namespace clang
40
41#endif
This file declares an abstract TokenAnalyzer, and associated helper classes.
WhitespaceManager class manages whitespace around tokens and their replacements.
std::pair< tooling::Replacements, unsigned > analyze(TokenAnnotator &Annotator, SmallVectorImpl< AnnotatedLine * > &AnnotatedLines, FormatTokenLexer &Tokens) override
DefinitionBlockSeparator(const Environment &Env, const FormatStyle &Style)
const Environment & Env
Definition: TokenAnalyzer.h:97
Determines extra information about the tokens comprising an UnwrappedLine.
Maintains a set of replacements that are conflict-free.
Definition: Replacement.h:212
The JSON file list parser is used to communicate input to InstallAPI.
@ Result
The result type of a method or function.
The FormatStyle is used to configure the formatting to follow specific guidelines.
Definition: Format.h:55