//===- CompilationDatabase.h - LSP Compilation Database ---------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file contains a definition of a generic compilation database that can be // used to provide information about the compilation of a given source file. It // contains generic components, leaving more complex interpretation to the // specific language servers that consume it. // //===----------------------------------------------------------------------===// #ifndef MLIR_TOOLS_LSPSERVERSUPPORT_COMPILATIONDATABASE_H #define MLIR_TOOLS_LSPSERVERSUPPORT_COMPILATIONDATABASE_H #include "mlir/Support/LLVM.h" #include "llvm/ADT/StringMap.h" #include <memory> #include <string> #include <vector> namespace mlir { namespace lsp { /// This class contains a collection of compilation information for files /// provided to the language server, such as the available include directories. /// This database acts as an aggregate in-memory form of compilation databases /// used by the current language client. The textual form of a compilation /// database is a YAML file containing documents of the following form: /// /// --- !FileInfo: /// filepath: <string> - Absolute file path of the file. /// includes: <string> - Semi-colon delimited list of include directories. /// class CompilationDatabase { … }; } // namespace lsp } // namespace mlir #endif // MLIR_TOOLS_LSPSERVERSUPPORT_COMPILATIONDATABASE_H