File indexing completed on 2024-04-14 03:55:21

0001 /*
0002     SPDX-FileCopyrightText: 2017 Allan Sandfeld Jensen <kde@carewolf.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KTEXTEDITOR_SCRIPTRANGE_H
0008 #define KTEXTEDITOR_SCRIPTRANGE_H
0009 
0010 #include <QJSEngine>
0011 #include <QJSValue>
0012 
0013 #include "ktexteditor/range.h"
0014 #include "scriptcursor.h"
0015 
0016 inline QJSValue rangeToScriptValue(QJSEngine *engine, KTextEditor::Range range)
0017 {
0018     const auto result = engine->globalObject()
0019                             .property(QStringLiteral("Range"))
0020                             .callAsConstructor(QJSValueList() << range.start().line() << range.start().column() << range.end().line() << range.end().column());
0021     Q_ASSERT(!result.isError());
0022     return result;
0023 }
0024 
0025 inline KTextEditor::Range rangeFromScriptValue(const QJSValue &obj)
0026 {
0027     const auto start = cursorFromScriptValue(obj.property(QStringLiteral("start")));
0028     const auto end = cursorFromScriptValue(obj.property(QStringLiteral("end")));
0029     return KTextEditor::Range(start, end);
0030 }
0031 
0032 #endif