forked from qt-creator/qt-creator
Implement syntax highlighting in diff editor
All Qt Creator's main highlighters are used in the first place, for other mimetypes generic highlighter is used as a fallback. Task-number: QTCREATORBUG-9580 Change-Id: I863b9085520e5bdda142ce88f2074afeacee0531 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Petar Perisin <petar.perisin@gmail.com> Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
This commit is contained in:
@@ -125,20 +125,19 @@ void PlainTextEditorWidget::configure(const Core::MimeType &mimeType)
|
||||
if (!mimeType.isNull()) {
|
||||
m_isMissingSyntaxDefinition = true;
|
||||
|
||||
highlighter->setMimeType(mimeType);
|
||||
const QString &type = mimeType.type();
|
||||
setMimeType(type);
|
||||
|
||||
QString definitionId = Manager::instance()->definitionIdByMimeType(type);
|
||||
if (definitionId.isEmpty())
|
||||
definitionId = findDefinitionId(mimeType, true);
|
||||
definitionId = Highlighter::findDefinitionId(mimeType, true);
|
||||
|
||||
if (!definitionId.isEmpty()) {
|
||||
m_isMissingSyntaxDefinition = false;
|
||||
const QSharedPointer<HighlightDefinition> &definition =
|
||||
Manager::instance()->definition(definitionId);
|
||||
if (!definition.isNull() && definition->isValid()) {
|
||||
highlighter->setDefaultContext(definition->initialContext());
|
||||
|
||||
m_commentDefinition.isAfterWhiteSpaces = definition->isCommentAfterWhiteSpaces();
|
||||
m_commentDefinition.singleLine = definition->singleLineComment();
|
||||
m_commentDefinition.multiLineStart = definition->multiLineCommentStart();
|
||||
@@ -163,23 +162,6 @@ bool PlainTextEditorWidget::isMissingSyntaxDefinition() const
|
||||
return m_isMissingSyntaxDefinition;
|
||||
}
|
||||
|
||||
QString PlainTextEditorWidget::findDefinitionId(const Core::MimeType &mimeType,
|
||||
bool considerParents) const
|
||||
{
|
||||
QString definitionId = Manager::instance()->definitionIdByAnyMimeType(mimeType.aliases());
|
||||
if (definitionId.isEmpty() && considerParents) {
|
||||
definitionId = Manager::instance()->definitionIdByAnyMimeType(mimeType.subClassesOf());
|
||||
if (definitionId.isEmpty()) {
|
||||
foreach (const QString &parent, mimeType.subClassesOf()) {
|
||||
const Core::MimeType &parentMimeType =
|
||||
Core::ICore::mimeDatabase()->findByType(parent);
|
||||
definitionId = findDefinitionId(parentMimeType, considerParents);
|
||||
}
|
||||
}
|
||||
}
|
||||
return definitionId;
|
||||
}
|
||||
|
||||
void PlainTextEditorWidget::acceptMissingSyntaxDefinitionInfo()
|
||||
{
|
||||
ICore::showOptionsDialog(Constants::TEXT_EDITOR_SETTINGS_CATEGORY,
|
||||
|
||||
Reference in New Issue
Block a user