File indexing completed on 2024-04-28 15:30:42

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_SCRIPTCURSOR_H
0008 #define KTEXTEDITOR_SCRIPTCURSOR_H
0009 
0010 #include <QJSEngine>
0011 #include <QJSValue>
0012 
0013 #include "ktexteditor/cursor.h"
0014 
0015 inline QJSValue cursorToScriptValue(QJSEngine *engine, const KTextEditor::Cursor cursor)
0016 {
0017     QString code = QStringLiteral("new Cursor(%1, %2);").arg(cursor.line()).arg(cursor.column());
0018     QJSValue result = engine->evaluate(code);
0019     Q_ASSERT(!result.isError());
0020     return result;
0021 }
0022 
0023 inline KTextEditor::Cursor cursorFromScriptValue(const QJSValue &obj)
0024 {
0025     KTextEditor::Cursor cursor;
0026     QJSValue line = obj.property(QStringLiteral("line"));
0027     QJSValue column = obj.property(QStringLiteral("column"));
0028     Q_ASSERT(!line.isError() && !column.isError());
0029     cursor.setPosition(line.toInt(), column.toInt());
0030     return cursor;
0031 }
0032 
0033 #endif