File indexing completed on 2024-04-28 11:45:58
0001 /* 0002 SPDX-FileCopyrightText: KDE Developers 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KATEVI_MACROS_H 0008 #define KATEVI_MACROS_H 0009 0010 #include "completion.h" 0011 #include "keyevent.h" 0012 #include "ktexteditor_export.h" 0013 0014 #include <QKeyEvent> 0015 0016 class KConfigGroup; 0017 0018 namespace KateVi 0019 { 0020 class KTEXTEDITOR_EXPORT Macros 0021 { 0022 public: 0023 explicit Macros(); 0024 ~Macros(); 0025 0026 void writeConfig(KConfigGroup &config) const; 0027 void readConfig(const KConfigGroup &config); 0028 0029 void store(const QChar ®, const QList<KeyEvent> ¯oKeyEventLog, const CompletionList &completions); 0030 void remove(const QChar ®); 0031 void clear(); 0032 0033 QString get(const QChar ®) const; 0034 CompletionList getCompletions(const QChar ®) const; 0035 0036 private: 0037 KTEXTEDITOR_NO_EXPORT 0038 int readMacroCompletions(const QChar ®, const QStringList &encodedMacroCompletions, int macroCompletionIndex); 0039 KTEXTEDITOR_NO_EXPORT 0040 static QString encodeMacroCompletionForConfig(const Completion &completionForMacro); 0041 KTEXTEDITOR_NO_EXPORT 0042 static Completion decodeMacroCompletionFromConfig(const QString &encodedMacroCompletion); 0043 0044 private: 0045 QHash<QChar, QString> m_macros; 0046 QHash<QChar, QList<Completion>> m_completions; 0047 }; 0048 0049 } 0050 0051 #endif // KATEVI_MACROS_H