Lua: Macro support

Allows users to use "%{Lua: ...}" to execute Lua code in their macros.
Adds "Macro" module with expand() and value() functions.

Change-Id: I6315b0646fbb503a77fd0cc631aed204abf3b699
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Marcus Tillmanns
2024-07-30 10:30:11 +02:00
parent aed3eee06a
commit 61bb8d8e51
8 changed files with 191 additions and 13 deletions

View File

@@ -15,6 +15,7 @@
#include <utils/algorithm.h>
#include <utils/layoutbuilder.h>
#include <utils/macroexpander.h>
#include <utils/qtcprocess.h>
#include <utils/theme/theme.h>
@@ -41,6 +42,7 @@ void setupHookModule();
void setupInstallModule();
void setupJsonModule();
void setupLocalSocketModule();
void setupMacroModule();
void setupMessageManagerModule();
void setupProcessModule();
void setupQtModule();
@@ -49,6 +51,8 @@ void setupTextEditorModule();
void setupTranslateModule();
void setupUtilsModule();
void setupLuaExpander(MacroExpander *expander);
class LuaJsExtension : public QObject
{
Q_OBJECT
@@ -256,6 +260,7 @@ public:
setupInstallModule();
setupJsonModule();
setupLocalSocketModule();
setupMacroModule();
setupMessageManagerModule();
setupProcessModule();
setupQtModule();
@@ -266,6 +271,8 @@ public:
Core::JsExpander::registerGlobalObject("Lua", [] { return new LuaJsExtension(); });
setupLuaExpander(globalMacroExpander());
pluginSpecsFromArchiveFactories().push_back([](const FilePath &path) {
QList<PluginSpec *> plugins;
auto dirs = path.dirEntries(QDir::Dirs | QDir::NoDotAndDotDot);