Есть несколько вариантов подключения шаблонов(фрагментов) кода к VS Code
-
Редактирования файла шаблонов конкретного языка, для 1c это файл bsl.json Для этого необходимо выполнить команду (нажав Ctrl+P) "Настроить пользовательские фрагменты кода" и выбрав в списке языков "BSL"
-
Создание глобальных файлов шаблонов, которые могут в себя включать различные языки. Для этого необходимо выполнить команду (нажав Ctrl+P) "Настроить пользовательские фрагменты кода" и выбрать "Новый файл с глобальным фрагментом кода"
-
Можно руками создавать файлы с расширением "code-snippets" в каталоге "%appdata%\Code\User\snippets", это эквивалентно второму варианту.
Основное отличие первого и второго вариантов в том, что по первому варианту может быть только один файл. Для второго - множество, но в нем придется указывать язык для каждого шаблона замены для какого он языка. Третий - тоже самое, что и второй, но руками.
Шаблон - это JSON файл. Он не поддерживает иерархии и групп. Все шаблоны - это свойства корневого элемента.
- Имя свойства - имя шаблона, должно быть уникальным.
- prefix - заменяемая строка
- body - тело шаблона
- description - описание шаблона, отображается если заполнено и не равно имени
{
"DEPRECATED": {
"prefix": "ЗапретитьИспользование",
"body": "#Если НЕ ВебКлиент Тогда\n\tВыполнить(СервисныйОбщегоНазначенияПовтИсп.ЗапретитьИспользованиеФункционала(\n\t\t\"${1:Запрещенный функционал, метод}\", \/\/ Запрещенный функционал, метод\n\t\t\"${2:Функционал для замены (необязательно)}\", \/\/ Функционал для замены\n\t\t\"${3:Комментарий \/ пояснение (необязательно)}\", \/\/ Комментарий \/ пояснение\n\t\t${4:Дата запрета в тестовой (необязательно, вид Дата(ГГГГ, ММ, ДД))}, \/\/ Дата запрета в тестовой\n\t\t${5:Дата запрета в рабочей (необязательно, вид Дата(ГГГГ, ММ, ДД))}) \/\/ Дата запрета в рабочей\n\t\t);\n#КонецЕсли ",
"description": "DEPRECATED"
},
"Инкремент": {
"prefix": "++",
"body": "${1:Операнд} = ${2:Операнд} + 1;",
"description": "Инкремент"
}
}
В поле body
(тело шаблона) можно использовать подстановочные символы
- $1, $2... - места остановки для ввода текста
- $0 - установка курсора по окончании ввода шаблона
- ${1:Операнд} - места остановки для ввода текста со значением по умолчанию
Например Сообщить("${1:Тест сообщения}");
Для ввода многострочного шаблона необходимо использовать спецсимволы \n
, либо оформлять тело как массив строк.
Также можно использовать шаблон выбора и различные переменные, подробнее здесь
Заходим в настройки шаблонов:
- Меню → Окно → Параметры → V8 → Встроенный язык → Макеты
- Быстрый доступ (Ctrl+3), набираем "параметры макеты"
Откроется окно работы с шаблонами. В нем есть возможность создавать новые, редактировать существующие и импортировать шаблоны
- Нажимаем создать
- Не меняем поле контекст!
- Указываем имя, оно будет использоваться для поиска шаблона
- Заполняем описание
- Заполняем поле шаблон
В тексте шаблона можно использовать подстановочные символы
- ${} - места остановки для ввода текста
- ${имя_переменной} - места остановки для ввода текста, имя переменной является значение по-умолчанию, также если в шаблоне переменная используется несколько раз, то значение будет установлено для всех мест
- ${cursor} - установка курсора по окончании ввода шаблона