ProFileEditorFactory::ProFileEditorFactory() { setId(Constants::PROFILE_EDITOR_ID); setDisplayName(qApp->translate("OpenWith::Editors", Constants::PROFILE_EDITOR_DISPLAY_NAME)); addMimeType(Constants::PROFILE_MIMETYPE); addMimeType(Constants::PROINCLUDEFILE_MIMETYPE); addMimeType(Constants::PROFEATUREFILE_MIMETYPE); addMimeType(Constants::PROCONFIGURATIONFILE_MIMETYPE); addMimeType(Constants::PROCACHEFILE_MIMETYPE); addMimeType(Constants::PROSTASHFILE_MIMETYPE); setDocumentCreator([]() { return new ProFileDocument; }); setEditorWidgetCreator([]() { return new ProFileEditorWidget; }); ProFileCompletionAssistProvider *pcap = new ProFileCompletionAssistProvider; setCompletionAssistProvider(pcap); setCommentStyle(Utils::CommentDefinition::HashStyle); setEditorActionHandlers(TextEditorActionHandler::UnCommentSelection | TextEditorActionHandler::JumpToFileUnderCursor); Keywords keywords(pcap->variables(), pcap->functions(), QMap<QString, QStringList>()); addHoverHandler(new ProFileHoverHandler(keywords)); setSyntaxHighlighterCreator([keywords]() { return new ProFileHighlighter(keywords); }); const QString defaultOverlay = QLatin1String(QtSupport::Constants::ICON_QT_PROJECT); Core::FileIconProvider::registerIconOverlayForSuffix( creatorTheme()->imageFile(Theme::IconOverlayPro, defaultOverlay).toLatin1().data(), "pro"); Core::FileIconProvider::registerIconOverlayForSuffix( creatorTheme()->imageFile(Theme::IconOverlayPri, defaultOverlay).toLatin1().data(), "pri"); Core::FileIconProvider::registerIconOverlayForSuffix( creatorTheme()->imageFile(Theme::IconOverlayPrf, defaultOverlay).toLatin1().data(), "prf"); }
ProFileHoverHandler::ProFileHoverHandler(QObject *parent) : BaseHoverHandler(parent), m_manualKind(UnknownManual) { ProFileCompletionAssistProvider *pcap = ExtensionSystem::PluginManager::instance()->getObject<ProFileCompletionAssistProvider>(); m_keywords = TextEditor::Keywords(pcap->variables(), pcap->functions(), QMap<QString, QStringList>()); }
ProFileHighlighter::ProFileHighlighter(QTextDocument *document) : TextEditor::SyntaxHighlighter(document) { ProFileCompletionAssistProvider *pcap = ExtensionSystem::PluginManager::getObject<ProFileCompletionAssistProvider>(); m_keywords = TextEditor::Keywords(pcap->variables(), pcap->functions(), QMap<QString, QStringList>()); static QVector<TextEditor::TextStyle> categories; if (categories.isEmpty()) { categories << TextEditor::C_TYPE << TextEditor::C_KEYWORD << TextEditor::C_COMMENT << TextEditor::C_VISUAL_WHITESPACE; } setTextFormatCategories(categories); }