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