1 // SciTE - Scintilla based Text Editor
2 // LuaExtension.h - Lua scripting extension
3 // Copyright 1998-2000 by Neil Hodgson <neilh@scintilla.org>
4 // The License.txt file describes the conditions under which this software may be distributed.
5 
6 #ifndef LUAEXTENSION_H
7 #define LUAEXTENSION_H
8 
9 class LuaExtension : public Extension {
10 private:
11 	LuaExtension(); // Singleton
12 
13 public:
14 	static LuaExtension &Instance();
15 
16 	// Deleted so LuaExtension objects can not be copied.
17 	LuaExtension(const LuaExtension &) = delete;
18 	void operator=(const LuaExtension &) = delete;
19 	~LuaExtension() override;
20 
21 	bool Initialise(ExtensionAPI *host_) override;
22 	bool Finalise() override;
23 	bool Clear() override;
24 	bool Load(const char *filename) override;
25 
26 	bool InitBuffer(int) override;
27 	bool ActivateBuffer(int) override;
28 	bool RemoveBuffer(int) override;
29 
30 	bool OnOpen(const char *filename) override;
31 	bool OnSwitchFile(const char *filename) override;
32 	bool OnBeforeSave(const char *filename) override;
33 	bool OnSave(const char *filename) override;
34 	bool OnChar(char ch) override;
35 	bool OnExecute(const char *s) override;
36 	bool OnSavePointReached() override;
37 	bool OnSavePointLeft() override;
38 	bool OnStyle(Scintilla::API::Position startPos, Scintilla::API::Position lengthDoc, int initStyle, StyleWriter *styler) override;
39 	bool OnDoubleClick() override;
40 	bool OnUpdateUI() override;
41 	bool OnMarginClick() override;
42 	bool OnUserListSelection(int listType, const char *selection) override;
43 	bool OnKey(int keyval, int modifiers) override;
44 	bool OnDwellStart(Scintilla::API::Position pos, const char *word) override;
45 	bool OnClose(const char *filename) override;
46 	bool OnUserStrip(int control, int change) override;
47 	bool NeedsOnClose() override;
48 };
49 
50 #endif
51