summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppsemanticsearch.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-06-10 12:25:52 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2009-06-10 12:25:52 +0200
commitec769aeaf795c77e5295ef4323d4c71edcf85348 (patch)
treedbbe20e93530895f7b93a575fa1d8c0615674315 /src/plugins/cpptools/cppsemanticsearch.cpp
parent3ae43daa5a3f13553d9a0eb3abb9f6f3fbab92d9 (diff)
downloadqt-creator-ec769aeaf795c77e5295ef4323d4c71edcf85348.tar.gz
Search in the editor buffers.
Diffstat (limited to 'src/plugins/cpptools/cppsemanticsearch.cpp')
-rw-r--r--src/plugins/cpptools/cppsemanticsearch.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/plugins/cpptools/cppsemanticsearch.cpp b/src/plugins/cpptools/cppsemanticsearch.cpp
index b86e963e07..2782c40fac 100644
--- a/src/plugins/cpptools/cppsemanticsearch.cpp
+++ b/src/plugins/cpptools/cppsemanticsearch.cpp
@@ -262,6 +262,7 @@ SemanticSearch *SearchFunctionCallFactory::create(QFutureInterface<Core::Utils::
static void semanticSearch_helper(QFutureInterface<Core::Utils::FileSearchResult> &future,
QPointer<CppModelManager> modelManager,
+ QMap<QString, QByteArray> wl,
SemanticSearchFactory::Ptr factory)
{
const Snapshot snapshot = modelManager->snapshot();
@@ -273,14 +274,20 @@ static void semanticSearch_helper(QFutureInterface<Core::Utils::FileSearchResult
foreach (Document::Ptr doc, snapshot) {
const QString fileName = doc->fileName();
- QFile file(fileName);
- if (! file.open(QFile::ReadOnly))
- continue;
+ QByteArray source;
+
+ if (wl.contains(fileName))
+ source = wl.value(fileName);
+ else {
+ QFile file(fileName);
+ if (! file.open(QFile::ReadOnly))
+ continue;
+
+ const QString contents = QTextStream(&file).readAll(); // ### FIXME
+ source = snapshot.preprocessedCode(contents.toUtf8(), fileName);
+ }
- const QString contents = QTextStream(&file).readAll(); // ### FIXME
- const QByteArray source = snapshot.preprocessedCode(contents.toUtf8(), fileName);
Document::Ptr newDoc = snapshot.documentFromSource(source, fileName);
- newDoc->parse();
if (SemanticSearch *search = factory->create(future, newDoc, snapshot)) {
search->setSource(source);
@@ -295,5 +302,6 @@ static void semanticSearch_helper(QFutureInterface<Core::Utils::FileSearchResult
QFuture<Core::Utils::FileSearchResult> CppTools::Internal::semanticSearch(QPointer<CppModelManager> modelManager,
SemanticSearchFactory::Ptr factory)
{
- return QtConcurrent::run(&semanticSearch_helper, modelManager, factory);
+ return QtConcurrent::run(&semanticSearch_helper, modelManager,
+ modelManager->buildWorkingCopyList(), factory);
}