diff --git a/src/plugins/lua/bindings/texteditor.cpp b/src/plugins/lua/bindings/texteditor.cpp index 71d66e7ba60..5eb6081120a 100644 --- a/src/plugins/lua/bindings/texteditor.cpp +++ b/src/plugins/lua/bindings/texteditor.cpp @@ -224,6 +224,15 @@ void setupTextEditorModule() return BaseTextEditor::currentTextEditor(); }; + result["openedEditors"] = [lua]() mutable -> sol::table { + QList editors = BaseTextEditor::openedTextEditors(); + sol::table result = lua.create_table(); + for (auto& editor : editors) { + result.add(TextEditorPtr(editor)); + } + return result; + }; + result.new_usertype( "MultiTextCursor", sol::no_constructor, diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index 02ccb8b06f1..fc562fc7a79 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -10364,6 +10364,11 @@ BaseTextEditor *BaseTextEditor::currentTextEditor() return qobject_cast(EditorManager::currentEditor()); } +QList BaseTextEditor::openedTextEditors() +{ + return qobject_container_cast(DocumentModel::editorsForOpenedDocuments()); +} + QVector BaseTextEditor::textEditorsForDocument(TextDocument *textDocument) { QVector ret; diff --git a/src/plugins/texteditor/texteditor.h b/src/plugins/texteditor/texteditor.h index 76bf06ab102..41baf490bd9 100644 --- a/src/plugins/texteditor/texteditor.h +++ b/src/plugins/texteditor/texteditor.h @@ -127,6 +127,7 @@ public: virtual void finalizeInitialization() {} static BaseTextEditor *currentTextEditor(); + static QList openedTextEditors(); static QVector textEditorsForDocument(TextDocument *textDocument); TextEditorWidget *editorWidget() const;