Files
MyTemplateGenerator/README.md

8.7 KiB
Raw Blame History

myTemplateGenerator

English | Русский


English

myTemplateGenerator — Template-based structure generation for VSCode

Features:

  • Syntax highlighting and autocomplete for template variables in templates
  • Generate files and folders from templates with variable substitution
  • Flexible configuration via mytemplategenerator.json or visual configurator
  • Full localization (English/Russian) for all UI, messages, and menus
  • Choose variable input mode: Webview (form) or inputBox (one by one)
  • Overwrite control: allow or forbid overwriting existing files/folders
  • Smart conflict handling: clear notifications if structure already exists
  • No Handlebars dependency: variable substitution is handled by the extension itself

Quick Start

  1. Create a templates folder in your project root.
  2. Add subfolders for different templates (e.g., components, store).
  3. Use variables like {{name}} or {{name.pascalCase}} in file/folder names and file contents.
  4. Right-click a folder in VSCode and select Create from template...
  5. Choose a template, fill in variables, and click "Create".

Example template structure

templates/
  components/
    {{name}}/
      index.js
      style.module.css
  store/
    {{name}}Store.js

Supported variables and modifiers

You can use variables with modifiers via dot notation:

  • {{name}} — as entered by user
  • {{name.pascalCase}} — PascalCase
  • {{name.camelCase}} — camelCase
  • {{name.snakeCase}} — snake_case
  • {{name.kebabCase}} — kebab-case
  • {{name.screamingSnakeCase}} — SCREAMING_SNAKE_CASE
  • {{name.upperCase}} — First letter uppercase
  • {{name.lowerCase}} — all lowercase
  • {{name.upperCaseAll}} — ALLUPPERCASE (no separators)
  • {{name.lowerCaseAll}} — alllowercase (no separators)

When searching for variables for the form, only the name before the dot is considered. For example, {{name}} and {{name.pascalCase}} are the same variable.

Example usage in template

components/
  {{name.pascalCase}}/
    index.js
    {{name.camelCase}}.service.js
    {{name.snakeCase}}.test.js

And in file contents:

export class {{name.pascalCase}} {}
const name = '{{name}}';

Configuration

Use mytemplategenerator.json in your project root or the visual configurator (Configure myTemplateGenerator...):

{
  "templatesPath": "templates",
  "overwriteFiles": false,
  "inputMode": "webview", // or "inputBox"
  "language": "en" // or "ru"
}
  • templatesPath — path to templates folder
  • overwriteFiles — allow or forbid overwriting existing files/folders
  • inputMode — variable input mode: "webview" (form) or "inputBox" (one by one)
  • language — plugin UI language (en/ru)

Localization

  • All UI, messages, errors, and menus are localized.
  • Webview and messages use the language from config.
  • Menu/command language depends on VSCode interface language.

Key commands

  • Create from template... — generate structure (context menu)
  • Configure myTemplateGenerator... — open visual configurator (command palette)

Error handling & overwrite

  • If structure or file exists and overwrite is forbidden, generation is cancelled and a clear notification is shown.
  • Any file creation error stops generation and shows the reason.

Русский

myTemplateGenerator — Генерация структуры из шаблонов для VSCode

Возможности:

  • Подсветка синтаксиса и автокомплит переменных в шаблонах
  • Генерация файлов и папок по шаблонам с подстановкой переменных
  • Гибкая настройка через mytemplategenerator.json или визуальный конфигуратор
  • Полная локализация (русский/английский) для всего интерфейса, сообщений и меню
  • Выбор способа ввода переменных: Webview (форма) или inputBox (по одной)
  • Контроль перезаписи: можно запретить или разрешить перезапись существующих файлов/папок
  • Умная обработка конфликтов: понятные уведомления, если структура уже существует
  • Без зависимости от Handlebars: подстановка переменных реализована внутри расширения

Быстрый старт

  1. В корне проекта создайте папку templates.
  2. Внутри неё создайте подпапки для разных шаблонов (например, components, store).
  3. Внутри шаблонов используйте переменные вида {{name}} или {{name.pascalCase}} в именах файлов/папок и в содержимом файлов.
  4. Кликните правой кнопкой мыши на нужной папке в VSCode и выберите пункт Создать из шаблона...
  5. В появившемся окне выберите шаблон, заполните переменные и нажмите "Создать".

Пример структуры шаблонов

templates/
  components/
    {{name}}/
      index.js
      style.module.css
  store/
    {{name}}Store.js

Переменные и модификаторы

В шаблонах можно использовать переменные с модификаторами через точку:

  • {{name}} — как ввёл пользователь
  • {{name.pascalCase}} — PascalCase
  • {{name.camelCase}} — camelCase
  • {{name.snakeCase}} — snake_case
  • {{name.kebabCase}} — kebab-case
  • {{name.screamingSnakeCase}} — SCREAMING_SNAKE_CASE
  • {{name.upperCase}} — Первая буква большая
  • {{name.lowerCase}} — все буквы маленькие
  • {{name.upperCaseAll}}ВСЕ БУКВЫ БОЛЬШИЕ (без разделителей)
  • {{name.lowerCaseAll}} — все буквы маленькие (без разделителей)

При поиске переменных для формы учитывается только имя до точки. Например, {{name}} и {{name.pascalCase}} — это одна переменная.

Пример использования в шаблоне

components/
  {{name.pascalCase}}/
    index.js
    {{name.camelCase}}.service.js
    {{name.snakeCase}}.test.js

Внутри файлов также можно использовать эти переменные:

export class {{name.pascalCase}} {}
const name = '{{name}}';

Конфигурация

Для гибкой настройки используйте файл mytemplategenerator.json в корне проекта или визуальный конфигуратор (команда Настроить myTemplateGenerator...):

{
  "templatesPath": "templates",
  "overwriteFiles": false,
  "inputMode": "webview", // или "inputBox"
  "language": "ru" // или "en"
}
  • templatesPath — путь к папке с шаблонами
  • overwriteFiles — разрешать ли перезапись существующих файлов/папок
  • inputMode — способ ввода переменных: "webview" (форма) или "inputBox" (по одной)
  • language — язык интерфейса плагина (ru/en)

Локализация

  • Все сообщения, Webview, ошибки и пункты меню локализованы.
  • Язык Webview и сообщений выбирается в конфигураторе.
  • Язык пунктов меню и команд зависит от языка интерфейса VSCode.

Важные команды

  • Создать из шаблона... — генерация структуры (контекстное меню)
  • Настроить myTemplateGenerator... — открыть визуальный конфигуратор (палитра команд)

Обработка ошибок и перезаписи

  • Если структура или файл уже существуют и перезапись запрещена, генерация не выполняется и выводится понятное уведомление.
  • Если при создании любого файла возникает ошибка — генерация полностью прекращается, и пользователь видит причину.