Kate
kateluaindentscript.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "config.h"
00020 #ifdef HAVE_LUA
00021
00022 #ifndef _KATELUAINDENTSCRIPT_H_
00023 #define _KATELUAINDENTSCRIPT_H_
00024
00025 #include "kateindentscriptabstracts.h"
00026 #include <qdict.h>
00027
00028 struct lua_State;
00029
00030 class KateLUAIndentScriptImpl: public KateIndentScriptImplAbstract {
00031 public:
00032 KateLUAIndentScriptImpl(const QString& internalName,
00033 const QString &filePath, const QString &niceName,
00034 const QString ©right, double version);
00035 ~KateLUAIndentScriptImpl();
00036
00037 virtual bool processChar( class Kate::View *view, QChar c, QString &errorMsg );
00038 virtual bool processLine( class Kate::View *view, const KateDocCursor &line, QString &errorMsg );
00039 virtual bool processNewline( class Kate::View *view, const KateDocCursor &begin, bool needcontinue, QString &errorMsg );
00040 protected:
00041 virtual void decRef();
00042 private:
00043 bool setupInterpreter(QString &errorMsg);
00044 void deleteInterpreter();
00045 struct lua_State *m_interpreter;
00046 };
00047
00048 class KateLUAIndentScriptManager: public KateIndentScriptManagerAbstract
00049 {
00050
00051 public:
00052 KateLUAIndentScriptManager ();
00053 virtual ~KateLUAIndentScriptManager ();
00054 virtual KateIndentScript script(const QString &scriptname);
00055 private:
00060 void collectScripts (bool force = false);
00061 void parseScriptHeader(const QString &filePath,
00062 QString *niceName,QString *copyright,double *version);
00063 QDict<KateLUAIndentScriptImpl> m_scripts;
00064 };
00065
00066 #endif
00067
00068 #endif
00069