From 3cc51e0d013408def5d1c90977ab6f3ed55e1145 Mon Sep 17 00:00:00 2001 From: mlangkabel Date: Mon, 4 Jun 2018 19:05:54 +0200 Subject: [PATCH] logic: sonargraph fixes * updated sonargraph project icon * fixed Sonargraph SourceGroup to only return indexer commands for requested files * fixed refresh info generator to ignore non-existing files --- bin/app/data/gui/icon/sonargraph_icon.png | Bin 9012 -> 8960 bytes src/lib/data/indexer/IndexerCommandList.cpp | 9 +++++- src/lib/project/RefreshInfoGenerator.cpp | 8 ++++- .../project/SourceGroupCxxSonargraph.cpp | 9 +++++- .../project/SourceGroupJavaSonargraph.cpp | 8 ++++- src/test/RefreshInfoGeneratorTestSuite.h | 28 +++++++++++------- 6 files changed, 47 insertions(+), 15 deletions(-) diff --git a/bin/app/data/gui/icon/sonargraph_icon.png b/bin/app/data/gui/icon/sonargraph_icon.png index 571f114951af9c3c8802bb00fefc52ff6f73d072..9100eb4f06a05cb7baf0f14163afbf825d0a9ca1 100644 GIT binary patch delta 6279 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 TiFY&r#HOyQrBa4^8TkJIu$YpN delta 6332 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 a5&**9^bcn6d3^!kAGC^=auw1#?Ee8xu+CEe diff --git a/src/lib/data/indexer/IndexerCommandList.cpp b/src/lib/data/indexer/IndexerCommandList.cpp index fbfe0024..a66984b3 100644 --- a/src/lib/data/indexer/IndexerCommandList.cpp +++ b/src/lib/data/indexer/IndexerCommandList.cpp @@ -35,7 +35,14 @@ void IndexerCommandList::shuffle() std::vector sourceFileSizesToCommands; for (std::shared_ptr command: m_commands) { - sourceFileSizesToCommands.push_back(std::make_pair(FileSystem::getFileByteSize(command->getSourceFilePath()), command)); + if (command->getSourceFilePath().exists()) + { + sourceFileSizesToCommands.push_back(std::make_pair(FileSystem::getFileByteSize(command->getSourceFilePath()), command)); + } + else + { + sourceFileSizesToCommands.push_back(std::make_pair(1, command)); + } } std::sort(sourceFileSizesToCommands.begin(), sourceFileSizesToCommands.end(), [](const PairType& p, const PairType& q){ return p.first > q.first; }); diff --git a/src/lib/project/RefreshInfoGenerator.cpp b/src/lib/project/RefreshInfoGenerator.cpp index b45e168f..f952e79e 100644 --- a/src/lib/project/RefreshInfoGenerator.cpp +++ b/src/lib/project/RefreshInfoGenerator.cpp @@ -170,7 +170,13 @@ std::set RefreshInfoGenerator::getAllSourceFilePaths(const std::vector { if (sourceGroup->getStatus() == SOURCE_GROUP_STATUS_ENABLED) { - utility::append(allSourceFilePaths, sourceGroup->getAllSourceFilePaths()); + for (const FilePath& sourceFilePath : sourceGroup->getAllSourceFilePaths()) + { + if (sourceFilePath.exists()) + { + allSourceFilePaths.insert(sourceFilePath); + } + } } } diff --git a/src/lib_cxx/project/SourceGroupCxxSonargraph.cpp b/src/lib_cxx/project/SourceGroupCxxSonargraph.cpp index a2c1f41b..aad71442 100644 --- a/src/lib_cxx/project/SourceGroupCxxSonargraph.cpp +++ b/src/lib_cxx/project/SourceGroupCxxSonargraph.cpp @@ -1,5 +1,6 @@ #include "project/SourceGroupCxxSonargraph.h" +#include "data/indexer/IndexerCommand.h" #include "settings/ApplicationSettings.h" #include "settings/SourceGroupSettingsCxxSonargraph.h" #include "utility/messaging/type/MessageStatus.h" @@ -66,7 +67,13 @@ std::vector> SourceGroupCxxSonargraph::getIndexe m_settings->getSonargraphProjectPathExpandedAndAbsolute(), getLanguage() )) { - indexerCommands = project->getIndexerCommands(m_settings, ApplicationSettings::getInstance()); + for (std::shared_ptr indexerCommand : project->getIndexerCommands(m_settings, ApplicationSettings::getInstance())) + { + if (filesToIndex.find(indexerCommand->getSourceFilePath()) != filesToIndex.end()) + { + indexerCommands.push_back(indexerCommand); + } + } } return indexerCommands; } diff --git a/src/lib_java/project/SourceGroupJavaSonargraph.cpp b/src/lib_java/project/SourceGroupJavaSonargraph.cpp index a83d628f..860a0e1a 100644 --- a/src/lib_java/project/SourceGroupJavaSonargraph.cpp +++ b/src/lib_java/project/SourceGroupJavaSonargraph.cpp @@ -75,7 +75,13 @@ std::vector> SourceGroupJavaSonargraph::getIndex m_settings->getSonargraphProjectPathExpandedAndAbsolute(), getLanguage() )) { - indexerCommands = project->getIndexerCommands(m_settings, ApplicationSettings::getInstance()); + for (std::shared_ptr indexerCommand : project->getIndexerCommands(m_settings, ApplicationSettings::getInstance())) + { + if (filesToIndex.find(indexerCommand->getSourceFilePath()) != filesToIndex.end()) + { + indexerCommands.push_back(indexerCommand); + } + } } if (!indexerCommands.empty()) diff --git a/src/test/RefreshInfoGeneratorTestSuite.h b/src/test/RefreshInfoGeneratorTestSuite.h index cf88ecee..712c649d 100644 --- a/src/test/RefreshInfoGeneratorTestSuite.h +++ b/src/test/RefreshInfoGeneratorTestSuite.h @@ -31,21 +31,27 @@ public: void test_refresh_info_for_all_files_has_nothing_to_clear_and_specified_source_files_for_basic_sourcegroup() { - const FilePath sourceFilePath = m_sourceFolder.getConcatenated(L"main.cpp"); + cleanup(); + { + const FilePath sourceFilePath = m_sourceFolder.getConcatenated(L"main.cpp"); - std::vector> sourceGroups; - sourceGroups.push_back(std::shared_ptr(new SourceGroupTest({ sourceFilePath }))); + std::vector> sourceGroups; + sourceGroups.push_back(std::shared_ptr(new SourceGroupTest({ sourceFilePath }))); - const RefreshInfo refreshInfo = RefreshInfoGenerator::getRefreshInfoForAllFiles(sourceGroups); + addFileToFileSystem(sourceFilePath); - TS_ASSERT_EQUALS(REFRESH_ALL_FILES, refreshInfo.mode); - TS_ASSERT_EQUALS(0, refreshInfo.nonIndexedFilesToClear.size()); - TS_ASSERT_EQUALS(0, refreshInfo.filesToClear.size()); - TS_ASSERT_EQUALS(1, refreshInfo.filesToIndex.size()); + const RefreshInfo refreshInfo = RefreshInfoGenerator::getRefreshInfoForAllFiles(sourceGroups); - TS_ASSERT(utility::containsElement( - utility::toVector(refreshInfo.filesToIndex), sourceFilePath - )); + TS_ASSERT_EQUALS(REFRESH_ALL_FILES, refreshInfo.mode); + TS_ASSERT_EQUALS(0, refreshInfo.nonIndexedFilesToClear.size()); + TS_ASSERT_EQUALS(0, refreshInfo.filesToClear.size()); + TS_ASSERT_EQUALS(1, refreshInfo.filesToIndex.size()); + + TS_ASSERT(utility::containsElement( + utility::toVector(refreshInfo.filesToIndex), sourceFilePath + )); + } + cleanup(); } void test_refresh_info_for_updated_files_is_empty_for_empty_storage_and_empty_sourcegroup()