1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#include "javascriptplugin.h"
6#include "jsgenerator.h"
7#include "project/jsprojectgenerator.h"
8
9#include "services/language/languageservice.h"
10#include "services/project/projectservice.h"
11#include "services/window/windowservice.h"
12#include "services/debugger/debuggerservice.h"
13#include "base/abstractwidget.h"
14#include "base/abstractcentral.h"
15#include "debugger/jsdebugger.h"
16
17#include <QtWidgets/QAction>
18#include <QtScript>
19#ifndef QT_NO_SCRIPTTOOLS
20#include <QtScriptTools>
21#endif
22#include <QMainWindow>
23#include <QApplication>
24
25using namespace dpfservice;
26
27void JavascriptPlugin::initialize()
28{
29 qInfo() << __FUNCTION__;
30}
31
32bool JavascriptPlugin::start()
33{
34 qInfo() << __FUNCTION__;
35 // language register.
36 LanguageService *languageService = dpfGetService(LanguageService);
37 if (languageService) {
38 QString errorString;
39 bool ret = languageService->regClass<JSGenerator>(JSGenerator::toolKitName(), &errorString);
40 if (!ret) {
41 qCritical() << errorString;
42 } else {
43 ret = languageService->create<JSGenerator>(JSGenerator::toolKitName(), &errorString);
44 if (!ret) {
45 qCritical() << errorString;
46 }
47 }
48 }
49
50 // project register.
51 ProjectService *projectService = dpfGetService(ProjectService);
52 if (projectService) {
53 QString errorString;
54 projectService->implGenerator<JSProjectGenerator>(JSProjectGenerator::toolKitName(), &errorString);
55 }
56
57 // debugger register.
58 auto jsDebugger = new JSDebugger();
59 auto debuggerService = dpfGetService(DebuggerService);
60 if (debuggerService && debuggerService->registerDebugger) {
61 debuggerService->registerDebugger("local", jsDebugger);
62 }
63
64 return true;
65}
66
67dpf::Plugin::ShutdownFlag JavascriptPlugin::stop()
68{
69 qInfo() << __FUNCTION__;
70 return Sync;
71}
72
73
74