From 2b1001eb24c1b968c0563d9e0006ed0a70cc6474 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Thu, 18 Jul 2024 17:01:29 +0200 Subject: [PATCH] Lua: Add TextEditor::currentEditor Change-Id: I4a2e4703bca2b557aac4240d7bc2519f7b50217b Reviewed-by: hjk --- src/plugins/lua/bindings/texteditor.cpp | 18 +++++++++++------- src/plugins/lua/meta/texteditor.lua | 7 ++++++- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/plugins/lua/bindings/texteditor.cpp b/src/plugins/lua/bindings/texteditor.cpp index 21cbffeb47f..047df08cc3a 100644 --- a/src/plugins/lua/bindings/texteditor.cpp +++ b/src/plugins/lua/bindings/texteditor.cpp @@ -97,10 +97,14 @@ void addTextEditorModule() { TextEditorRegistry::instance(); - LuaEngine::registerProvider("TextDocument", [](sol::state_view lua) -> sol::object { - sol::table documents = lua.create_table(); + LuaEngine::registerProvider("TextEditor", [](sol::state_view lua) -> sol::object { + sol::table result = lua.create_table(); - documents.new_usertype( + result["currentEditor"] = []() -> TextEditor::BaseTextEditor * { + return TextEditor::BaseTextEditor::currentTextEditor(); + }; + + result.new_usertype( "MultiTextCursor", sol::no_constructor, "mainCursor", @@ -108,7 +112,7 @@ void addTextEditorModule() "cursors", &Utils::MultiTextCursor::cursors); - documents.new_usertype( + result.new_usertype( "TextCursor", sol::no_constructor, "position", @@ -118,7 +122,7 @@ void addTextEditorModule() "columnNumber", &QTextCursor::columnNumber); - documents.new_usertype( + result.new_usertype( "TextEditor", sol::no_constructor, "document", @@ -128,7 +132,7 @@ void addTextEditorModule() return textEditor->editorWidget()->multiTextCursor(); }); - documents.new_usertype( + result.new_usertype( "TextDocument", sol::no_constructor, "file", @@ -147,7 +151,7 @@ void addTextEditorModule() "blockCount", [](TextEditor::TextDocument *document) { return document->document()->blockCount(); }); - return documents; + return result; }); LuaEngine::registerHook("editors.text.currentChanged", [](sol::function func, QObject *guard) { diff --git a/src/plugins/lua/meta/texteditor.lua b/src/plugins/lua/meta/texteditor.lua index 8478a0eb62a..d6e9b764c01 100644 --- a/src/plugins/lua/meta/texteditor.lua +++ b/src/plugins/lua/meta/texteditor.lua @@ -1,4 +1,5 @@ ---@meta TextEditor +local textEditor = {} ---@class TextCursor ---@field position integer The position of the cursor. @@ -39,4 +40,8 @@ function TextEditor:document() end ---@return MultiTextCursor cursor The cursor of the editor. function TextEditor:cursor() end -return TextDocument +---Returns the current editor or nil. +---@return TextEditor|nil editor The currently active editor or nil if there is none. +function textEditor.currentEditor() end + +return textEditor