本文整理汇总了C++中Doc::metaCommandArgs方法的典型用法代码示例。如果您正苦于以下问题:C++ Doc::metaCommandArgs方法的具体用法?C++ Doc::metaCommandArgs怎么用?C++ Doc::metaCommandArgs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doc
的用法示例。
在下文中一共展示了Doc::metaCommandArgs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: applyReplacementList
void QsCodeParser::applyReplacementList(QString& source, const Doc& doc)
{
QStringList args = doc.metaCommandArgs(COMMAND_REPLACE);
QStringList::ConstIterator a = args.begin();
while (a != args.end()) {
if (replaceRegExp.exactMatch(*a)) {
QRegExp before(replaceRegExp.cap(1));
before.setMinimal(true);
QString after = replaceRegExp.cap(2);
if (before.isValid()) {
int oldLen = source.size();
source.replace(before, after);
// this condition is sufficient but not necessary
if (oldLen == source.size() && !source.contains(after))
doc.location().warning(
tr("Regular expression '%1' did not match anything")
.arg(before.pattern()));
}
else {
doc.location().warning(
tr("Invalid regular expression '%1'")
.arg(before.pattern()));
}
}
else {
doc.location().warning(tr("Bad syntax in '\\%1'")
.arg(COMMAND_REPLACE));
}
++a;
}
QRegExp codeRegExp("\\\\" + COMMAND_CODE + "(.*)\\\\" + COMMAND_ENDCODE);
codeRegExp.setMinimal(true);
QRegExp quickcodeRegExp(
"\\\\" + COMMAND_QUICKCODE + "(.*)\\\\" + COMMAND_ENDQUICKCODE);
quickcodeRegExp.setMinimal(true);
int quickcodePos = doc.source().indexOf(quickcodeRegExp);
if (quickcodePos != -1) {
int codePos = source.indexOf(codeRegExp);
if (codePos == -1) {
doc.location().warning(
tr("Cannot find any '\\%1' snippet corresponding to '\\%2'")
.arg(COMMAND_CODE).arg(COMMAND_QUICKCODE));
}
else {
source.replace(codeRegExp.pos(1), codeRegExp.cap(1).length(),
quickcodeRegExp.cap(1));
codePos = codeRegExp.pos(1) + quickcodeRegExp.cap(1).length();
if (doc.source().indexOf(quickcodeRegExp, quickcodePos + 1) != -1) {
doc.location().warning(
tr("Cannot use '\\%1' twice in a row")
.arg(COMMAND_QUICKCODE));
}
else if (source.indexOf(codeRegExp, codePos + 1) != -1) {
doc.location().warning(tr("Ambiguous '\\%1'")
.arg(COMMAND_QUICKCODE));
}
}
}
}