mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-24 00:25:07 +00:00
Filter deps with index.blacklist
. (#64)
This commit is contained in:
parent
5c0a146ee4
commit
df1717538f
@ -141,7 +141,7 @@ std::unique_ptr<IndexFile> RawCacheLoad(const std::string &path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Indexer_Parse(DiagnosticsPublisher *diag_pub, WorkingFiles *working_files,
|
bool Indexer_Parse(DiagnosticsPublisher *diag_pub, WorkingFiles *working_files,
|
||||||
Project *project, VFS *vfs) {
|
Project *project, VFS *vfs, const GroupMatch &matcher) {
|
||||||
std::optional<Index_Request> opt_request = index_request->TryPopFront();
|
std::optional<Index_Request> opt_request = index_request->TryPopFront();
|
||||||
if (!opt_request)
|
if (!opt_request)
|
||||||
return false;
|
return false;
|
||||||
@ -155,6 +155,11 @@ bool Indexer_Parse(DiagnosticsPublisher *diag_pub, WorkingFiles *working_files,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (std::string reason; !matcher.IsMatch(request.path, &reason)) {
|
||||||
|
LOG_S(INFO) << "skip " << request.path << " for " << reason;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
Project::Entry entry;
|
Project::Entry entry;
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(project->mutex_);
|
std::lock_guard<std::mutex> lock(project->mutex_);
|
||||||
@ -247,6 +252,12 @@ bool Indexer_Parse(DiagnosticsPublisher *diag_pub, WorkingFiles *working_files,
|
|||||||
std::string path = curr->path;
|
std::string path = curr->path;
|
||||||
if (!(vfs->Stamp(path, curr->last_write_time) || path == path_to_index))
|
if (!(vfs->Stamp(path, curr->last_write_time) || path == path_to_index))
|
||||||
continue;
|
continue;
|
||||||
|
if (std::string reason; !matcher.IsMatch(path, &reason)) {
|
||||||
|
LOG_S(INFO) << "skip emitting and storing index of " << path << " for "
|
||||||
|
<< reason;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
LOG_S(INFO) << "emit index for " << path;
|
LOG_S(INFO) << "emit index for " << path;
|
||||||
prev = RawCacheLoad(path);
|
prev = RawCacheLoad(path);
|
||||||
|
|
||||||
@ -295,8 +306,9 @@ void Init() {
|
|||||||
|
|
||||||
void Indexer_Main(DiagnosticsPublisher *diag_pub, VFS *vfs, Project *project,
|
void Indexer_Main(DiagnosticsPublisher *diag_pub, VFS *vfs, Project *project,
|
||||||
WorkingFiles *working_files) {
|
WorkingFiles *working_files) {
|
||||||
|
GroupMatch matcher(g_config->index.whitelist, g_config->index.blacklist);
|
||||||
while (true)
|
while (true)
|
||||||
if (!Indexer_Parse(diag_pub, working_files, project, vfs))
|
if (!Indexer_Parse(diag_pub, working_files, project, vfs, matcher))
|
||||||
indexer_waiter->Wait(index_request);
|
indexer_waiter->Wait(index_request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user