logic: Show overview of analyzed symbols after launch
* show analysed nodes as bundles in graph * ellide node names longer than 50 chars * sort nodes alphabetic in these bundles * show stats of analysis in code * error are displayed as well in overview * added keywords overview and error * project description can be set in .coatiproject file * description can include links to symbols using [symbol] syntax * updated documentation * increased toc nesting in documentation
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
#include "component/controller/helper/ActivationTranslator.h"
|
||||
|
||||
#include "data/access/StorageAccess.h"
|
||||
#include "utility/messaging/type/MessageActivateAll.h"
|
||||
#include "utility/messaging/type/MessageActivateEdge.h"
|
||||
#include "utility/messaging/type/MessageActivateFile.h"
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
#include "utility/messaging/type/MessageActivateTokenIds.h"
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
#include "utility/messaging/type/MessageSearch.h"
|
||||
#include "utility/messaging/type/MessageShowErrors.h"
|
||||
#include "utility/messaging/type/MessageShowFile.h"
|
||||
|
||||
ActivationTranslator::ActivationTranslator(StorageAccess* storageAccess)
|
||||
@@ -99,9 +102,40 @@ std::shared_ptr<MessageActivateTokens> ActivationTranslator::translateMessage(co
|
||||
return m;
|
||||
}
|
||||
|
||||
std::shared_ptr<MessageActivateTokens> ActivationTranslator::translateMessage(const MessageActivateTokenIds* message) const
|
||||
{
|
||||
std::shared_ptr<MessageActivateTokens> m;
|
||||
m = std::make_shared<MessageActivateTokens>(message->tokenIds);
|
||||
m->undoRedoType = message->undoRedoType;
|
||||
m->setKeepContent(message->keepContent());
|
||||
return m;
|
||||
}
|
||||
|
||||
std::shared_ptr<MessageActivateTokens> ActivationTranslator::translateMessage(const MessageSearch* message) const
|
||||
{
|
||||
std::vector<Id> tokenIds = m_storageAccess->getTokenIdsForMatches(message->getMatches());
|
||||
const std::vector<SearchMatch>& matches = message->getMatches();
|
||||
|
||||
for (const SearchMatch& match : matches)
|
||||
{
|
||||
if (match.searchType == SearchMatch::SEARCH_COMMAND &&
|
||||
match.getFullName() == SearchMatch::getCommandName(SearchMatch::COMMAND_ALL))
|
||||
{
|
||||
MessageActivateAll msg;
|
||||
msg.undoRedoType = message->undoRedoType;
|
||||
msg.dispatchImmediately();
|
||||
return nullptr;
|
||||
}
|
||||
else if (match.searchType == SearchMatch::SEARCH_COMMAND &&
|
||||
match.getFullName() == SearchMatch::getCommandName(SearchMatch::COMMAND_ERROR))
|
||||
{
|
||||
MessageShowErrors msg;
|
||||
msg.undoRedoType = message->undoRedoType;
|
||||
msg.dispatchImmediately();
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<Id> tokenIds = m_storageAccess->getTokenIdsForMatches(matches);
|
||||
tokenIds = m_storageAccess->getActiveTokenIdsForTokenIds(tokenIds);
|
||||
|
||||
std::shared_ptr<MessageActivateTokens> m;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
class MessageActivateEdge;
|
||||
class MessageActivateFile;
|
||||
class MessageActivateNodes;
|
||||
class MessageActivateTokenIds;
|
||||
class MessageActivateTokens;
|
||||
class MessageSearch;
|
||||
class StorageAccess;
|
||||
@@ -19,6 +20,7 @@ public:
|
||||
std::shared_ptr<MessageActivateTokens> translateMessage(const MessageActivateEdge* message) const;
|
||||
std::shared_ptr<MessageActivateTokens> translateMessage(const MessageActivateFile* message) const;
|
||||
std::shared_ptr<MessageActivateTokens> translateMessage(const MessageActivateNodes* message) const;
|
||||
std::shared_ptr<MessageActivateTokens> translateMessage(const MessageActivateTokenIds* message) const;
|
||||
std::shared_ptr<MessageActivateTokens> translateMessage(const MessageSearch* message) const;
|
||||
|
||||
private:
|
||||
|
||||
@@ -126,13 +126,18 @@ void BucketGrid::createBuckets(std::vector<DummyNode>& nodes, const std::vector<
|
||||
bool activeNodeAdded = false;
|
||||
for (DummyNode& node : nodes)
|
||||
{
|
||||
if (node.hasActiveSubNode())
|
||||
if (node.hasActiveSubNode() || !edges.size())
|
||||
{
|
||||
addNode(&node);
|
||||
activeNodeAdded = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!edges.size())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!activeNodeAdded)
|
||||
{
|
||||
addNode(&nodes[0]);
|
||||
|
||||
@@ -114,6 +114,8 @@ public:
|
||||
|
||||
// GraphNode
|
||||
const Node* data;
|
||||
std::string name;
|
||||
|
||||
bool active;
|
||||
bool connected;
|
||||
bool expanded;
|
||||
@@ -127,7 +129,6 @@ public:
|
||||
|
||||
// BundleNode
|
||||
std::vector<DummyNode> bundledNodes;
|
||||
std::string name;
|
||||
};
|
||||
|
||||
#endif // DUMMY_NODE_H
|
||||
|
||||
Reference in New Issue
Block a user