xref: /llvm-project/clang/lib/Format/UsingDeclarationsSorter.h (revision 2946cd701067404b99c39fb29dc9c74bd7193eb3)
1b03877abSKrasimir Georgiev //===--- UsingDeclarationsSorter.h ------------------------------*- C++ -*-===//
2b03877abSKrasimir Georgiev //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6b03877abSKrasimir Georgiev //
7b03877abSKrasimir Georgiev //===----------------------------------------------------------------------===//
8b03877abSKrasimir Georgiev ///
9b03877abSKrasimir Georgiev /// \file
109fc8faf9SAdrian Prantl /// This file declares UsingDeclarationsSorter, a TokenAnalyzer that
11b03877abSKrasimir Georgiev /// sorts consecutive using declarations.
12b03877abSKrasimir Georgiev ///
13b03877abSKrasimir Georgiev //===----------------------------------------------------------------------===//
14b03877abSKrasimir Georgiev 
15b03877abSKrasimir Georgiev #ifndef LLVM_CLANG_LIB_FORMAT_USINGDECLARATIONSSORTER_H
16b03877abSKrasimir Georgiev #define LLVM_CLANG_LIB_FORMAT_USINGDECLARATIONSSORTER_H
17b03877abSKrasimir Georgiev 
18b03877abSKrasimir Georgiev #include "TokenAnalyzer.h"
19b03877abSKrasimir Georgiev 
20b03877abSKrasimir Georgiev namespace clang {
21b03877abSKrasimir Georgiev namespace format {
22b03877abSKrasimir Georgiev 
23b03877abSKrasimir Georgiev class UsingDeclarationsSorter : public TokenAnalyzer {
24b03877abSKrasimir Georgiev public:
25b03877abSKrasimir Georgiev   UsingDeclarationsSorter(const Environment &Env, const FormatStyle &Style);
26b03877abSKrasimir Georgiev 
279ad83fe7SKrasimir Georgiev   std::pair<tooling::Replacements, unsigned>
28b03877abSKrasimir Georgiev   analyze(TokenAnnotator &Annotator,
29b03877abSKrasimir Georgiev           SmallVectorImpl<AnnotatedLine *> &AnnotatedLines,
30b03877abSKrasimir Georgiev           FormatTokenLexer &Tokens) override;
31b03877abSKrasimir Georgiev };
32b03877abSKrasimir Georgiev 
33b03877abSKrasimir Georgiev } // end namespace format
34b03877abSKrasimir Georgiev } // end namespace clang
35b03877abSKrasimir Georgiev 
36b03877abSKrasimir Georgiev #endif
37