You've already forked precommit4onec
mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-07-15 01:24:30 +02:00
Добавил новый сценарий + regexp выражение
This commit is contained in:
79
src/СценарииОбработки/ПроверкаДублейПроцедурИФункций.os
Normal file
79
src/СценарииОбработки/ПроверкаДублейПроцедурИФункций.os
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Служебный модуль с реализацией сценариев обработки файлов <ИмяСценария>
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ИмяСценария
|
||||||
|
// Возвращает имя сценария обработки файлов
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - Имя текущего сценария обработки файлов
|
||||||
|
//
|
||||||
|
Функция ИмяСценария() Экспорт
|
||||||
|
|
||||||
|
Возврат "ПроверкаДублейПроцедурИФункций";
|
||||||
|
|
||||||
|
КонецФункции // ИмяСценария()
|
||||||
|
|
||||||
|
// ОбработатьФайл
|
||||||
|
// Выполняет обработку файла
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||||
|
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||||
|
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||||
|
// * Лог - Объект - Текущий лог
|
||||||
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
||||||
|
// и которые необходимо дообработать
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак выполненной обработки файла
|
||||||
|
//
|
||||||
|
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Лог = ДополнительныеПараметры.Лог;
|
||||||
|
НастройкиСценария = ДополнительныеПараметры.УправлениеНастройками.Настройка("Precommt4onecСценарии\НастройкиСценариев").Получить(ИмяСценария());
|
||||||
|
Если АнализируемыйФайл.Существует() И ТипыФайлов.ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||||
|
|
||||||
|
ПроверитьНаДублированиеМетодов(АнализируемыйФайл.ПолноеИмя);
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецФункции // ОбработатьФайл()
|
||||||
|
|
||||||
|
// ОбработатьФайл
|
||||||
|
// Выполняет поиск дублей имен процедур и функций файла
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПутьКФайлуМодуля - Строка - Путь до файла
|
||||||
|
//
|
||||||
|
Процедура ПроверитьНаДублированиеМетодов(ПутьКФайлуМодуля)
|
||||||
|
|
||||||
|
Текст = Новый ЧтениеТекста();
|
||||||
|
Текст.Открыть(ПутьКФайлуМодуля, КодировкаТекста.UTF8NoBOM);
|
||||||
|
|
||||||
|
ТекстМодуля = Текст.Прочитать();
|
||||||
|
Текст.Закрыть();
|
||||||
|
|
||||||
|
ТекстОшибки = "";
|
||||||
|
|
||||||
|
ШаблонПоиска = Новый РегулярноеВыражение("^(?:Процедура|Функция|procedure|function)\s+?([а-яА-ЯёЁ0-9_\w]+?)\s*?\(\)");
|
||||||
|
ШаблонПоиска.Многострочный = Истина;
|
||||||
|
ШаблонПоиска.ИгнорироватьРегистр = Истина;
|
||||||
|
|
||||||
|
Если НЕ ПустаяСтрока(ТекстМодуля) Тогда
|
||||||
|
|
||||||
|
Совпадения = ШаблонПоиска.НайтиСовпадения(ТекстМодуля);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
Reference in New Issue
Block a user