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 #pragma once
0007 
0008 #include <QObject>
0009 #include <QSet>
0010 
0011 #include "logic/plugins/noteMapper/noteMapperParserUtils.h"
0012 #include "logic/plugins/puml/pumlParserUtils.h"
0013 #include "logic/plugins/syntaxHighlight/highlightParserUtils.h"
0014 
0015 class PluginHelper
0016 {
0017 public:
0018     explicit PluginHelper(Parser *parser);
0019     void clearPluginsInfo();
0020     void clearPluginsPreviousInfo();
0021     void preTokChanges();
0022     void postTokChanges();
0023 
0024     QString blockCodePlugins(const QString &lang, const QString &_text);
0025 
0026     // NoteMapper
0027     NoteMapperParserUtils *getMapperParserUtils() const;
0028 
0029     // Syntax highlight
0030     HighlightParserUtils *getHighlightParserUtils() const;
0031 
0032     // PUML
0033     PUMLParserUtils *getPUMLParserUtils() const;
0034 
0035 private:
0036     // Synthax highlight
0037     HighlightParserUtils *m_highlightParserUtils = nullptr;
0038 
0039     // NoteMapper
0040     NoteMapperParserUtils *m_mapperParserUtils = nullptr;
0041 
0042     // PUML
0043     PUMLParserUtils *m_pumlParserUtils = nullptr;
0044 };