| 104 | } |
| 105 | |
| 106 | void CodeEditComponent::updateDefinition(const QString &la) |
| 107 | { |
| 108 | // 定义正则表达式,匹配 "```" 后面的字符串, codeGeex发送的代码中含有```。 |
| 109 | QRegularExpression regex("```(\\w+)"); |
| 110 | QRegularExpressionMatch match = regex.match(la); |
| 111 | auto language = la; |
| 112 | |
| 113 | // 代码语言参数: |
| 114 | // 1.由codeGeex发送,格式为```language code ```,参数格式为```language,需要转换为kf5可用的字符 |
| 115 | // 2.由codeGeex发送,但不含```,不截取,直接转换为kf5可用的字符 |
| 116 | // 3.其他类直接调用,不转换,直接使用,但可能无效 |
| 117 | if (match.hasMatch() && ideSyntaxNameMap::definitionName.value(language) != def.name()) { |
| 118 | language = match.captured(1); |
| 119 | def = rep.definitionForName(ideSyntaxNameMap::definitionName.value(language)); |
| 120 | } else if (ideSyntaxNameMap::definitionName.keys().contains(language)) { |
| 121 | def = rep.definitionForName(ideSyntaxNameMap::definitionName.value(language)); |
| 122 | } else { |
| 123 | def = rep.definitionForName(language); |
| 124 | } |
| 125 | |
| 126 | if (def.isValid() && def.name() != highLighter->definition().name()) |
| 127 | highLighter->setDefinition(def); |
| 128 | } |
| 129 | |
| 130 | void CodeEditComponent::cleanFinalLine() |
| 131 | { |