This change shows the files in the code view minimized, if more than 5. This greatly improves performance, because code and annotations won't get loaded until needed. Files including declarations or definitions of the active symbol are still expanded. The number of references in each file is now shown in it's title bar. Clicking the title bar allows for expanding and collapsing as well now.
64 lines
2.2 KiB
C++
64 lines
2.2 KiB
C++
#ifndef CODE_CONTROLLER_H
|
|
#define CODE_CONTROLLER_H
|
|
|
|
#include <map>
|
|
#include <string>
|
|
|
|
#include "utility/messaging/MessageListener.h"
|
|
#include "utility/messaging/type/MessageActivateTokens.h"
|
|
#include "utility/messaging/type/MessageFinishedParsing.h"
|
|
#include "utility/messaging/type/MessageFocusIn.h"
|
|
#include "utility/messaging/type/MessageFocusOut.h"
|
|
#include "utility/messaging/type/MessageShowFile.h"
|
|
#include "utility/messaging/type/MessageShowScope.h"
|
|
#include "utility/messaging/type/MessageShowSnippets.h"
|
|
#include "utility/types.h"
|
|
|
|
#include "component/controller/helper/SnippetMerger.h"
|
|
#include "component/controller/Controller.h"
|
|
#include "component/view/CodeView.h"
|
|
|
|
class StorageAccess;
|
|
class TokenLocationCollection;
|
|
class TokenLocationFile;
|
|
|
|
class CodeController
|
|
: public Controller
|
|
, public MessageListener<MessageActivateTokens>
|
|
, public MessageListener<MessageFinishedParsing>
|
|
, public MessageListener<MessageFocusIn>
|
|
, public MessageListener<MessageFocusOut>
|
|
, public MessageListener<MessageShowFile>
|
|
, public MessageListener<MessageShowScope>
|
|
, public MessageListener<MessageShowSnippets>
|
|
{
|
|
public:
|
|
CodeController(StorageAccess* storageAccess);
|
|
~CodeController();
|
|
|
|
private:
|
|
static const uint s_lineRadius;
|
|
|
|
virtual void handleMessage(MessageActivateTokens* message);
|
|
virtual void handleMessage(MessageFinishedParsing* message);
|
|
virtual void handleMessage(MessageFocusIn* message);
|
|
virtual void handleMessage(MessageFocusOut* message);
|
|
virtual void handleMessage(MessageShowFile* message);
|
|
virtual void handleMessage(MessageShowScope* message);
|
|
virtual void handleMessage(MessageShowSnippets* message);
|
|
|
|
CodeView* getView();
|
|
|
|
std::vector<CodeView::CodeSnippetParams> getSnippetsForActiveTokenLocations(
|
|
const TokenLocationCollection* collection, Id declarationId) const;
|
|
std::vector<CodeView::CodeSnippetParams> getSnippetsForActiveTokenLocationsInFile(
|
|
std::shared_ptr<TokenLocationFile>) const;
|
|
std::vector<CodeView::CodeSnippetParams> getSnippetsForFile(std::shared_ptr<TokenLocationFile> file) const;
|
|
std::shared_ptr<SnippetMerger> buildMergerHierarchy(
|
|
TokenLocation* location, SnippetMerger& fileScopedMerger, std::map<int, std::shared_ptr<SnippetMerger>>& mergers) const;
|
|
|
|
StorageAccess* m_storageAccess;
|
|
};
|
|
|
|
#endif // CODE_CONTROLLER_H
|