42 lines
978 B
C++
42 lines
978 B
C++
#include "Server/Scheduler.h"
|
|
|
|
namespace clice {
|
|
|
|
async::Task<> Scheduler::open(llvm::StringRef file) {
|
|
/// 首先根据 rule 来对 file 进行判别
|
|
|
|
/// 查看一下这 file 属于什么模式
|
|
|
|
/// 1. 正常的源文件或者模块文件
|
|
|
|
/// 预处理一遍源文件,获取一些相关的信息
|
|
/// 是不是 module file?
|
|
/// 获取模块依赖关系
|
|
/// 或者计算 Preamble 的位置
|
|
|
|
auto command = database.getCommand(file);
|
|
|
|
/// 如果不是 readonly 模式
|
|
/// 调用 CacheController 里面对应的函数更新这个文件的 cache
|
|
/// PCH or PCM
|
|
|
|
/// 准备 CompilationParams 进行 AST 编译
|
|
|
|
/// 调度索引任务 ...
|
|
|
|
/// 2. 头文件
|
|
|
|
/// 先检查一下该头文件是否有选中的上下文... [一组 include 位置]
|
|
///
|
|
/// 对上下文源文件进行上述的处理
|
|
|
|
///
|
|
/// ...
|
|
|
|
/// 重新索引依赖这个头文件的源文件
|
|
|
|
co_return;
|
|
}
|
|
|
|
} // namespace clice
|