本文整理汇总了C++中ktexteditor::Range::isValid方法的典型用法代码示例。如果您正苦于以下问题:C++ Range::isValid方法的具体用法?C++ Range::isValid怎么用?C++ Range::isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ktexteditor::Range
的用法示例。
在下文中一共展示了Range::isValid方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: startLaTeXCompletion
void LaTeXInfo::startLaTeXCompletion(KTextEditor::View *view)
{
KTextEditor::CodeCompletionInterface* completionInterface = qobject_cast<KTextEditor::CodeCompletionInterface*>(view);
if(!completionInterface) {
return;
}
KTextEditor::Range range = m_latexCompletionModel->completionRange(view, view->cursorPosition());
if(!range.isValid()) {
range = KTextEditor::Range(view->cursorPosition(), view->cursorPosition());
}
completionInterface->startCompletion(range, m_latexCompletionModel);
}
示例2: rangeCheck
void RangeTest::rangeCheck(KTextEditor::Range &valid)
{
QVERIFY(valid.isValid() && valid.start() <= valid.end());
KTextEditor::Cursor before(0, 1), start(0, 2), end(1, 4), after(1, 10);
KTextEditor::Range result(start, end);
QVERIFY(valid.isValid() && valid.start() <= valid.end());
valid.setRange(start, end);
QVERIFY(valid.isValid() && valid.start() <= valid.end());
QCOMPARE(valid, result);
valid.setRange(end, start);
QVERIFY(valid.isValid() && valid.start() <= valid.end());
QCOMPARE(valid, result);
valid.setStart(after);
QVERIFY(valid.isValid() && valid.start() <= valid.end());
QCOMPARE(valid, KTextEditor::Range(after, after));
valid = result;
QCOMPARE(valid, result);
valid.setEnd(before);
QVERIFY(valid.isValid() && valid.start() <= valid.end());
QCOMPARE(valid, KTextEditor::Range(before, before));
}
示例3: completionInvoked
void LaTeXCompletionModel::completionInvoked(KTextEditor::View *view, const KTextEditor::Range &range,
InvocationType invocationType)
{
if(!range.isValid()
|| (invocationType == AutomaticInvocation && !KileConfig::completeAuto())) {
m_completionList.clear();
reset();
return;
}
Q_UNUSED(invocationType);
m_currentView = view;
KILE_DEBUG() << "building model...";
buildModel(view, range);
}
示例4: args
bool KateCommands::CoreCommands::exec(KTextEditor::View *view,
const QString &_cmd,
QString &errorMsg,
const KTextEditor::Range& range)
{
#define KCC_ERR(s) { errorMsg=s; return false; }
// cast it hardcore, we know that it is really a kateview :)
KateView *v = static_cast<KateView*>(view);
if ( ! v )
KCC_ERR( i18n("Could not access view") );
//create a list of args
QStringList args(_cmd.split( QRegExp("\\s+"), QString::SkipEmptyParts)) ;
QString cmd ( args.takeFirst() );
// ALL commands that takes no arguments.
if ( cmd == "indent" )
{
if ( range.isValid() ) {
v->doc()->editStart();
for ( int line = range.start().line(); line <= range.end().line(); line++ ) {
v->doc()->indent( KTextEditor::Range(line, 0, line, 0), 1 );
}
v->doc()->editEnd();
} else {
v->indent();
}
return true;
}
else if ( cmd == "unindent" )
{
if ( range.isValid() ) {
v->doc()->editStart();
for ( int line = range.start().line(); line <= range.end().line(); line++ ) {
v->doc()->indent( KTextEditor::Range(line, 0, line, 0), -1 );
}
v->doc()->editEnd();
} else {
v->unIndent();
}
return true;
}
else if ( cmd == "cleanindent" )
{
if ( range.isValid() ) {
v->doc()->editStart();
for ( int line = range.start().line(); line <= range.end().line(); line++ ) {
v->doc()->indent( KTextEditor::Range(line, 0, line, 0), 0 );
}
v->doc()->editEnd();
} else {
v->cleanIndent();
}
return true;
}
else if ( cmd == "comment" )
{
if ( range.isValid() ) {
v->doc()->editStart();
for ( int line = range.start().line(); line <= range.end().line(); line++ ) {
v->doc()->comment( v, line, 0, 1 );
}
v->doc()->editEnd();
} else {
v->comment();
}
return true;
}
else if ( cmd == "uncomment" )
{
if ( range.isValid() ) {
v->doc()->editStart();
for ( int line = range.start().line(); line <= range.end().line(); line++ ) {
v->doc()->comment( v, line, 0, -1 );
}
v->doc()->editEnd();
} else {
v->uncomment();
}
return true;
}
else if ( cmd == "kill-line" )
{
if ( range.isValid() ) {
v->doc()->editStart();
for ( int line = range.start().line(); line <= range.end().line(); line++ ) {
v->doc()->removeLine( range.start().line() );
}
v->doc()->editEnd();
} else {
v->killLine();
}
return true;
}
else if ( cmd == "print" )
{
v->doc()->printDialog();
return true;
}
//.........这里部分代码省略.........
示例5: exec
bool Commands::exec(KTextEditor::View *view, const QString &_cmd,
QString &msg, const KTextEditor::Range &range)
{
Q_UNUSED(range)
// cast it hardcore, we know that it is really a kateview :)
KTextEditor::ViewPrivate *v = static_cast<KTextEditor::ViewPrivate *>(view);
if (!v) {
msg = i18n("Could not access view");
return false;
}
//create a list of args
QStringList args(_cmd.split(QRegExp(QLatin1String("\\s+")), QString::SkipEmptyParts));
QString cmd(args.takeFirst());
// ALL commands that takes no arguments.
if (mappingCommands().contains(cmd)) {
if (cmd.endsWith(QLatin1String("unmap"))) {
if (args.count() == 1) {
m_viGlobal->mappings()->remove(modeForMapCommand(cmd), args.at(0));
return true;
} else {
msg = i18n("Missing argument. Usage: %1 <from>", cmd);
return false;
}
}
if (args.count() == 1) {
msg = m_viGlobal->mappings()->get(modeForMapCommand(cmd), args.at(0), true);
if (msg.isEmpty()) {
msg = i18n("No mapping found for \"%1\"", args.at(0));
return false;
} else {
msg = i18n("\"%1\" is mapped to \"%2\"", args.at(0), msg);
}
} else if (args.count() == 2) {
Mappings::MappingRecursion mappingRecursion = (isMapCommandRecursive(cmd)) ? Mappings::Recursive : Mappings::NonRecursive;
m_viGlobal->mappings()->add(modeForMapCommand(cmd), args.at(0), args.at(1), mappingRecursion);
} else {
msg = i18n("Missing argument(s). Usage: %1 <from> [<to>]", cmd);
return false;
}
return true;
}
NormalViMode *nm = m_viInputModeManager->getViNormalMode();
if (cmd == QLatin1String("d") || cmd == QLatin1String("delete") || cmd == QLatin1String("j") ||
cmd == QLatin1String("c") || cmd == QLatin1String("change") || cmd == QLatin1String("<") || cmd == QLatin1String(">") ||
cmd == QLatin1String("y") || cmd == QLatin1String("yank")) {
KTextEditor::Cursor start_cursor_position = v->cursorPosition();
int count = 1;
if (range.isValid()) {
count = qAbs(range.end().line() - range.start().line()) + 1;
v->setCursorPosition(KTextEditor::Cursor(qMin(range.start().line(),
range.end().line()), 0));
}
QRegExp number(QLatin1String("^(\\d+)$"));
for (int i = 0; i < args.count(); i++) {
if (number.indexIn(args.at(i)) != -1) {
count += number.cap().toInt() - 1;
}
QChar r = args.at(i).at(0);
if (args.at(i).size() == 1 && ((r >= QLatin1Char('a') && r <= QLatin1Char('z')) || r == QLatin1Char('_') || r == QLatin1Char('+') || r == QLatin1Char('*'))) {
nm->setRegister(r);
}
}
nm->setCount(count);
if (cmd == QLatin1String("d") || cmd == QLatin1String("delete")) {
nm->commandDeleteLine();
}
if (cmd == QLatin1String("j")) {
nm->commandJoinLines();
}
if (cmd == QLatin1String("c") || cmd == QLatin1String("change")) {
nm->commandChangeLine();
}
if (cmd == QLatin1String("<")) {
nm->commandUnindentLine();
}
if (cmd == QLatin1String(">")) {
nm->commandIndentLine();
}
if (cmd == QLatin1String("y") || cmd == QLatin1String("yank")) {
nm->commandYankLine();
v->setCursorPosition(start_cursor_position);
}
// TODO - should we resetParser, here? We'd have to make it public, if so.
// Or maybe synthesise a KateViCommand to execute instead ... ?
nm->setCount(0);
return true;
//.........这里部分代码省略.........