data: showing local symbols
- added local symbols to storage - added tests for local symbol parsing - added MessageActivateLocalSymbols to activate local symbols in code view - TokenLocations now store their LocationType instead of a plain bool "isScope" - moved LocationType from TokenLocation to separate file, since it is also used in Annotations now. - added local_symbol in stylesheet to define a style for hovering and activating these elements - renamed location to token in stylesheet
This commit is contained in:
@@ -86,6 +86,12 @@ void CodeController::handleMessage(MessageActivateAll* message)
|
||||
showContents(message);
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageActivateLocalSymbols* message)
|
||||
{
|
||||
CodeView* view = getView();
|
||||
view->showActiveLocalSymbolIds(message->symbolIds);
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageActivateTokens* message)
|
||||
{
|
||||
CodeView* view = getView();
|
||||
@@ -358,7 +364,7 @@ std::vector<CodeSnippetParams> CodeController::getSnippetsForFile(std::shared_pt
|
||||
fileLocations->forEachStartTokenLocation(
|
||||
[&](TokenLocation* startLoc) -> void
|
||||
{
|
||||
if (startLoc->getType() == TokenLocation::LOCATION_SCOPE)
|
||||
if (startLoc->getType() == LOCATION_SCOPE)
|
||||
{
|
||||
TokenLocation* endLoc = startLoc->getOtherTokenLocation();
|
||||
TokenLocation* scopeLoc = scopeLocations->addTokenLocation(
|
||||
@@ -368,7 +374,7 @@ std::vector<CodeSnippetParams> CodeController::getSnippetsForFile(std::shared_pt
|
||||
startLoc->getColumnNumber(),
|
||||
endLoc->getLineNumber(),
|
||||
endLoc->getColumnNumber());
|
||||
scopeLoc->setType(TokenLocation::LOCATION_SCOPE);
|
||||
scopeLoc->setType(LOCATION_SCOPE);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
#include "utility/messaging/type/MessageActivateAll.h"
|
||||
#include "utility/messaging/type/MessageActivateLocalSymbols.h"
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
#include "utility/messaging/type/MessageChangeFileView.h"
|
||||
#include "utility/messaging/type/MessageFlushUpdates.h"
|
||||
@@ -27,6 +28,7 @@ class TokenLocationFile;
|
||||
class CodeController
|
||||
: public Controller
|
||||
, public MessageListener<MessageActivateAll>
|
||||
, public MessageListener<MessageActivateLocalSymbols>
|
||||
, public MessageListener<MessageActivateTokens>
|
||||
, public MessageListener<MessageChangeFileView>
|
||||
, public MessageListener<MessageFlushUpdates>
|
||||
@@ -44,6 +46,7 @@ private:
|
||||
static const uint s_lineRadius;
|
||||
|
||||
virtual void handleMessage(MessageActivateAll* message);
|
||||
virtual void handleMessage(MessageActivateLocalSymbols* message);
|
||||
virtual void handleMessage(MessageActivateTokens* message);
|
||||
virtual void handleMessage(MessageChangeFileView* message);
|
||||
virtual void handleMessage(MessageFlushUpdates* message);
|
||||
|
||||
@@ -72,7 +72,7 @@ void FeatureController::handleMessage(MessageActivateTokenLocations* message)
|
||||
nodeId,
|
||||
m_storageAccess->getNodeTypeForNodeWithId(nodeId),
|
||||
m_storageAccess->getNameHierarchyForNodeWithId(nodeId)
|
||||
);
|
||||
);
|
||||
}
|
||||
m.dispatchImmediately();
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
#include "utility/messaging/type/MessageFlushUpdates.h"
|
||||
#include "utility/utility.h"
|
||||
|
||||
#include "component/view/UndoRedoView.h"
|
||||
#include "data/access/StorageAccess.h"
|
||||
@@ -52,10 +53,26 @@ void UndoRedoController::handleMessage(MessageActivateFile* message)
|
||||
processCommand(command);
|
||||
}
|
||||
|
||||
void UndoRedoController::handleMessage(MessageActivateLocalSymbols* message)
|
||||
{
|
||||
if (m_lastCommand.message &&
|
||||
m_lastCommand.message->getType() == message->getType() &&
|
||||
utility::isPermutation(
|
||||
message->symbolIds,
|
||||
static_cast<MessageActivateLocalSymbols*>(m_lastCommand.message.get())->symbolIds)
|
||||
)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Command command(std::make_shared<MessageActivateLocalSymbols>(*message), 1);
|
||||
processCommand(command);
|
||||
}
|
||||
|
||||
void UndoRedoController::handleMessage(MessageActivateNodes* message)
|
||||
{
|
||||
if (m_lastCommand.message &&
|
||||
m_lastCommand.message->getType() == message->getType() &&
|
||||
if (m_lastCommand.message &&
|
||||
m_lastCommand.message->getType() == message->getType() &&
|
||||
message->nodes.size() &&
|
||||
static_cast<MessageActivateNodes*>(m_lastCommand.message.get())->nodes.size() == message->nodes.size() &&
|
||||
static_cast<MessageActivateNodes*>(m_lastCommand.message.get())->nodes[0].nameHierarchy.getQualifiedNameWithSignature() ==
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
#include "utility/messaging/type/MessageActivateEdge.h"
|
||||
#include "utility/messaging/type/MessageActivateFile.h"
|
||||
#include "utility/messaging/type/MessageActivateLocalSymbols.h"
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
#include "utility/messaging/type/MessageActivateTokenIds.h"
|
||||
#include "utility/messaging/type/MessageChangeFileView.h"
|
||||
@@ -32,6 +33,7 @@ class UndoRedoController
|
||||
: public Controller
|
||||
, public MessageListener<MessageActivateEdge>
|
||||
, public MessageListener<MessageActivateFile>
|
||||
, public MessageListener<MessageActivateLocalSymbols>
|
||||
, public MessageListener<MessageActivateNodes>
|
||||
, public MessageListener<MessageActivateTokenIds>
|
||||
, public MessageListener<MessageChangeFileView>
|
||||
@@ -65,6 +67,7 @@ private:
|
||||
|
||||
virtual void handleMessage(MessageActivateEdge* message);
|
||||
virtual void handleMessage(MessageActivateFile* message);
|
||||
virtual void handleMessage(MessageActivateLocalSymbols* message);
|
||||
virtual void handleMessage(MessageActivateNodes* message);
|
||||
virtual void handleMessage(MessageActivateTokenIds* message);
|
||||
virtual void handleMessage(MessageChangeFileView* message);
|
||||
|
||||
@@ -39,6 +39,7 @@ public:
|
||||
|
||||
virtual void showFirstActiveSnippet(const std::vector<Id>& activeTokenIds, bool scrollTo) = 0;
|
||||
virtual void showActiveTokenIds(const std::vector<Id>& activeTokenIds) = 0;
|
||||
virtual void showActiveLocalSymbolIds(const std::vector<Id>& activeLocalSymbolIds) = 0;
|
||||
|
||||
virtual void focusTokenIds(const std::vector<Id>& focusedTokenIds) = 0;
|
||||
virtual void defocusTokenIds() = 0;
|
||||
|
||||
Reference in New Issue
Block a user