Здесь говорят, что мы можем генерировать код с помощью EBNF, но я не понимаю, как , похоже, он принимает только JSON. Кто-нибудь знает, как это сделать?
Заранее спасибо.
Создание фрагментов кода в Visual Studio Code с использованием EBNF
Ответы (1)
Ссылка, которую вы упомянули, не говорит о том, что мы можем сгенерировать новый фрагмент с помощью 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).
Пожалуйста, прочтите документ, чтобы получить дополнительную информацию о том, как создать новый фрагмент с заданными переменными и логикой замены. Спасибо.
person
Jay Joshi
schedule
29.06.2018