我正在尝试编写自己的代码折叠算法,使用缩进
这是一个代码段(用C++编写的QT5框架)
QList<QTextBlock> PlainTextEdit::getFoldableBlocks(QTextBlock rootBlock) {
int indentation = rootBlock.text().length() - rootBlock.text().trimmed().length();
QTextBlock block = rootBlock.next();
QString blockText = block.text();
QList<QTextBlock> foldableBlocks = {};
QList<int> toRemove = {};
while (block.isValid()) {
int currentIndentation = block.text().length() - block.text().trimmed().length();
if (currentIndentation == indentation && block.text().length() != 0) {
foldableBlocks.append(block);
break;
} else {
qDebug() << block.blockNumber() + 1;
foldableBlocks.append(block);
}
block = block.next();
}
return foldableBlocks;
}
现在,在下面的代码段中使用该算法时:
class Test(object):
def __init__(self):
print("Hello world!")
class Example(object):
def __init__(self):
print("Hello world")
那么第一个类将被错误地折叠,因为它认为空行意味着类基本上是空的
第二个类将正确折叠,因为它们之间没有空行
我怎样才能正确处理这些线路?我已经试了两天自己的解决方案了,但都不管用,而且显然太杂乱了
目前没有回答
相关问题 更多 >
编程相关推荐