#ifndef STORYCHAINSOURCEEDITOR_H #define STORYCHAINSOURCEEDITOR_H #include "ContentPresent.h" #include "SensitiveCore.h" #include "SourceEditView.h" #include #include namespace Components { class StoryChainSourceEditFactory : public Core::FileExtensionFactory { public: StoryChainSourceEditFactory(); virtual ~StoryChainSourceEditFactory() = default; // PluginFactory interface public: virtual Core::Extension *newInstance(Core::AppCore *core) override; virtual QList configs() const override; virtual QWidget *getNewPanel(Config::Configration *config) override; virtual QString extensionName() const override; virtual QList suffixPeers() const override; }; /** * @brief StoryChain源码编辑器 */ class StoryChainSourceEdit : public FormattedTextEdit { public: StoryChainSourceEdit(Core::FileExtensionFactory *factory); virtual ~StoryChainSourceEdit() = default; // ModeView interface public: virtual void modeReset(const QString &) const override; virtual QList modes() const override; virtual QString currentMode() const override; virtual QString title() const override; // VariedTextView interface public: virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override; virtual void jumpTo(const QList &path) override; // Plugin interface public: virtual Core::FileExtensionFactory *factory() const override; virtual void reload(QList configs) override; // FormattedTextEdit interface protected: virtual void rehighlighter() override; private: QSyntaxHighlighter *const highter_ins; Parse::Result::DocCore * doc_ins; Core::AppCore *core_ins; Core::FileExtensionFactory *const factory_ins; // Extension interface public: virtual void resetProcsType(const QString &suffix) override; }; } #endif // STORYCHAINSOURCEEDITOR_H