diff --git a/src/plugins/lua/README.md b/src/plugins/lua/README.md index ba5fbba8d94..2607d47f182 100644 --- a/src/plugins/lua/README.md +++ b/src/plugins/lua/README.md @@ -40,7 +40,7 @@ Can contain newlines. disabledByDefault = false, dependencies = { - { name="Core", version = "12.0.0" } + { name="Core", version = "14.0.0" } }, } --[[@as QtcPlugin]] ``` diff --git a/src/plugins/lua/luapluginspec.cpp b/src/plugins/lua/luapluginspec.cpp index c3fcd558a55..4d0e9d76708 100644 --- a/src/plugins/lua/luapluginspec.cpp +++ b/src/plugins/lua/luapluginspec.cpp @@ -9,6 +9,7 @@ #include #include +#include #include #include @@ -76,6 +77,19 @@ ExtensionSystem::IPlugin *LuaPluginSpec::plugin() const return nullptr; } +bool LuaPluginSpec::provides(PluginSpec *spec, const PluginDependency &dependency) const +{ + if (QString::compare(dependency.name, spec->name(), Qt::CaseInsensitive) != 0) + return false; + + // Since we first released the lua support with Qt Creator 14.0.0, but the internal version + // number was still 13.0.82, we needed to special case this version. + if (versionCompare(dependency.version, "14.0.0") <= 0) + return true; + + return (versionCompare(spec->version(), dependency.version) >= 0); +} + // LuaPluginSpec::For internal use {} bool LuaPluginSpec::loadLibrary() { diff --git a/src/plugins/lua/luapluginspec.h b/src/plugins/lua/luapluginspec.h index 7c2ab3318bd..ff042416669 100644 --- a/src/plugins/lua/luapluginspec.h +++ b/src/plugins/lua/luapluginspec.h @@ -44,6 +44,9 @@ public: ExtensionSystem::IPlugin *plugin() const override; + bool provides( + PluginSpec *spec, const ExtensionSystem::PluginDependency &dependency) const override; + // For internal use only bool loadLibrary() override; bool initializePlugin() override; diff --git a/src/plugins/lua/meta/qtc.lua b/src/plugins/lua/meta/qtc.lua index cc7de85f057..c4b1a10bea0 100644 --- a/src/plugins/lua/meta/qtc.lua +++ b/src/plugins/lua/meta/qtc.lua @@ -29,7 +29,7 @@ QtcPlugin = {} ---@class QtcPluginDependency ---@field Name string The name of the dependency. ---@field Version string The version of the dependency. (`major.minor.patch`) ----@field Required boolean Whether the dependency is required or not. +---@field Required? "required"|"optional"|"test" Whether the dependency is required or not. (Default: "required") QtcPluginDependency = {} diff --git a/src/plugins/lua/wizards/plugin/plugin.lua.tpl b/src/plugins/lua/wizards/plugin/plugin.lua.tpl index 9675a2a0051..67d6e2966dd 100644 --- a/src/plugins/lua/wizards/plugin/plugin.lua.tpl +++ b/src/plugins/lua/wizards/plugin/plugin.lua.tpl @@ -15,8 +15,7 @@ This plugin provides some functionality. You can describe it more here. ]], Dependencies = { - { Name = "Core", Version = "%{JS: Util.qtCreatorIdeVersion()}", Required = true }, - { Name = "Lua", Version = "%{JS: Util.qtCreatorIdeVersion()}", Required = true }, + { Name = "Lua", Version = "%{JS: Util.qtCreatorIdeVersion()}" }, }, setup = function() require 'init'.setup() diff --git a/src/plugins/luals/luals/luals.lua b/src/plugins/luals/luals/luals.lua index 843d18189e4..5a68388dd06 100644 --- a/src/plugins/luals/luals/luals.lua +++ b/src/plugins/luals/luals/luals.lua @@ -14,9 +14,8 @@ This plugin provides the Lua Language Server. It will try to install it if it is not found. ]], Dependencies = { - { Name = "Core", Version = "13.0.82", Required = true }, - { Name = "Lua", Version = "13.0.82", Required = true }, - { Name = "LuaLanguageClient", Version = "13.0.82", Required = true } + { Name = "Lua", Version = "14.0.0" }, + { Name = "LuaLanguageClient", Version = "14.0.0" } }, setup = function() require 'init'.setup() diff --git a/src/plugins/luatests/luatests/luatests.lua b/src/plugins/luatests/luatests/luatests.lua index 4d22738f3bc..e85f0d95278 100644 --- a/src/plugins/luatests/luatests/luatests.lua +++ b/src/plugins/luatests/luatests/luatests.lua @@ -13,8 +13,7 @@ return { It has tests for (almost) all functionality exposed by the API. ]], Dependencies = { - { Name = "Core", Version = "13.0.82", Required = true }, - { Name = "Lua", Version = "13.0.82", Required = true } + { Name = "Lua", Version = "14.0.0" } }, setup = function() require 'tests'.setup() end, printToOutputPane = true, diff --git a/src/plugins/rustls/rustls/rustls.lua b/src/plugins/rustls/rustls/rustls.lua index ae2a5c6eb48..7e0056de25f 100644 --- a/src/plugins/rustls/rustls/rustls.lua +++ b/src/plugins/rustls/rustls/rustls.lua @@ -14,9 +14,8 @@ This plugin provides the Rust Language Server. It will try to install it if it is not found. ]], Dependencies = { - { Name = "Core", Version = "13.0.82", Required = true }, - { Name = "Lua", Version = "13.0.82", Required = true }, - { Name = "LuaLanguageClient", Version = "13.0.82", Required = true } + { Name = "Lua", Version = "14.0.0" }, + { Name = "LuaLanguageClient", Version = "14.0.0" } }, setup = function() require 'init'.setup() diff --git a/src/plugins/tellajoke/tellajoke/tellajoke.lua b/src/plugins/tellajoke/tellajoke/tellajoke.lua index 680e0420d2f..58d07e0b178 100644 --- a/src/plugins/tellajoke/tellajoke/tellajoke.lua +++ b/src/plugins/tellajoke/tellajoke/tellajoke.lua @@ -50,7 +50,7 @@ return { Category = "Fun", Description = "This plugin adds an action that tells a joke.", Dependencies = { - { Name = "Lua", Version = "13.0.82", Required = true }, + { Name = "Lua", Version = "14.0.0" }, }, setup = setup, } --[[@as QtcPlugin]]