1c4a0dd49SMartin Probst //===--- SortJavaScriptImports.h - Sort ES6 Imports -------------*- C++ -*-===//
2c4a0dd49SMartin Probst //
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
6c4a0dd49SMartin Probst //
7c4a0dd49SMartin Probst //===----------------------------------------------------------------------===//
8c4a0dd49SMartin Probst ///
9c4a0dd49SMartin Probst /// \file
109fc8faf9SAdrian Prantl /// This file implements a sorter for JavaScript ES6 imports.
11c4a0dd49SMartin Probst ///
12c4a0dd49SMartin Probst //===----------------------------------------------------------------------===//
13c4a0dd49SMartin Probst 
14c4a0dd49SMartin Probst #ifndef LLVM_CLANG_LIB_FORMAT_SORTJAVASCRIPTIMPORTS_H
15c4a0dd49SMartin Probst #define LLVM_CLANG_LIB_FORMAT_SORTJAVASCRIPTIMPORTS_H
16c4a0dd49SMartin Probst 
17c4a0dd49SMartin Probst #include "clang/Basic/LLVM.h"
18c4a0dd49SMartin Probst #include "clang/Format/Format.h"
19c4a0dd49SMartin Probst #include "llvm/ADT/ArrayRef.h"
20c4a0dd49SMartin Probst #include "llvm/ADT/StringRef.h"
21c4a0dd49SMartin Probst 
22c4a0dd49SMartin Probst namespace clang {
23c4a0dd49SMartin Probst namespace format {
24c4a0dd49SMartin Probst 
25c4a0dd49SMartin Probst // Sort JavaScript ES6 imports/exports in ``Code``. The generated replacements
26c4a0dd49SMartin Probst // only monotonically increase the length of the given code.
27c4a0dd49SMartin Probst tooling::Replacements sortJavaScriptImports(const FormatStyle &Style,
28c4a0dd49SMartin Probst                                             StringRef Code,
29c4a0dd49SMartin Probst                                             ArrayRef<tooling::Range> Ranges,
30c4a0dd49SMartin Probst                                             StringRef FileName);
31c4a0dd49SMartin Probst 
32c4a0dd49SMartin Probst } // end namespace format
33c4a0dd49SMartin Probst } // end namespace clang
34c4a0dd49SMartin Probst 
35c4a0dd49SMartin Probst #endif
36