Создание фрагментов кода в Visual Studio Code с использованием EBNF

Здесь говорят, что мы можем генерировать код с помощью EBNF, но я не понимаю, как , похоже, он принимает только JSON. Кто-нибудь знает, как это сделать?
Заранее спасибо.


person SadSeven    schedule 07.06.2018    source источник


Ответы (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