Editor::IndentationMode Editor::indentationMode() { QVariantMap indent = sendMessageWithResult("C_FUN_GET_INDENTATION_MODE").toMap(); IndentationMode out; out.useTabs = indent.value("useTabs", true).toBool(); out.size = indent.value("size", 4).toInt(); return out; }
QString Editor::setLanguageFromFileName(QString fileName) { QString lang = sendMessageWithResult("C_FUN_SET_LANGUAGE_FROM_FILENAME", fileName).toString(); if (!m_customIndentationMode) setIndentationMode(lang); return lang; }
Editor::IndentationMode Editor::detectDocumentIndentation(bool *found) { QVariantMap indent = sendMessageWithResult("C_FUN_DETECT_INDENTATION_MODE").toMap(); IndentationMode out; bool _found = indent.value("found", false).toBool(); if (found != nullptr) { *found = _found; } if (_found) { out.useTabs = indent.value("useTabs", true).toBool(); out.size = indent.value("size", 4).toInt(); } return out; }
QList<Editor::Selection> Editor::selections() { QList<Selection> out; QList<QVariant> sels = sendMessageWithResult("C_FUN_GET_SELECTIONS").toList(); for (int i = 0; i < sels.length(); i++) { QVariantMap selMap = sels[i].toMap(); QVariantMap from = selMap.value("anchor").toMap(); QVariantMap to = selMap.value("head").toMap(); Selection sel; sel.from.line = from.value("line").toInt(); sel.from.column = from.value("ch").toInt(); sel.to.line = to.value("line").toInt(); sel.to.column = to.value("ch").toInt(); out.append(sel); } return out; }
QList<QMap<QString, QString>> Editor::languages() { QMap<QString, QVariant> languages = sendMessageWithResult("C_FUN_GET_LANGUAGES").toMap(); QList<QMap<QString, QString>> out; QMap<QString, QVariant>::iterator lang; for (lang = languages.begin(); lang != languages.end(); ++lang) { QMap<QString, QVariant> mode = lang.value().toMap(); QMap<QString, QString> newMode; newMode.insert("id", lang.key()); newMode.insert("name", mode.value("name").toString()); newMode.insert("mime", mode.value("mime").toString()); newMode.insert("mode", mode.value("mode").toString()); out.append(newMode); } return out; }
QStringList Editor::selectedTexts() { QVariant text = sendMessageWithResult("C_FUN_GET_SELECTIONS_TEXT"); return text.toStringList(); }
QPair<int, int> Editor::scrollPosition() { QList<QVariant> scroll = sendMessageWithResult("C_FUN_GET_SCROLL_POS").toList(); return QPair<int, int>(scroll[0].toInt(), scroll[1].toInt()); }
QPair<int, int> Editor::cursorPosition() { QList<QVariant> cursor = sendMessageWithResult("C_FUN_GET_CURSOR").toList(); return QPair<int, int>(cursor[0].toInt(), cursor[1].toInt()); }
QVariant Editor::sendMessageWithResult(const QString &msg) { return sendMessageWithResult(msg, 0); }
void Editor::sendMessage(const QString &msg, const QVariant &data) { sendMessageWithResult(msg, data); }
QString Editor::value() { return sendMessageWithResult("C_FUN_GET_VALUE").toString(); }
QString Editor::language() { QVariantMap data = sendMessageWithResult("C_FUN_GET_CURRENT_LANGUAGE").toMap(); return data.value("id").toString(); }
bool Editor::isClean() { return sendMessageWithResult("C_FUN_IS_CLEAN", 0).toBool(); }
int Editor::lineCount() { return sendMessageWithResult("C_FUN_GET_LINE_COUNT").toInt(); }
QString Editor::getCurrentWord() { return sendMessageWithResult("C_FUN_GET_CURRENT_WORD").toString(); }