1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2025-05-15 22:06:29 +02:00

#ONECICD-414

Правка замечаний
This commit is contained in:
Суфьянов Артем Ильдарович 2021-03-01 17:43:35 +03:00
parent ed296a6a05
commit 438d76a122
4 changed files with 50 additions and 28 deletions

View File

@ -63,12 +63,12 @@
Сценарий: Прекоммит вывел ошибку о некорректных директивах компиляции
Когда Я копирую файл "tests\fixtures\ПроверкаКорректностиДирективКомпиляции.bsl" в каталог репозитория "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда Вывод команды "oscript" содержит "ошибки в написании директивы в строке"
Тогда Вывод команды "oscript" содержит "ошибка в написании директивы"
Сценарий: Прекоммит вывел ошибку о некорректных директивах компиляции
Когда Я копирую файл "tests\fixtures\ПроверкаКорректностиДирективКомпиляции2.bsl" в каталог репозитория "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда Вывод команды "oscript" содержит "ошибки в парности условий"
Тогда Вывод команды "oscript" содержит "ошибки в парности директив #Если и #КонецЕсли."
Сценарий: Прекоммит использует локальные настройки репозитория вместо глобальных
Когда Я копирую каталог "localscenario" из каталога "tests\fixtures" проекта в рабочий каталог

View File

@ -53,6 +53,8 @@
Процедура ПроверитьНаКорректностьДиректив(ПутьКФайлуМодуля)
МассивКлючевыхСлов = ПолучитьМассивДиректив();
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуМодуля);
ТекстРазбора = Новый ТекстовыйДокумент;
@ -65,12 +67,12 @@
СовпаденияПоКолличеству = ШаблонПоиска.НайтиСовпадения(СодержимоеФайла);
ШаблонПоиска = Новый РегулярноеВыражение("#Если([\W\w]+?)#КонецЕсли");
ШаблонПоиска = Новый РегулярноеВыражение("^\s?#Если([\W\w]+?)^\s?#КонецЕсли");
СовпаденияПоСтруктуре = ШаблонПоиска.НайтиСовпадения(СодержимоеФайла);
Если СовпаденияПоКолличеству.Количество() <> СовпаденияПоСтруктуре.Количество() * 2 Тогда
ТекстОшибки = СтрШаблон("В файле '%1' ошибки в парности условий", ПутьКФайлуМодуля);
ТекстОшибки = СтрШаблон("В файле '%1' ошибки в парности директив #Если и #КонецЕсли.", ПутьКФайлуМодуля);
Лог.Ошибка(ТекстОшибки);
ВызватьИсключение ТекстОшибки;
@ -80,9 +82,11 @@
СтрокаМодуля = СокрЛ(ТекстРазбора.ПолучитьСтроку(Ит));
Если Не ПустаяСтрока(СтрокаМодуля) Тогда
Если ПустаяСтрока(СтрокаМодуля) ИЛИ Не СтрНачинаетсяС(СтрокаМодуля, "#") ИЛИ СтрНачинаетсяС(СтрокаМодуля, "#Область") Тогда
Если СтрНачинаетсяС(СтрокаМодуля, "#") И Не СтрНачинаетсяС(СтрокаМодуля, "#Область") Тогда
Продолжить;
КонецЕсли;
СтрокаМодуля = Прав(СтрокаМодуля, СтрДлина(СтрокаМодуля) - 1);
@ -90,9 +94,9 @@
Для Каждого Директива Из МассивПодстрок Цикл
Если Не НайтиВСпискеКлючевыхСлов(Директива) Тогда
Если МассивКлючевыхСлов.Найти(Директива) = Неопределено Тогда
ТекстОшибки = СтрШаблон("В файле '%1' ошибки в написании директивы в строке '%2': '%3'", ПутьКФайлуМодуля, Ит, СтрокаМодуля);
ТекстОшибки = СтрШаблон("В файле '%1' ошибка в написании директивы '%2' в строке '%3'", ПутьКФайлуМодуля, Директива, Ит);
Лог.Ошибка(ТекстОшибки);
ВызватьИсключение ТекстОшибки;
@ -100,15 +104,11 @@
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция НайтиВСпискеКлючевыхСлов(Директива)
Функция ПолучитьМассивДиректив()
МассивКлючевыхСлов = Новый Массив();
@ -133,7 +133,7 @@
МассивКлючевыхСлов.Добавить("ИЛИ");
МассивКлючевыхСлов.Добавить("НЕ");
Возврат Не МассивКлючевыхСлов.Найти(Директива) = Неопределено;
Возврат МассивКлючевыхСлов;
КонецФункции

View File

@ -10,3 +10,21 @@
#ИНАЧЕЕсли ТолстыйКлиентУправляемоеПриложениюю
#ИНАЧЕЕсли (ТолстыйКлиентУправляемоеПриложениюю и ТолстыйКлиентОбычноеПриложение)
#Если (МобильноеПриложениеКлиент ИЛИ МобильноеПриложениеСервер Тогда)
#ИначеЕсли (ТолстыйКлиентОбычноеПриложение ИЛИ НЕ ТолстыйКлиентУправляемоеПриложение)
#Иначе
#КонецЕсли
#Если НаКлиент ИЛИ НаСервер
#КонецЕсли
#Если Сервере ИЛИ НЕ Клиенте
#КонецЕсли
#Область СлужебныеПроцедурыИФункции
&ВнешнееСоединение
&ТонкийКлиент
&ВебКлиент
#КонецОбласти

View File

@ -19,3 +19,7 @@
#Иначе
#КонецЕсли
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.
КонецПроцедуры