Kate
katescript.h
Go to the documentation of this file.00001 00019 00020 #ifndef KATE_SCRIPT_H 00021 #define KATE_SCRIPT_H 00022 00023 #include <QtCore/QObject> 00024 #include <QtCore/QHash> 00025 #include <QtCore/QStringList> 00026 00027 #include <QtScript/QScriptValue> 00028 #include <QtScript/QScriptable> 00029 00030 class QScriptEngine; 00031 class QScriptContext; 00032 00033 class KateDocument; 00034 class KateView; 00035 00036 class KateScriptDocument; 00037 class KateScriptView; 00038 00039 namespace Kate { 00040 enum ScriptType { 00042 IndentationScript, 00044 UnknownScript 00045 }; 00046 00048 namespace Script { 00049 QScriptValue debug(QScriptContext *context, QScriptEngine *engine); 00050 } 00051 } 00052 00053 //BEGIN KateScriptInformation 00054 00058 class KateScriptInformation { 00059 public: 00061 QString name; 00063 QString license; 00065 QString author; 00067 QString version; 00069 QString kateVersion; 00075 Kate::ScriptType type; 00081 QString requiredStyle; 00087 QStringList indentLanguages; 00093 int priority; 00097 QHash<QString, QString> other; 00098 00102 QString baseName; 00103 }; 00104 00105 //END 00106 00107 //BEGIN KateScript 00108 00112 class KateScript { 00113 public: 00119 KateScript(const QString &url, const KateScriptInformation &information); 00120 ~KateScript(); 00121 00123 const QString &url() { return m_url; } 00124 00126 const KateScriptInformation &information() { return m_information; } 00127 00135 bool load(); 00136 00141 bool setView (KateView *view); 00142 00147 QScriptValue global(const QString &name); 00148 00153 QScriptValue function(const QString &name); 00154 00156 const QString &errorMessage() { return m_errorMessage; } 00157 00159 void displayBacktrace(const QScriptValue &error, const QString &header = QString()); 00160 00162 void clearExceptions(); 00163 00164 private: 00166 void initEngine(); 00167 00169 bool m_loaded; 00171 bool m_loadSuccessful; 00173 QString m_url; 00175 KateScriptInformation m_information; 00177 QString m_errorMessage; 00178 00179 protected: 00181 QScriptEngine *m_engine; 00182 00183 private: 00185 KateScriptDocument *m_document; 00186 KateScriptView *m_view; 00187 }; 00188 00189 //END 00190 00191 #endif 00192 00193 // kate: space-indent on; indent-width 2; replace-tabs on;