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:
parent
ed296a6a05
commit
438d76a122
@ -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" проекта в рабочий каталог
|
||||
|
@ -53,6 +53,8 @@
|
||||
|
||||
Процедура ПроверитьНаКорректностьДиректив(ПутьКФайлуМодуля)
|
||||
|
||||
МассивКлючевыхСлов = ПолучитьМассивДиректив();
|
||||
|
||||
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ПутьКФайлуМодуля);
|
||||
|
||||
ТекстРазбора = Новый ТекстовыйДокумент;
|
||||
@ -65,12 +67,12 @@
|
||||
|
||||
СовпаденияПоКолличеству = ШаблонПоиска.НайтиСовпадения(СодержимоеФайла);
|
||||
|
||||
ШаблонПоиска = Новый РегулярноеВыражение("#Если([\W\w]+?)#КонецЕсли");
|
||||
ШаблонПоиска = Новый РегулярноеВыражение("^\s?#Если([\W\w]+?)^\s?#КонецЕсли");
|
||||
СовпаденияПоСтруктуре = ШаблонПоиска.НайтиСовпадения(СодержимоеФайла);
|
||||
|
||||
Если СовпаденияПоКолличеству.Количество() <> СовпаденияПоСтруктуре.Количество() * 2 Тогда
|
||||
|
||||
ТекстОшибки = СтрШаблон("В файле '%1' ошибки в парности условий", ПутьКФайлуМодуля);
|
||||
ТекстОшибки = СтрШаблон("В файле '%1' ошибки в парности директив #Если и #КонецЕсли.", ПутьКФайлуМодуля);
|
||||
Лог.Ошибка(ТекстОшибки);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
|
||||
@ -80,35 +82,33 @@
|
||||
|
||||
СтрокаМодуля = СокрЛ(ТекстРазбора.ПолучитьСтроку(Ит));
|
||||
|
||||
Если Не ПустаяСтрока(СтрокаМодуля) Тогда
|
||||
Если ПустаяСтрока(СтрокаМодуля) ИЛИ Не СтрНачинаетсяС(СтрокаМодуля, "#") ИЛИ СтрНачинаетсяС(СтрокаМодуля, "#Область") Тогда
|
||||
|
||||
Если СтрНачинаетсяС(СтрокаМодуля, "#") И Не СтрНачинаетсяС(СтрокаМодуля, "#Область") Тогда
|
||||
|
||||
СтрокаМодуля = Прав(СтрокаМодуля, СтрДлина(СтрокаМодуля) - 1);
|
||||
|
||||
МассивПодстрок = СтрРазделить(СтрокаМодуля, " ()", Ложь);
|
||||
|
||||
Для Каждого Директива Из МассивПодстрок Цикл
|
||||
|
||||
Если Не НайтиВСпискеКлючевыхСлов(Директива) Тогда
|
||||
|
||||
ТекстОшибки = СтрШаблон("В файле '%1' ошибки в написании директивы в строке '%2': '%3'", ПутьКФайлуМодуля, Ит, СтрокаМодуля);
|
||||
Лог.Ошибка(ТекстОшибки);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаМодуля = Прав(СтрокаМодуля, СтрДлина(СтрокаМодуля) - 1);
|
||||
|
||||
МассивПодстрок = СтрРазделить(СтрокаМодуля, " ()", Ложь);
|
||||
|
||||
Для Каждого Директива Из МассивПодстрок Цикл
|
||||
|
||||
Если МассивКлючевыхСлов.Найти(Директива) = Неопределено Тогда
|
||||
|
||||
ТекстОшибки = СтрШаблон("В файле '%1' ошибка в написании директивы '%2' в строке '%3'", ПутьКФайлуМодуля, Директива, Ит);
|
||||
Лог.Ошибка(ТекстОшибки);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НайтиВСпискеКлючевыхСлов(Директива)
|
||||
Функция ПолучитьМассивДиректив()
|
||||
|
||||
МассивКлючевыхСлов = Новый Массив();
|
||||
|
||||
@ -133,7 +133,7 @@
|
||||
МассивКлючевыхСлов.Добавить("ИЛИ");
|
||||
МассивКлючевыхСлов.Добавить("НЕ");
|
||||
|
||||
Возврат Не МассивКлючевыхСлов.Найти(Директива) = Неопределено;
|
||||
Возврат МассивКлючевыхСлов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -9,4 +9,22 @@
|
||||
|
||||
#ИНАЧЕЕсли ТолстыйКлиентУправляемоеПриложениюю
|
||||
|
||||
#ИНАЧЕЕсли (ТолстыйКлиентУправляемоеПриложениюю и ТолстыйКлиентОбычноеПриложение)
|
||||
#ИНАЧЕЕсли (ТолстыйКлиентУправляемоеПриложениюю и ТолстыйКлиентОбычноеПриложение)
|
||||
|
||||
#Если (МобильноеПриложениеКлиент ИЛИ МобильноеПриложениеСервер Тогда)
|
||||
#ИначеЕсли (ТолстыйКлиентОбычноеПриложение ИЛИ НЕ ТолстыйКлиентУправляемоеПриложение)
|
||||
#Иначе
|
||||
#КонецЕсли
|
||||
|
||||
#Если НаКлиент ИЛИ НаСервер
|
||||
#КонецЕсли
|
||||
|
||||
|
||||
#Если Сервере ИЛИ НЕ Клиенте
|
||||
#КонецЕсли
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
&ВнешнееСоединение
|
||||
&ТонкийКлиент
|
||||
&ВебКлиент
|
||||
#КонецОбласти
|
@ -18,4 +18,8 @@
|
||||
|
||||
#Иначе
|
||||
|
||||
#КонецЕсли
|
||||
#КонецЕсли
|
||||
|
||||
Процедура КнопкаВыполнитьНажатие(Кнопка)
|
||||
// Вставить содержимое обработчика.
|
||||
КонецПроцедуры
|
Loading…
x
Reference in New Issue
Block a user