本文整理汇总了C++中ktexteditor::Cursor::setLine方法的典型用法代码示例。如果您正苦于以下问题:C++ Cursor::setLine方法的具体用法?C++ Cursor::setLine怎么用?C++ Cursor::setLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ktexteditor::Cursor
的用法示例。
在下文中一共展示了Cursor::setLine方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: displayViewLine
int KateLayoutCache::displayViewLine(const KTextEditor::Cursor& virtualCursor, bool limitToVisible)
{
KTextEditor::Cursor work = viewCacheStart();
// only try this with valid lines!
if (work.isValid())
work.setLine(m_renderer->folding().lineToVisibleLine(work.line()));
if (!work.isValid())
return virtualCursor.line();
int limit = m_textLayouts.count();
// Efficient non-word-wrapped path
if (!m_renderer->view()->dynWordWrap()) {
int ret = virtualCursor.line() - work.line();
if (limitToVisible && (ret < 0 || ret > limit))
return -1;
else
return ret;
}
if (work == virtualCursor) {
return 0;
}
int ret = -(int)viewLine(viewCacheStart());
bool forwards = (work < virtualCursor);
// FIXME switch to using ranges? faster?
if (forwards) {
while (work.line() != virtualCursor.line()) {
ret += viewLineCount(m_renderer->folding().visibleLineToLine(work.line()));
work.setLine(work.line() + 1);
if (limitToVisible && ret > limit)
return -1;
}
} else {
while (work.line() != virtualCursor.line()) {
work.setLine(work.line() - 1);
ret -= viewLineCount(m_renderer->folding().visibleLineToLine(work.line()));
if (limitToVisible && ret < 0)
return -1;
}
}
// final difference
KTextEditor::Cursor realCursor = virtualCursor;
realCursor.setLine(m_renderer->folding().visibleLineToLine(realCursor.line()));
if (realCursor.column() == -1) realCursor.setColumn(m_renderer->doc()->lineLength(realCursor.line()));
ret += viewLine(realCursor);
if (limitToVisible && (ret < 0 || ret > limit))
return -1;
return ret;
}
示例2: completionItems
void ModelTest::completionItems()
{
KTextEditor::Document* doc = KTextEditor::Editor::instance()->createDocument(0);
QFETCH(QString, text);
QFETCH(QString, type);
KTextEditor::Cursor position;
QString textBeforeCursor = text.left(text.indexOf('|'));
position.setLine(textBeforeCursor.count('\n'));
position.setColumn(textBeforeCursor.mid(textBeforeCursor.lastIndexOf('\n')).length());
text.replace('|', "");
QTemporaryFile file("XXXXXXXXX."+type);
file.open();
file.write(text.toUtf8());
file.close();
doc->openUrl(KUrl("file://"+QDir::current().absoluteFilePath(file.fileName())));
QCOMPARE(doc->mimeType(), QString("text/")+type);
KTextEditor::View* view = doc->createView(0);
CodeCompletionModel* model = new CodeCompletionModel(doc);
QCOMPARE(model->rowCount(), 0);
model->completionInvoked(view, model->completionRange(view, position), KTextEditor::CodeCompletionModel::ManualInvocation);
QStringList completions;
for (int i=0; i < model->rowCount(); ++i) {
completions << model->data(model->index(i, CodeCompletionModel::Name), Qt::DisplayRole).toString();
}
kDebug() << "completions" << completions;
QFETCH(QStringList, result);
foreach (const QString &i, result) {
QVERIFY(completions.contains(i));
}