Files
clice/include/Server/Config.h
2024-12-01 14:52:24 +08:00

40 lines
996 B
C++

#pragma once
#include <string>
#include <vector>
#include "llvm/ADT/StringRef.h"
namespace clice::config {
/// read the config file, call when the program starts.
int parse(llvm::StringRef execute, llvm::StringRef filepath);
/// initialize the config, replace all predefined variables in the config file.
/// called in `Server::initialize`.
void init(std::string_view workplace);
struct ServerOption {
std::string mode = "socket";
unsigned int port;
std::string address;
};
struct FrontendOption {
std::vector<std::string> append;
std::vector<std::string> remove;
std::string index_directory = "${workplace}/.clice/index";
std::string cache_directory = "${workplace}/.clice/cache";
std::string compile_commands_directory = "${workplace}/build";
std::string resource_dictionary = "${binary}/../lib/clang/${llvm_version}";
};
llvm::StringRef workplace();
const ServerOption& server();
const FrontendOption& frontend();
}; // namespace clice::config