File indexing completed on 2023-10-03 06:50:41
0001 /* 0002 SPDX-License-Identifier: GPL-2.0-or-later 0003 SPDX-FileCopyrightText: 2014 Lucas Hermann Negri <lucashnegri@gmail.com> 0004 SPDX-FileCopyrightText: 2019 Alexander Semke <alexander.semke@web.de> 0005 */ 0006 0007 #include "luabackend.h" 0008 #include "luaextensions.h" 0009 #include "luasession.h" 0010 #include "luasettingswidget.h" 0011 #include "settings.h" 0012 0013 #include <KPluginFactory> 0014 0015 LuaBackend::LuaBackend( QObject* parent,const QList<QVariant> args ) : Cantor::Backend( parent,args ) 0016 { 0017 new LuaScriptExtension(this); 0018 } 0019 0020 QString LuaBackend::id() const 0021 { 0022 return QLatin1String("lua"); 0023 } 0024 0025 QString LuaBackend::version() const 0026 { 0027 return QLatin1String("LuaJIT 2.1"); 0028 } 0029 0030 Cantor::Session* LuaBackend::createSession() 0031 { 0032 return new LuaSession(this); 0033 } 0034 0035 Cantor::Backend::Capabilities LuaBackend::capabilities() const 0036 { 0037 Cantor::Backend::Capabilities cap = 0038 Cantor::Backend::SyntaxHighlighting | 0039 Cantor::Backend::Completion; 0040 0041 return cap; 0042 } 0043 0044 bool LuaBackend::requirementsFullfilled(QString* const reason) const 0045 { 0046 const QString& path = LuaSettings::self()->path().toLocalFile(); 0047 return Cantor::Backend::checkExecutable(QLatin1String("Lua"), path, reason); 0048 } 0049 0050 QUrl LuaBackend::helpUrl() const 0051 { 0052 return QUrl(i18nc("Lua official documentation", "https://www.lua.org/docs.html")); 0053 } 0054 0055 QString LuaBackend::description() const 0056 { 0057 return i18n("<b>Lua</b> is a fast and lightweight scripting language, with a simple procedural syntax." \ 0058 " There are several libraries in Lua aimed at math and science."); 0059 } 0060 0061 QWidget* LuaBackend::settingsWidget(QWidget* parent) const 0062 { 0063 return new LuaSettingsWidget(parent, id()); 0064 } 0065 0066 KConfigSkeleton* LuaBackend::config() const 0067 { 0068 return LuaSettings::self(); 0069 } 0070 0071 K_PLUGIN_FACTORY_WITH_JSON(luabackend, "luabackend.json", registerPlugin<LuaBackend>();) 0072 #include "luabackend.moc"