File indexing completed on 2024-03-24 04:00:57
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 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 KTEXTEDITOR_EXPORT void clear(); 0032 0033 QString get(const QChar ®) const; 0034 CompletionList getCompletions(const QChar ®) const; 0035 0036 private: 0037 int readMacroCompletions(const QChar ®, const QStringList &encodedMacroCompletions, int macroCompletionIndex); 0038 static QString encodeMacroCompletionForConfig(const Completion &completionForMacro); 0039 static Completion decodeMacroCompletionFromConfig(const QString &encodedMacroCompletion); 0040 0041 private: 0042 QHash<QChar, QString> m_macros; 0043 QHash<QChar, QList<Completion>> m_completions; 0044 }; 0045 0046 } 0047 0048 #endif // KATEVI_MACROS_H