Kate
katescriptmanager.h
Go to the documentation of this file.00001
00019
00020 #ifndef KATE_SCRIPT_MANAGER_H
00021 #define KATE_SCRIPT_MANAGER_H
00022
00023 #include <ktexteditor/commandinterface.h>
00024 #include <ktexteditor/cursor.h>
00025
00026 #include <kdebug.h>
00027
00028 #include <QVector>
00029
00030 #include "katescript.h"
00031 #include "kateindentscript.h"
00032
00033 class QString;
00034
00035
00040 class KateScriptManager : public KTextEditor::Command
00041 {
00042
00043 public:
00044 KateScriptManager();
00045 ~KateScriptManager();
00046
00048 const QVector<KateScript*> &scripts() { return m_scripts; }
00049
00056 KateIndentScript *indenter(const QString &language);
00057
00065 bool exec(KTextEditor::View *view, const QString &cmd, QString &errorMsg);
00066
00074 bool help(KTextEditor::View *view, const QString &cmd, QString &msg);
00075
00080 const QStringList &cmds();
00081
00082
00083
00091 void collect(const QString& resourceFile,
00092 const QString& directory,
00093 bool force = false);
00094
00099 static bool parseMetaInformation(const QString& url, QHash<QString, QString> &pairs);
00100
00101 public:
00102 KateIndentScript *indentationScript (const QString &scriptname) { return m_indentationScripts.value(scriptname); }
00103
00104 int indentationScripts () { return m_indentationScriptsList.size(); }
00105 KateIndentScript *indentationScriptByIndex (int index) { return m_indentationScriptsList[index]; }
00106
00107 private:
00109 QVector<KateScript*> m_scripts;
00111 QHash<QString, QVector<KateIndentScript*> > m_languageToIndenters;
00112
00117 QHash<QString, KateIndentScript*> m_indentationScripts;
00118
00122 QList<KateIndentScript*> m_indentationScriptsList;
00123 };
00124
00125
00126
00127 #endif
00128
00129