13using namespace Qt::StringLiterals;
19 std::cerr << qPrintable(out) <<
std::endl;
24 std::cout << qPrintable(out) <<
std::endl;
29 QMultiHash<QString, QString> res;
30 const qsizetype scanRootLen = root.absolutePath().size();
31 for (
const QString &fn : paths) {
35 offset = fn.lastIndexOf(u'/', offset - 1);
36 QString ffn = fn.mid(offset + 1);
38 }
while (++depth < 3 && offset > scanRootLen);
46 for (
const QChar &c : line)
57 if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
58 printErr(
"ltext2id error: failed to open file %1 for reading.\n"_L1.arg(filename));
61 QTextStream in(&file);
62 return in.readAll().split(
'\n');
65void writeLines(
const QString &filename,
const QStringList &lines)
68 if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) {
69 printErr(
"ltext2id error: failed to open file %1 for writing.\n"_L1.arg(filename));
72 QTextStream out(&file);
73 out << lines.join(
'\n');
QStringList readLines(const QString &filename)
void printOut(const QString &out)
void printErr(const QString &out)
void writeLines(const QString &filename, const QStringList &lines)
QString getIndentation(const QString &line)
QMultiHash< QString, QString > getIncludeOptions(const QFileInfo &root, const QStringList &paths)