Мне нужно показать текстовую область с подсветкой синтаксиса для некоторых настроенных языков в моем проекте Angular 6. У меня есть файл XSHD (определение синтаксиса XML) для этого настроенного языка. Есть ли какая-нибудь библиотека подсветки синтаксиса в javascript, которая бы принимала это определение? Любое понимание того, что можно сделать?
Я знаю, что вы можете расширить Prism.js пользовательскими определениями, но они должны быть в Regex, что сильно отличается от формата XSHD. Кроме того, документация по созданию определения языка в prism.js не очень понятна.
Это содержимое одного из файлов XSHD:
<Properties>
<Property name="LineComment" value="#"/>
<Digits name = "Digits" bold = "false" italic = "false" color = "DarkRed"/>
<RuleSets>
<RuleSet ignorecase = "false">
<Delimiters>~!%^*()-+=|\/{}[]:;"'<> , .?</Delimiters>
<Span name = "LineComment" bold = "false" italic = "false" color = "Green" stopateol = "true">
<Begin>#</Begin>
</Span>
<Span name = "String" bold = "false" italic = "false" color = "DarkRed" stopateol = "true" escapecharacter="\">
<Begin>"</Begin>
<End>"</End>
</Span>
<KeyWords name = "Punctuation" bold = "false" italic = "false" color = "Black">
<Key word = "?" />
<Key word = "," />
<Key word = "." />
<Key word = ";" />
<Key word = "(" />
<Key word = ")" />
<Key word = "[" />
<Key word = "]" />
<Key word = "{" />
<Key word = "}" />
<Key word = "+" />
<Key word = "-" />
<Key word = "/" />
<Key word = "%" />
<Key word = "*" />
<Key word = "<" />
<Key word = ">" />
<Key word = "^" />
<Key word = "=" />
<Key word = "~" />
<Key word = "!" />
<Key word = "|" />
<Key word = "&" />
</KeyWords>
<KeyWords name = "IncludeKeyword" bold="true" italic="false" color="Red">
<Key word = "INCLUDE" />
</KeyWords>
<KeyWords name = "SimulationKeyword" bold="true" italic="false" color="DarkViolet">
<Key word = "SIMULATION" />
</KeyWords>
<KeyWords name = "IncludeDollarKeyword" bold="true" italic="false" color="Red" bgcolor="Yellow">
<Key word = "INCLUDE$" />
</KeyWords>
<KeyWords name = "AfiKeywords" bold="false" italic="false" color="Blue">
<Key word = "reservoir" />
<Key word = "simulation" />
<Key word = "type" />
<Key word = "preserve" />
<Key word = "ixignore" />
<Key word = "skip_model_def" />
<Key word = "time" />
</KeyWords>
</RuleSet>