lua: Change CompletionRequested handler to use an event table. (#5280)
This commit is contained in:
@@ -5,6 +5,8 @@
|
||||
extern "C" {
|
||||
# include <lua.h>
|
||||
}
|
||||
# include "controllers/plugins/LuaUtilities.hpp"
|
||||
|
||||
# include <QString>
|
||||
|
||||
# include <cassert>
|
||||
@@ -55,6 +57,28 @@ struct CompletionList {
|
||||
bool hideOthers{};
|
||||
};
|
||||
|
||||
/**
|
||||
* @lua@class CompletionEvent
|
||||
*/
|
||||
struct CompletionEvent {
|
||||
/**
|
||||
* @lua@field query string The word being completed
|
||||
*/
|
||||
QString query;
|
||||
/**
|
||||
* @lua@field full_text_content string Content of the text input
|
||||
*/
|
||||
QString full_text_content;
|
||||
/**
|
||||
* @lua@field cursor_position integer Position of the cursor in the text input in unicode codepoints (not bytes)
|
||||
*/
|
||||
int cursor_position{};
|
||||
/**
|
||||
* @lua@field is_first_word boolean True if this is the first word in the input
|
||||
*/
|
||||
bool is_first_word{};
|
||||
};
|
||||
|
||||
/**
|
||||
* @includefile common/Channel.hpp
|
||||
* @includefile controllers/plugins/api/ChannelRef.hpp
|
||||
@@ -74,7 +98,7 @@ int c2_register_command(lua_State *L);
|
||||
* Registers a callback to be invoked when completions for a term are requested.
|
||||
*
|
||||
* @lua@param type "CompletionRequested"
|
||||
* @lua@param func fun(query: string, full_text_content: string, cursor_position: integer, is_first_word: boolean): CompletionList The callback to be invoked.
|
||||
* @lua@param func fun(event: CompletionEvent): CompletionList The callback to be invoked.
|
||||
* @exposed c2.register_callback
|
||||
*/
|
||||
int c2_register_callback(lua_State *L);
|
||||
|
||||
Reference in New Issue
Block a user