File indexing completed on 2024-12-22 04:48:18
0001 /* 0002 SPDX-License-Identifier: GPL-2.0-or-later 0003 SPDX-FileCopyrightText: 2024 Louis Schul <schul9louis@gmail.com> 0004 */ 0005 0006 #include "pluginHelper.h" 0007 0008 #include "kleverconfig.h" 0009 0010 PluginHelper::PluginHelper(Parser *parser) 0011 : m_highlightParserUtils(new HighlightParserUtils) 0012 , m_pumlParserUtils(new PUMLParserUtils) 0013 { 0014 m_mapperParserUtils = new NoteMapperParserUtils(parser); 0015 } 0016 0017 void PluginHelper::clearPluginsInfo() 0018 { 0019 if (KleverConfig::codeSynthaxHighlightEnabled()) { 0020 m_highlightParserUtils->clearInfo(); 0021 } 0022 if (KleverConfig::noteMapEnabled()) { 0023 m_mapperParserUtils->clearInfo(); 0024 } 0025 if (KleverConfig::pumlEnabled()) { 0026 m_pumlParserUtils->clearInfo(); 0027 } 0028 } 0029 0030 void PluginHelper::clearPluginsPreviousInfo() 0031 { 0032 if (KleverConfig::codeSynthaxHighlightEnabled()) { 0033 m_highlightParserUtils->clearPreviousInfo(); 0034 } 0035 if (KleverConfig::noteMapEnabled()) { 0036 m_mapperParserUtils->clearPreviousInfo(); 0037 } 0038 if (KleverConfig::pumlEnabled()) { 0039 m_pumlParserUtils->clearPreviousInfo(); 0040 } 0041 } 0042 0043 void PluginHelper::preTokChanges() 0044 { 0045 // Syntax highlight 0046 if (KleverConfig::codeSynthaxHighlightEnabled()) { 0047 m_highlightParserUtils->preTok(); 0048 } 0049 if (KleverConfig::pumlEnabled()) { 0050 m_pumlParserUtils->preTok(); 0051 } 0052 } 0053 0054 void PluginHelper::postTokChanges() 0055 { 0056 if (KleverConfig::noteMapEnabled()) { 0057 m_mapperParserUtils->postTok(); 0058 } 0059 } 0060 0061 QString PluginHelper::blockCodePlugins(const QString &lang, const QString &_text) 0062 { 0063 static const QString pumlStr = QStringLiteral("puml"); 0064 static const QString plantUMLStr = QStringLiteral("plantuml"); 0065 0066 QString returnValue; 0067 if (KleverConfig::pumlEnabled() && (lang.toLower() == pumlStr || lang.toLower() == plantUMLStr)) { 0068 returnValue = m_pumlParserUtils->renderCode(_text, KleverConfig::pumlDark()); 0069 } else { 0070 const bool highlightEnabled = KleverConfig::codeSynthaxHighlightEnabled(); 0071 const bool highlight = highlightEnabled && !lang.isEmpty(); 0072 0073 returnValue = m_highlightParserUtils->renderCode(highlight, _text, lang); 0074 } 0075 0076 return returnValue; 0077 } 0078 0079 // NoteMapper 0080 NoteMapperParserUtils *PluginHelper::getMapperParserUtils() const 0081 { 0082 return m_mapperParserUtils; 0083 } 0084 0085 // Syntax highlight 0086 HighlightParserUtils *PluginHelper::getHighlightParserUtils() const 0087 { 0088 return m_highlightParserUtils; 0089 } 0090 0091 // PUML 0092 PUMLParserUtils *PluginHelper::getPUMLParserUtils() const 0093 { 0094 return m_pumlParserUtils; 0095 }