Я создал несколько новых режимов редактора Ace для своего пользовательского языка (представления сообщений JMS) со сложным конечным автоматом.Теперь было бы здорово повторно использовать подсветку синтаксиса и для создания ошибок.Возможно ли это?
Другими словами, допустим, моя подсветка синтаксиса создает «недопустимые» токены, и я хочу использовать номер строки этого токена, чтобы отметить ошибку, а затем сделать что-то вроде этого: https://github.com/ajaxorg/ace/wiki/Syntax-validation
Простейшим форматом является формат HEX:
this.$rules = {
"start": [
{ regex: /[!#].*$/, token: "comment" },
{ regex: /^0x[0-9a-f]+:/, token: "constant" }, // hex offset
{ regex: /(?:[0-9a-fA-F]{4} |[0-9a-fA-F]{2} )/, token: "constant.numeric" }, // hex value
{ regex: /[\S ]{1,16}$/, token: "string" }, // printable value
{ regex: "\\s+", token: "text" },
{ defaultToken: "invalid" }
]
};
И скажем, редактор создал это состояние с недопустимым токеном в строке 4:
![enter image description here](https://i.stack.imgur.com/AZOiX.png)
Есть ли (желательно простой) способ получить номера строк моих недействительных токенов?Или использовать мой конечный автомат $ rules для проверки синтаксиса?