本文整理汇总了C++中texteditor::TabSettings::reindentLine方法的典型用法代码示例。如果您正苦于以下问题:C++ TabSettings::reindentLine方法的具体用法?C++ TabSettings::reindentLine怎么用?C++ TabSettings::reindentLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类texteditor::TabSettings
的用法示例。
在下文中一共展示了TabSettings::reindentLine方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: reindent
void Indenter::reindent(QTextDocument *doc, const QTextCursor &cursor, const TextEditor::TabSettings &tabSettings)
{
if (cursor.hasSelection()) {
QTextBlock block = doc->findBlock(cursor.selectionStart());
const QTextBlock end = doc->findBlock(cursor.selectionEnd()).next();
// skip empty blocks
while (block.isValid() && block != end) {
QString bt = block.text();
if (tabSettings.firstNonSpace(bt) < bt.size())
break;
indentBlock(doc, block, QChar::Null, tabSettings);
block = block.next();
}
int previousIndentation = tabSettings.indentationColumn(block.text());
indentBlock(doc, block, QChar::Null, tabSettings);
int currentIndentation = tabSettings.indentationColumn(block.text());
int delta = currentIndentation - previousIndentation;
block = block.next();
while (block.isValid() && block != end) {
tabSettings.reindentLine(block, delta);
block = block.next();
}
} else {
indentBlock(doc, cursor.block(), QChar::Null, tabSettings);
}
}
示例2: parsePreviousLine
void Indenter::parsePreviousLine(
const TextEditor::TabSettings &settings,
const QString &previousLine,
const QTextBlock &previousBlock,
int &indentation) const
{
// TODO: replace this dirty code with true AST-based indentation
Internal::Scanner sc(previousLine.constData(), previousLine.length());
for (;;)
{
Internal::FormatToken tk = sc.read();
if (tk.format() == Internal::Format_KEYWORD) {
QString value = sc.value(tk);
if (JUMP_STATEMENTS_SET.contains(value)) {
indentation = qMax<int>(0, indentation - TAB_SIZE);
} else if (BACKSTEP_KEYWORDS_SET.contains(value)) {
indentation = qMax<int>(0, indentation - TAB_SIZE);
settings.reindentLine(previousBlock, -TAB_SIZE);
}
}
if (tk.format() != Internal::Format_WHITESPACE) {
break;
}
}
}