aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lua/bindings/hook.cpp
blob: 00b6961217a9b8da36c0ad97c5046ff7ab3dae98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#include "../luaengine.h"

#include <coreplugin/editormanager/editormanager.h>
#include <texteditor/textdocument.h>

using namespace Utils;

namespace Lua::Internal {

void setupHookModule()
{
    registerHook("editors.documentOpened", [](const sol::protected_function &func, QObject *guard) {
        QObject::connect(
            Core::EditorManager::instance(),
            &Core::EditorManager::documentOpened,
            guard,
            [func](Core::IDocument *document) {
                Result<> res = void_safe_call(func, document);
                QTC_CHECK_RESULT(res);
            });
    });

    registerHook("editors.documentClosed", [](const sol::protected_function &func, QObject *guard) {
        QObject::connect(
            Core::EditorManager::instance(),
            &Core::EditorManager::documentClosed,
            guard,
            [func](Core::IDocument *document) {
                Result<> res = void_safe_call(func, document);
                QTC_CHECK_RESULT(res);
            });
    });
}

} // namespace Lua::Internal