logic: Fixed source files within CDB not indexed unless within Indexed Header Paths

This commit is contained in:
Eberhard Graether
2017-05-22 23:02:35 +02:00
parent 3598fd357d
commit 082dfc2e1a
10 changed files with 41 additions and 26 deletions
+20 -5
View File
@@ -2,20 +2,35 @@
#include "utility/file/FilePath.h"
FileRegister::FileRegister(const FileRegisterStateData& stateData, const std::set<FilePath>& indexedPaths, const std::set<FilePath>& excludedPaths)
FileRegister::FileRegister(
const FileRegisterStateData& stateData,
const FilePath& currentPath,
const std::set<FilePath>& indexedPaths,
const std::set<FilePath>& excludedPaths
)
: m_stateData(stateData)
, m_currentPath(currentPath)
, m_indexedPaths(indexedPaths)
, m_excludedPaths(excludedPaths)
, m_hasFilePathCache(
[&](std::string f){
const FilePath filePath(f);
bool ret = false;
for (const FilePath& indexedPath: m_indexedPaths)
if (filePath == m_currentPath)
{
if (indexedPath.contains(filePath))
ret = true;
}
if (!ret)
{
for (const FilePath& indexedPath: m_indexedPaths)
{
ret = true;
break;
if (indexedPath.contains(filePath))
{
ret = true;
break;
}
}
}
+7 -1
View File
@@ -9,7 +9,12 @@
class FileRegister
{
public:
FileRegister(const FileRegisterStateData& stateData, const std::set<FilePath>& indexedPaths, const std::set<FilePath>& excludedPaths);
FileRegister(
const FileRegisterStateData& stateData,
const FilePath& currentPath,
const std::set<FilePath>& indexedPaths,
const std::set<FilePath>& excludedPaths
);
virtual ~FileRegister();
const FileRegisterStateData& getStateData() const;
@@ -21,6 +26,7 @@ public:
private:
FileRegisterStateData m_stateData;
const FilePath& m_currentPath;
const std::set<FilePath> m_indexedPaths;
const std::set<FilePath> m_excludedPaths;
mutable Cache<std::string, bool> m_hasFilePathCache;