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