Ссылка, которую вы упомянули, не говорит о том, что мы можем создать новый фрагмент с помощью EBNF.
они задокументировали что-то вроде:
Нижеявляется EBNF (расширенная форма Бэкуса-Наура) для фрагментов
И затем .. они дали EBNF для фрагментов.
any ::= tabstop | placeholder | choice | variable | text
tabstop ::= '$' int | '${' int '}'
placeholder ::= '${' int ':' any '}'
choice ::= '${' int '|' text (',' text)* '|}'
variable ::= '$' var | '${' var }'
| '${' var ':' any '}'
| '${' var '/' regex '/' (format | text)+ '/' options '}'
format ::= '$' int | '${' int '}'
| '${' int ':' '/upcase' | '/downcase' | '/capitalize' '}'
| '${' int ':+' if '}'
| '${' int ':?' if ':' else '}'
| '${' int ':-' else '}' | '${' int ':' else '}'
regex ::= JavaScript Regular Expression value (ctor-string)
options ::= JavaScript Regular Expression option (ctor-options)
var ::= [_a-zA-Z] [_a-zA-Z0-9]*
int ::= [0-9]+
text ::= .*
Он говорит, что является возможной комбинацией, и ключевые словакоторые принимаются Фрагментом.Это действительно формат JSON, который я могу сказать, посмотрев на EBNF.На данный момент создание фрагмента ограничено этим.мы не можем генерировать расширенный фрагмент в текущем выпуске (Версия 1.24).
Пожалуйста, прочитайте документ, чтобы получить дополнительную информацию о том, как создать новый фрагмент с заданными переменными и логикой замены.Спасибо.