forked from bia-tech/precommit4onec
-
Notifications
You must be signed in to change notification settings - Fork 20
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
45 changed files
with
1,400 additions
and
356 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
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
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,93 @@ | ||
/////////////////////////////////////////////////////////////////// | ||
// Содержит настройки сценария для сортировки блока состав | ||
// конкретного файла | ||
// | ||
// (с) BIA Technologies, LLC | ||
// | ||
/////////////////////////////////////////////////////////////////// | ||
|
||
Перем ИмяЭлемента; // имя (или паттерн) для определения элемента | ||
Перем РазделительЭлементов; // разделитель элементов между собой | ||
Перем РодительскийЭлемент; // родительский элемент, внутри которого осуществляетсяя поиск | ||
Перем РодительскийЭлементЗавершение; // Завершение родительского элемента, если отличается от начала | ||
Перем ОтступРодительскогоЭлемента; // отступ родительского элемента от начала строки | ||
Перем ШаблонПоискаСостава; // Шаблон (регулярное выражение) для поиска блока, содержащего состав | ||
// для сортировки | ||
Перем ШаблонПоискаЭлементов; // Шаблон (регулярное выражение) для поиска элементов внутри блока с составом | ||
Перем ИмеетАтрибуты; // Признак-подсказка о наличии атрибутов у элемента | ||
Перем ИмяВложенного; // Имя вложенного тега в теге элемента | ||
|
||
Процедура ПриСозданииОбъекта(ПараметрИмяЭлемента) | ||
ИмяЭлемента = ПараметрИмяЭлемента; | ||
РазделительЭлементов = Символы.ПС; | ||
РодительскийЭлемент = ""; | ||
ОтступРодительскогоЭлемента = ""; | ||
ШаблонПоискаСостава = ""; | ||
ШаблонПоискаЭлементов = ""; | ||
ИмеетАтрибуты = Ложь; | ||
ИмяВложенного = ""; | ||
КонецПроцедуры | ||
|
||
Процедура УстановитьРазделительЭлементов(Разделитель) Экспорт | ||
РазделительЭлементов = Символы.ПС + Разделитель; | ||
КонецПроцедуры | ||
|
||
Процедура УстановитьРодительскийЭлемент(Имя, Отступ, ИмяЗавершение = "") Экспорт | ||
РодительскийЭлемент = Имя; | ||
ОтступРодительскогоЭлемента = Отступ; | ||
Если ПустаяСтрока(ИмяЗавершение) Тогда | ||
РодительскийЭлементЗавершение = РодительскийЭлемент; | ||
Иначе | ||
РодительскийЭлементЗавершение = ИмяЗавершение; | ||
КонецЕсли; | ||
КонецПроцедуры | ||
|
||
Процедура УставитьШаблоныПоиска(ШаблонСостава, ШаблонЭлементов) Экспорт | ||
ШаблонПоискаСостава = ШаблонСостава; | ||
ШаблонПоискаЭлементов = ШаблонЭлементов; | ||
КонецПроцедуры | ||
|
||
Функция ШаблонПоискаСостава() Экспорт | ||
Возврат РегулярныеВыражения.Создать(ШаблонПоискаСостава); | ||
КонецФункции | ||
|
||
Функция ШаблонПоискаЭлементов() Экспорт | ||
Возврат ШаблонПоискаЭлементов; | ||
КонецФункции | ||
|
||
Функция ИмяЭлемента() Экспорт | ||
Возврат ИмяЭлемента; | ||
КонецФункции | ||
|
||
Функция РазделительЭлементов() Экспорт | ||
Возврат РазделительЭлементов; | ||
КонецФункции | ||
|
||
Функция ЕстьРодительскийЭлемент() Экспорт | ||
Возврат ЗначениеЗаполнено(РодительскийЭлемент); | ||
КонецФункции | ||
|
||
Функция РодительскийЭлемент() Экспорт | ||
Возврат Новый Структура("Отступ, Имя, Завершение", | ||
ОтступРодительскогоЭлемента, РодительскийЭлемент, РодительскийЭлементЗавершение); | ||
КонецФункции | ||
|
||
Процедура УстановитьЕстьАтрибуты() Экспорт | ||
ИмеетАтрибуты = Истина; | ||
КонецПроцедуры | ||
|
||
Функция САтрибутами() Экспорт | ||
Возврат ИмеетАтрибуты; | ||
КонецФункции | ||
|
||
Процедура УстановитьИмяВложенного(Имя) Экспорт | ||
ИмяВложенного = Имя; | ||
КонецПроцедуры | ||
|
||
Функция ЕстьВложенный() Экспорт | ||
Возврат ЗначениеЗаполнено(ИмяВложенного); | ||
КонецФункции | ||
|
||
Функция ИмяВложенного() Экспорт | ||
Возврат ИмяВложенного; | ||
КонецФункции |
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,75 @@ | ||
/////////////////////////////////////////////////////////////////// | ||
// Содержит настройки для сортировки конкретного файла | ||
// | ||
// (с) BIA Technologies, LLC | ||
// | ||
/////////////////////////////////////////////////////////////////// | ||
|
||
// BSLLS:ExportVariables-off Геттер не создать | ||
Перем Тип Экспорт; // Тип обрабатываемого файла | ||
// BSLLS:ExportVariables-on | ||
Перем ЕДТ; // Признак формата ЕДТ содержимого | ||
Перем Заимствованный; // Признак отношения файла к расширению и заимствованности из основной конфигурации | ||
Перем Сценарии; // Сценарии обработки файла | ||
Перем Пустой; // Признак отсутствия настроек | ||
|
||
// Конструктор создания на основании анализируемого файла | ||
Процедура ПриСозданииОбъекта(АнализируемыйФайл) | ||
ОписаниеПоФайлу = ТипыОбъектовДляСортировки.ПоФайлу(АнализируемыйФайл); | ||
Если ОписаниеПоФайлу.Тип = ТипыОбъектовДляСортировки.Неизвестный Тогда | ||
Пустой = Истина; | ||
Возврат; | ||
КонецЕсли; | ||
|
||
Пустой = Ложь; | ||
Тип = ОписаниеПоФайлу.Тип; | ||
ЕДТ = ОписаниеПоФайлу.ЕДТ; | ||
Заимствованный = ОписаниеПоФайлу.Заимствованный; | ||
Сценарии = Новый Массив; | ||
КонецПроцедуры | ||
|
||
Функция Пустой() Экспорт | ||
Возврат Пустой; | ||
КонецФункции | ||
|
||
Функция ЕДТ() Экспорт | ||
Возврат ЕДТ; | ||
КонецФункции | ||
|
||
Функция Заимствованный() Экспорт | ||
Возврат Заимствованный; | ||
КонецФункции | ||
|
||
Процедура ДобавитьСценарий(НастройкиСценария) Экспорт | ||
|
||
// 1-я группа: состав объектов | ||
ШаблонПоискаСостава = ""; | ||
Если Тип = ТипыОбъектовДляСортировки.Конфигурация И ЕДТ Тогда | ||
// 2-я группа: завершающий блок ЕДТ | ||
ШаблонПоискаСостава = "\s*(<languages[\w\W]*)(<\/mdclass\:Configuration>)[ \t]*\n*"; | ||
ИначеЕсли НастройкиСценария.ЕстьРодительскийЭлемент() Тогда | ||
РодительскийЭлемент = НастройкиСценария.РодительскийЭлемент(); | ||
ШаблонПоискаСостава = СтрШаблон("\s*<%1>([\w\W]*?)<\/%2>[ \t]*\n*", | ||
РодительскийЭлемент.Имя, РодительскийЭлемент.Завершение); | ||
Иначе | ||
ШаблонПоискаСостава = СтрШаблон("\s*(<%1>[\w\W]*<\/%1>)[ \t]*\n*", НастройкиСценария.ИмяЭлемента()); | ||
КонецЕсли; | ||
|
||
// 1-я группа: имя объекта состава | ||
ШаблонПоискаЭлементов = ""; | ||
ТекстАтрибутов = ?(НастройкиСценария.САтрибутами(), "\s+[^>]+", ""); | ||
Если НастройкиСценария.ЕстьВложенный() Тогда | ||
ШаблонПоискаЭлементов = СтрШаблон( // BSLLS:NestedFunctionInParameters-off используются геттеры | ||
"<%1%2>[\w\W]*?<%3>([^<]*?)<\/%3>[\w\W]*?<\/%1>", | ||
НастройкиСценария.ИмяЭлемента(), ТекстАтрибутов, НастройкиСценария.ИмяВложенного()); | ||
Иначе | ||
ШаблонПоискаЭлементов = СтрШаблон("<%1%2>([^<]*?)<\/%1>", НастройкиСценария.ИмяЭлемента(), ТекстАтрибутов); | ||
КонецЕсли; | ||
|
||
НастройкиСценария.УставитьШаблоныПоиска(ШаблонПоискаСостава, ШаблонПоискаЭлементов); | ||
Сценарии.Добавить(НастройкиСценария); | ||
КонецПроцедуры | ||
|
||
Функция Сценарии() Экспорт | ||
Возврат Сценарии; | ||
КонецФункции |
Oops, something went wrong.