File indexing completed on 2024-05-05 11:55:48

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"