1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2025-02-01 13:07:54 +02:00

Добавлен сценарий добавления пробелов перед ключевыми словами (пока только Экспорт)

This commit is contained in:
Maxmov Valery 2017-12-07 11:29:24 +03:00
parent bd07daf557
commit 2765605fff
2 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,94 @@
///////////////////////////////////////////////////////////////////////////////
//
// Служебный модуль с реализацией сценариев обработки файлов
// <ДобавлениеПробеловПередКлючевымиСловами>
//
///////////////////////////////////////////////////////////////////////////////
// ИмяСценария
// Возвращает имя сценария обработки файлов
//
// Возвращаемое значение:
// Строка - Имя текущего сценария обработки файлов
//
Функция ИмяСценария() Экспорт
Возврат "ДобавлениеПробеловПередКлючевымиСловами";
КонецФункции // ИмяСценария()
// ОбработатьФайл
// Выполняет обработку файла
//
// Параметры:
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
// * Лог - Объект - Текущий лог
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
// * КаталогРепозитория - Строка - Адрес каталога репозитория
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
// и которые необходимо дообработать
//
// Возвращаемое значение:
// Булево - Признак выполненной обработки файла
//
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
Лог = ДополнительныеПараметры.Лог;
Если АнализируемыйФайл.Существует() И ЭтоФайлИсходников(АнализируемыйФайл) Тогда
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
Если ВставитьНужныеПробелы(АнализируемыйФайл.ПолноеИмя) Тогда
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
КонецЕсли;
Возврат Истина;
КонецЕсли;
Возврат ЛОЖЬ;
КонецФункции // ОбработатьФайл()
Функция ЭтоФайлИсходников(Файл)
Если ПустаяСтрока(Файл.Расширение) Тогда
Возврат Ложь;
КонецЕсли;
Возврат СтрСравнить(Файл.Расширение, ".bsl") = 0;
КонецФункции
Функция ВставитьНужныеПробелы(Знач ИмяФайла)
Текст = Новый ЧтениеТекста();
Текст.Открыть(ИмяФайла, "utf-8");
СодержимоеФайла = Текст.Прочитать();
Текст.Закрыть();
Регексп = Новый РегулярноеВыражение("(^[^\n\/]*\))(Экспорт)([\s]*?)([\/\/]+[^\n]*?)*?$");
Регексп.ИгнорироватьРегистр = ИСТИНА;
Регексп.Многострочный = ИСТИНА;
ГруппыИндексов = Регексп.НайтиСовпадения(СодержимоеФайла);
Если ГруппыИндексов.Количество() = 0 Тогда
Возврат ЛОЖЬ;
КонецЕсли;
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1 $2$3$4");
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла,,,, Символы.ПС);
ЗаписьТекста.Записать(СодержимоеФайла);
ЗаписьТекста.Закрыть();
Возврат Истина;
КонецФункции

View File

@ -3,6 +3,7 @@
"ИспользоватьСценарииРепозитория": false,
"КаталогЛокальныхСценариев": "",
"ГлобальныеСценарии": [
"ДобавлениеПробеловПередКлючевымиСловами.os",
"КорректировкаXMLФорм.os",
"РазборОбычныхФормНаИсходники.os",
"РазборОтчетовОбработокРасширений.os",