This repository has been archived by the owner on Jul 16, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
34 changed files
with
3,309 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
bdd-log.xml | ||
*.ospx | ||
*.orig | ||
exec.log | ||
ignore/** | ||
tests.xml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
# Скрипт для работы с шаблонами кода | ||
|
||
- [Скрипт для работы с шаблонами кода](#%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D0%BC%D0%B8-%D0%BA%D0%BE%D0%B4%D0%B0) | ||
- [Установить приложение, алгоритм установки стандартный](#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8-%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D0%B9) | ||
- [Использование](#%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5) | ||
- [Конвертация шаблонов](#%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2) | ||
- [Объединение шаблонов](#%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2) | ||
- [Разделение шаблонов](#%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2) | ||
|
||
## Установить приложение, алгоритм установки стандартный | ||
|
||
- склонировать репозиторий или | ||
- распаковать в нужный каталог архив репозитория | ||
- для Windows запустить [installlocalhost.bat](/installlocalhost.bat) | ||
|
||
## Использование | ||
|
||
### Конвертация шаблонов | ||
|
||
1. Шаблоны конфигуратора в шаблоны VS Code | ||
2. Шаблоны конфигуратора в шаблоны EDT | ||
3. Шаблоны EDT в шаблоны конфигуратора | ||
|
||
Поддерживаемые расширения файлов | ||
|
||
- ".st" - шаблон конфигуратора | ||
- ".json" - шаблон языка VSCode | ||
- ".code-snippets" - глобальный шаблон VSCode | ||
- ".xml" - шаблон EDT | ||
|
||
Определение типа преобразования происходит на основании расширения файла. | ||
|
||
Для запуска преобразования используется команда: | ||
|
||
`snippet-transform convert Исходный-шаблон Новый-шаблон` | ||
|
||
Примеры: | ||
|
||
- `snippet-transform convert "Мой любимый шаблон.st" "bsl.code-snippets"` | ||
Команда выполнить преобразование шаблона конфигуратор в глобальный шаблон VSCode | ||
|
||
- `snippet-transform convert "Мой любимый шаблон.xml" "bsl.st"` | ||
Команда выполнить преобразование шаблона EDT в шаблон конфигуратора | ||
|
||
### Объединение шаблонов | ||
|
||
`snippet-transform join-files Изменяемый-шаблон Добавляемый-шаблон` | ||
|
||
- `Изменяемый-шаблон` - Имя файла шаблона, в который будут добавлены записи из второго файла | ||
- `Добавляемый-шаблон` - Имя файла, в котором содержатся добавляемые записи | ||
|
||
`snippet-transform join-path Каталог-шаблонов Результирующий-шаблон` | ||
|
||
- `Каталог-шаблонов` - Имя каталога, в котором лежат шаблоны, которые нужно соединить. | ||
- `Результирующий-шаблон` - Имя файла, в который будет сохранен результат | ||
|
||
Примеры: | ||
|
||
- `snippet-transform join-files "Мой любимый шаблон.xml" "Мой второй любимый шаблон.st"` | ||
Команда выполнить объединение шаблонов EDT и конфигуратора и запишет результат в шаблон EDT c именем "Мой любимый шаблон.xml" | ||
|
||
- `snippet-transform join-path "Каталог любимый шаблонов" "Супер шаблон.code-snippets"` | ||
Команда выполнить объединение всех поддерживаемых шаблонов каталога и запишет результат в новый шаблон | ||
|
||
### Разделение шаблонов | ||
|
||
`snippet-transform apportion Изменяемый-шаблон Выражение-поиска [Новый-шаблон] [-r]` | ||
|
||
Удаляет (переносит в новый файл) элементы шаблона, полное наименование которых совпадает с `Выражение-поиска` | ||
|
||
- `Изменяемый-шаблон` - Имя файла шаблона, из которого будет вырезана часть | ||
- `Выражение-поиска` - Регулярное выражение для проверки наименования элемента шаблона. Если выражение совпадает с наименованием, то такой элемент переносится в новый файл. | ||
- `Новый-шаблон` - Имя файла шаблона, в который будут помещены исключенные записи | ||
- `-r` Переносить элементы, у которых наименование не совпадает с шаблоном | ||
|
||
Примеры: | ||
|
||
- `snippet-transform apportion "Мой любимый шаблон.st" "алгоритм"` | ||
Удалит из шаблона элементы, в наименовании которых есть слово "алгоритм" | ||
|
||
- `snippet-transform apportion "Мой любимый шаблон.st" "алгоритм" Алгоритмы.st` | ||
Перенесет из шаблона "Мой любимый шаблон.st" в шаблон "Алгоритмы.st" элементы, в наименовании которых есть слово "алгоритм" | ||
|
||
- `snippet-transform apportion "Мой любимый шаблон.st" "оставить" -r` | ||
Удалит из шаблона все элементы, в наименовании которых нет слова "оставить" | ||
|
||
- `snippet-transform apportion "Мой любимый шаблон.st" "^Супер группа\." -r` | ||
Удалит из шаблона все элементы, кроме группы первого уровня "Супер группа" | ||
|
||
- `snippet-transform apportion "Мой любимый шаблон.st" "Плохая группа\."` | ||
Удалит из шаблона группы "Плохая группа" и "очень плохая группа" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd | ||
|
||
Перем БДД; //контекст фреймворка 1bdd | ||
|
||
// Метод выдает список шагов, реализованных в данном файле-шагов | ||
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт | ||
БДД = КонтекстФреймворкаBDD; | ||
|
||
ВсеШаги = Новый Массив; | ||
|
||
ВсеШаги.Добавить("ФайлВРабочемКаталогеСодержитСтроки"); | ||
ВсеШаги.Добавить("ФайлВРабочемКаталогеНеСодержитСтроки"); | ||
|
||
Возврат ВсеШаги; | ||
КонецФункции | ||
|
||
// Реализация шагов | ||
|
||
// Процедура выполняется перед запуском каждого сценария | ||
Процедура ПередЗапускомСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
// Процедура выполняется после завершения каждого сценария | ||
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
//Файл "result/vscode1.code-snippets" в рабочем каталоге содержит строки | ||
//| "scope": "bsl" | | ||
//| "prefix": "Общий модуль" | | ||
//| "prefix": "DEPRECATED" | | ||
//| "prefix": "Инкремент" | | ||
Процедура ФайлВРабочемКаталогеСодержитСтроки(Знач ФайлРабочегоКаталога, Знач ТаблицаСтрок) Экспорт | ||
|
||
ФайлРабочегоКаталога = БДД.ПолучитьПутьФайлаСУчетомПеременныхКонтекста(ФайлРабочегоКаталога); | ||
|
||
Чтение = Новый ЧтениеТекста(ОбъединитьПути(БДД.ПолучитьИзКонтекста("РабочийКаталог"), ФайлРабочегоКаталога), КодировкаТекста.UTF8); | ||
СтрокаГдеИщем = Чтение.Прочитать(); | ||
Чтение.Закрыть(); | ||
|
||
СтрокаРасхождений = ""; | ||
Для Каждого СтрТаблицы Из ТаблицаСтрок Цикл | ||
|
||
СтрокаЧтоИщем = СтрТаблицы[0]; | ||
Если Найти(СтрокаГдеИщем, СтрокаЧтоИщем) = 0 Тогда | ||
СтрокаРасхождений = СтрШаблон( | ||
"%1 | ||
| Не найдена подстрока <%2>", СтрокаРасхождений, СтрокаЧтоИщем); | ||
КонецЕсли; | ||
|
||
КонецЦикла; | ||
Если Не ПустаяСтрока(СтрокаРасхождений) Тогда | ||
СтрокаРасхождений = СтрШаблон( | ||
"Не нашли одну из подстрок таблицы: | ||
|%2 | ||
|в строке: | ||
|%1", СтрокаГдеИщем, СтрокаРасхождений); | ||
Ожидаем.Что(Истина, СтрокаРасхождений).ЭтоЛожь(); | ||
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
//Файл "result/vscode1.code-snippets" в рабочем каталоге не содержит строки | ||
//| "scope": "bsl" | | ||
//| "prefix": "Общий модуль" | | ||
//| "prefix": "DEPRECATED" | | ||
//| "prefix": "Инкремент" | | ||
Процедура ФайлВРабочемКаталогеНеСодержитСтроки(Знач ФайлРабочегоКаталога, Знач ТаблицаСтрок) Экспорт | ||
|
||
ФайлРабочегоКаталога = БДД.ПолучитьПутьФайлаСУчетомПеременныхКонтекста(ФайлРабочегоКаталога); | ||
|
||
Чтение = Новый ЧтениеТекста(ОбъединитьПути(БДД.ПолучитьИзКонтекста("РабочийКаталог"), ФайлРабочегоКаталога), КодировкаТекста.UTF8); | ||
СтрокаГдеИщем = Чтение.Прочитать(); | ||
Чтение.Закрыть(); | ||
|
||
СтрокаРасхождений = ""; | ||
Для Каждого СтрТаблицы Из ТаблицаСтрок Цикл | ||
|
||
СтрокаЧтоИщем = СтрТаблицы[0]; | ||
Если Найти(СтрокаГдеИщем, СтрокаЧтоИщем) <> 0 Тогда | ||
СтрокаРасхождений = СтрШаблон( | ||
"%1 | ||
| Найдена подстрока <%2>", СтрокаРасхождений, СтрокаЧтоИщем); | ||
КонецЕсли; | ||
|
||
КонецЦикла; | ||
Если Не ПустаяСтрока(СтрокаРасхождений) Тогда | ||
СтрокаРасхождений = СтрШаблон( | ||
"Нашли одну из подстрок таблицы: | ||
|%2 | ||
|в строке: | ||
|%1", СтрокаГдеИщем, СтрокаРасхождений); | ||
Ожидаем.Что(Истина, СтрокаРасхождений).ЭтоЛожь(); | ||
КонецЕсли; | ||
|
||
КонецПроцедуры |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#language: ru | ||
|
||
Функциональность: Объединение шаблонов кода | ||
|
||
Как разработчик | ||
Я хочу получить единый файл шаблона кода | ||
Чтоб проще распространять и подключать его | ||
|
||
Контекст: | ||
Допустим Я очищаю параметры команды "oscript" в контексте | ||
И я включаю отладку лога с именем "oscript.app.snippet-transform" | ||
И я создаю временный каталог и сохраняю его в контекст | ||
И я устанавливаю временный каталог как рабочий каталог | ||
И я установил рабочий каталог как текущий каталог | ||
И я создаю каталог "snippets" в рабочем каталоге | ||
И я копирую файл "ШаблонКонфигуратора.st" из каталога "tests/fixtures//snippets" проекта в подкаталог "snippets" рабочего каталога | ||
И я копирую файл "ШаблонEDT.xml" из каталога "tests/fixtures//snippets" проекта в подкаталог "snippets" рабочего каталога | ||
|
||
Сценарий: Объединение двух шаблонов | ||
Когда я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os join-files snippets/ШаблонКонфигуратора.st snippets/ШаблонEDT.xml" | ||
Тогда Код возврата равен 0 | ||
И Файл "snippets/ШаблонКонфигуратора.st" в рабочем каталоге содержит | ||
""" | ||
{"Общий модуль",0,0,"Модуль[Общий]","//⇗ ⇘ ⇙ ⇚ ⇛ ⇜ ⇝ ⇞ ⇟ ⇠ ⇡ ⇢ ⇣ ⇤ ⇥ ⇦ ⇧ ⇨ ⇩ ⇪ ⇫ ⇬ ⇭ ⇮ ⇯ ⇰ ⇱ ⇲ ⇳ ⇴ ⇵ ⇶ ⇷ ⇸ ⇹ ⇺ // | ||
""" | ||
И Файл "snippets/ШаблонКонфигуратора.st" в рабочем каталоге содержит | ||
""" | ||
ТекущаяДата = '<?"n1", ДатаВремя, ""ДФ=dd.MM.yyyy"">' | ||
""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
#language: ru | ||
|
||
Функциональность: Объединение шаблонов кода | ||
|
||
Как разработчик | ||
Я хочу получить единый файл шаблона кода | ||
Чтоб проще распространять и подключать его | ||
|
||
Контекст: | ||
Допустим Я очищаю параметры команды "oscript" в контексте | ||
И я включаю отладку лога с именем "oscript.app.snippet-transform" | ||
И я создаю временный каталог и сохраняю его в контекст | ||
И я устанавливаю временный каталог как рабочий каталог | ||
И я установил рабочий каталог как текущий каталог | ||
И я создаю каталог "snippets" в рабочем каталоге | ||
И я копирую файл "ШаблонКонфигуратора.st" из каталога "tests/fixtures/snippets" проекта в подкаталог "snippets" рабочего каталога | ||
И я копирую файл "ШаблонEDT.xml" из каталога "tests/fixtures/snippets" проекта в подкаталог "snippets" рабочего каталога | ||
|
||
Сценарий: Объединение шаблонов каталога | ||
Когда я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os join-path snippets result.st" | ||
Тогда Код возврата равен 0 | ||
И Файл "result.st" в рабочем каталоге содержит | ||
""" | ||
{"Общий модуль",0,0,"Модуль[Общий]","//⇗ ⇘ ⇙ ⇚ ⇛ ⇜ ⇝ ⇞ ⇟ ⇠ ⇡ ⇢ ⇣ ⇤ ⇥ ⇦ ⇧ ⇨ ⇩ ⇪ ⇫ ⇬ ⇭ ⇮ ⇯ ⇰ ⇱ ⇲ ⇳ ⇴ ⇵ ⇶ ⇷ ⇸ ⇹ ⇺ // | ||
""" | ||
И Файл "result.st" в рабочем каталоге содержит | ||
""" | ||
ТекущаяДата = '<?"n1", ДатаВремя, ""ДФ=dd.MM.yyyy"">' | ||
""" |
Oops, something went wrong.