#include "sourcecodeeditor.h" #include "keywordshightlighter.h" #include #include #include #include using namespace Components; using namespace Enhancement; //SourceCodeEditor::SourceCodeEditor(Core::FileExtensionFactory *factory) // : factory_ins(factory), // highlighter_ins(new KeywordsHightlighter(this)) //{ // highlighter_ins->setDocument(this->textDocument()); // this->setContexMenuProcess([this](QMenu *menu){ // menu->addSeparator(); // menu->addAction("刷新", [this](){highlighter_ins->rehighlight();}); // }); //} //void SourceCodeEditor::concept_jump(const QList &path) //{ // auto fpath = this->absoluteFilePath(); // auto core = core_ins->parseCore(); // if(path.size()){ // auto storynode = core->queryStoryConcept(path[0]).first(); // auto first_word = storynode->refered()[0]; // auto textblock = this->textDocument()->findBlockByNumber(first_word->row()); // auto cur = this->getTextCursor(); // cur.setPosition(textblock.position()); // cur.select(QTextCursor::SelectionType::LineUnderCursor); // this->setTextCursor(cur); // if(path.size() > 1){ // auto storypoint = core->queryStoryStrongPoint(storynode, path[1]).first(); // first_word = storypoint->refered()[0]; // auto textblock = this->textDocument()->findBlockByNumber(first_word->row()); // cur.setPosition(textblock.position()); // cur.select(QTextCursor::SelectionType::LineUnderCursor); // this->setTextCursor(cur); // } // } // textView()->setFocus(); //} //Core::ExtensionFactory *SourceCodeEditor::factory() const //{ // return factory_ins; //} //void SourceCodeEditor::reloadConfigrations(QList configs) //{ // auto family = Config::ConfigHelper::getConfigAsDefaultSequence(configs, {"sourcecodeeditor-setting", "default", "font", "family"}, "微软雅黑"); // auto size = Config::ConfigHelper::getConfigAsDefaultSequence(configs, {"sourcecodeeditor-setting", "default", "font", "size"}, "20"); // QFont font; // font.setFamily(family); // font.setPointSize(size.toUInt()); // this->textDocument()->setDefaultFont(font); //} //void SourceCodeEditor::resetProcsType(const QString &suffix) //{ // procs_type = suffix; //} //void SourceCodeEditor::modeReset(const QString &type) const //{ //} //QList SourceCodeEditor::modes() const //{ // return QList() << "源码编辑"; //} //QString SourceCodeEditor::currentMode() const //{ // return "源码编辑"; //} //void SourceCodeEditor::jumpTo(const QList &path) //{ // if(procs_type == "storyconcept") // concept_jump(path); //} //void SourceCodeEditor::initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent) //{ // static_cast(highlighter_ins)->reset(core->parseCore()->queryDocument(src)); // FormattedTextEdit::initSource(core, src, parent); // this->core_ins = core; //} //void SourceCodeEditor::rehighlighter() //{ // this->highlighter_ins->rehighlight(); //} //Core::Extension *SourceCodeEditorFactory::newInstance(Core::AppCore *core) //{ // return new SourceCodeEditor(this); //} //QList SourceCodeEditorFactory::configs() const //{ // return QList() << Core::Scale::Project << Core::Scale::Global; //} //namespace __impl_temp { // class XMarksConfig : public QWidget // { // public: // XMarksConfig(Config::Configration* port) // { // auto layout = new QVBoxLayout(this); // auto font_family = Config::ConfigHelper::getConfigAsDefault(port, {"sourcecodeeditor-setting", "default", "font", "family"}, "微软雅黑"); // auto fontfamily = new QComboBox(this); // auto families = QFontDatabase().families(QFontDatabase::WritingSystem::SimplifiedChinese); // fontfamily->addItems(families); // fontfamily->setCurrentText(font_family); // connect(fontfamily, &QComboBox::currentTextChanged, [port](const QString &text){ // port->setConfig({"sourcecodeeditor-setting", "default", "font", "family"}, text); // }); // layout->addWidget(fontfamily); // auto font_size = Config::ConfigHelper::getConfigAsDefault(port, {"sourcecodeeditor-setting", "default", "font", "size"}, "20"); // auto fontsize = new QSpinBox(this); // fontsize->setRange(10, 200); // fontsize->setSingleStep(1); // fontsize->setValue(font_size.toInt()); // connect(fontsize, QOverload::of(&QSpinBox::valueChanged), [port](int val){ // port->setConfig({"sourcecodeeditor-setting", "default", "font", "size"}, QString("%1").arg(val)); // }); // layout->addWidget(fontsize); // layout->addWidget(new QWidget(this), 1); // } // }; //} //QWidget *SourceCodeEditorFactory::getNewPanel(Config::Configration *config) //{ // return new __impl_temp::XMarksConfig(config); //} //QString SourceCodeEditorFactory::extensionName() const //{ // return "源码编辑器"; //} //QList SourceCodeEditorFactory::suffixPeers() const //{ // return QList() << "storyconcept"; //}