better lexer name handling

This commit is contained in:
2026-02-01 16:23:33 +08:00
parent 7962974bc4
commit d399c454ff
4 changed files with 67 additions and 56 deletions

View File

@@ -25,7 +25,7 @@ int DocumentManager::createNewDocument()
doc.filePath = QString();
doc.content = QString();
doc.encoding = "UTF-8";
doc.language = "Plain Text";
doc.language = QString();
doc.modified = false;
doc.untitled = true;
@@ -171,7 +171,7 @@ QString DocumentManager::getDocumentLanguage(int docId) const
if (m_documents.contains(docId)) {
return m_documents[docId].language;
}
return "Plain Text";
return QString();
}
bool DocumentManager::isDocumentModified(int docId) const
@@ -247,29 +247,51 @@ QString DocumentManager::generateUntitledName()
QString DocumentManager::detectLanguageFromExtension(const QString &filePath)
{
QFileInfo fileInfo(filePath);
QString extension = fileInfo.suffix().toLower();
if (extension == "cpp" || extension == "cxx" || extension == "cc" || extension == "c++") {
return "C++";
} else if (extension == "c") {
return "C";
} else if (extension == "h" || extension == "hpp" || extension == "hxx") {
return "C/C++ Header";
} else if (extension == "py") {
return "Python";
} else if (extension == "js") {
return "JavaScript";
} else if (extension == "html" || extension == "htm") {
return "HTML";
} else if (extension == "css") {
return "CSS";
} else if (extension == "xml") {
return "XML";
} else if (extension == "json") {
return "JSON";
} else if (extension == "txt") {
return "Plain Text";
} else {
return "Plain Text";
const QString fileName = fileInfo.fileName();
const QString extension = fileInfo.suffix().toLower();
if (fileName.compare(QStringLiteral("CMakeLists.txt"), Qt::CaseInsensitive) == 0) {
return QStringLiteral("cmake");
}
}
if (extension == QStringLiteral("cpp") || extension == QStringLiteral("cxx") ||
extension == QStringLiteral("cc") || extension == QStringLiteral("c++") ||
extension == QStringLiteral("c") || extension == QStringLiteral("h") ||
extension == QStringLiteral("hpp") || extension == QStringLiteral("hxx")) {
return QStringLiteral("cpp");
}
if (extension == QStringLiteral("py")) {
return QStringLiteral("python");
}
if (extension == QStringLiteral("html") || extension == QStringLiteral("htm")) {
return QStringLiteral("hypertext");
}
if (extension == QStringLiteral("xml") || extension == QStringLiteral("xsd") || extension == QStringLiteral("xsl")) {
return QStringLiteral("xml");
}
if (extension == QStringLiteral("json")) {
return QStringLiteral("json");
}
if (extension == QStringLiteral("css")) {
return QStringLiteral("css");
}
if (extension == QStringLiteral("cmake")) {
return QStringLiteral("cmake");
}
if (extension == QStringLiteral("yaml")) {
return QStringLiteral("yaml");
}
if (extension == QStringLiteral("ps1") || extension == QStringLiteral("psm1") || extension == QStringLiteral("psd1")) {
return QStringLiteral("powershell");
}
return QString();
}