|
5 | 5 | Перем КомандыПлагина;
|
6 | 6 | Перем ВызватьОшибку;
|
7 | 7 | Перем ПрефиксЗадачи;
|
| 8 | +Перем ПаттернЗадачи; |
8 | 9 | Перем МинимальноеКоличествоЗадач;
|
9 | 10 | Перем МаксимальноеКоличествоЗадач;
|
10 | 11 | Перем ВыводитьПредставление;
|
| 12 | +Перем ИсправлятьКавычки; |
11 | 13 |
|
12 | 14 | #Область Интерфейс_плагина
|
13 | 15 |
|
|
84 | 86 | КлассРеализации.Опция("task-prefix", "", "[*check-comments] Префикс задачи.")
|
85 | 87 | .ВОкружении("GITSYNC_TASK_PREFIX")
|
86 | 88 | .Обязательный(Ложь);
|
| 89 | + |
| 90 | + КлассРеализации.Опция("task-pattern", "", "[*check-comments] Паттерн задачи.") |
| 91 | + .ВОкружении("GITSYNC_TASK_PATTERN") |
| 92 | + .Обязательный(Ложь); |
87 | 93 |
|
88 | 94 | КлассРеализации.Опция("min-task-count", 0, СтрШаблон("[*check-comments] Минимальное количество упоминаний задач"))
|
89 | 95 | .ТЧисло()
|
|
98 | 104 | .ВОкружении("GITSYNC_AUTHOR_PRESENTATION")
|
99 | 105 | .Обязательный(Ложь);
|
100 | 106 |
|
| 107 | + КлассРеализации.Опция("repair-quotes", Ложь, "[*check-comments] Флаг замены всех символов кавычек на корректные.") |
| 108 | + .Флаг() |
| 109 | + .ВОкружении("GITSYNC_REPAIR_QUOTES") |
| 110 | + .Обязательный(Ложь); |
101 | 111 | КонецПроцедуры
|
102 | 112 |
|
103 | 113 | Процедура ПриПолученииПараметров(ПараметрыКоманды) Экспорт
|
|
109 | 119 |
|
110 | 120 | ПрефиксЗадачи = ПараметрыКоманды.Параметр("task-prefix", "");
|
111 | 121 | Лог.Отладка("Получаю параметр <task-prefix> значение <%1>", ПрефиксЗадачи);
|
| 122 | + |
| 123 | + ПаттернЗадачи = ПараметрыКоманды.Параметр("task-pattern", ""); |
| 124 | + Лог.Отладка("Получаю параметр <task-pattern> значение <%1>", ПаттернЗадачи); |
112 | 125 |
|
113 | 126 | МинимальноеКоличествоЗадач = ПараметрыКоманды.Параметр("min-task-count", 0);
|
114 | 127 | Лог.Отладка("Получаю параметр <min-task-count> значение <%1>", МинимальноеКоличествоЗадач);
|
|
119 | 132 | ВыводитьПредставление = ПараметрыКоманды.Параметр("author-presentation", Ложь);
|
120 | 133 | Лог.Отладка("Получаю параметр <author-presentation> значение <%1>", ВыводитьПредставление);
|
121 | 134 |
|
| 135 | + ИсправлятьКавычки = Булево(ПараметрыКоманды.Параметр("repair-quotes", Ложь)); |
| 136 | + Лог.Отладка("Получаю параметр <repair-quotes> значение <%1>", ИсправлятьКавычки); |
| 137 | + |
122 | 138 | КонецПроцедуры
|
123 | 139 |
|
124 | 140 | Процедура ПередОбработкойВерсииХранилища(СтрокаВерсии, СледующаяВерсия) Экспорт
|
125 | 141 |
|
126 | 142 | ПроверитьЗаполненностьКомментария(СтрокаВерсии, СледующаяВерсия);
|
127 | 143 |
|
128 | 144 | ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия);
|
129 |
| - |
| 145 | + |
| 146 | + ИсправитьКавычки(СтрокаВерсии); |
| 147 | + |
130 | 148 | КонецПроцедуры
|
131 | 149 |
|
132 | 150 | Процедура ПроверитьЗаполненностьКомментария(СтрокаВерсии, СледующаяВерсия)
|
|
149 | 167 |
|
150 | 168 | Процедура ПроверитьКомментарийНаНаличиеУпоминанийЗадач(СтрокаВерсии, СледующаяВерсия)
|
151 | 169 |
|
152 |
| - Если ПустаяСтрока(ПрефиксЗадачи) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда |
| 170 | + Если (ПустаяСтрока(ПрефиксЗадачи) и ПустаяСтрока(ПаттернЗадачи)) Или ПустаяСтрока(СтрокаВерсии.Комментарий) Тогда |
153 | 171 | Возврат;
|
154 | 172 | КонецЕсли;
|
155 | 173 |
|
156 |
| - РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d")); |
| 174 | + Если НЕ ПустаяСтрока(ПаттернЗадачи) Тогда |
| 175 | + РВ = Новый РегулярноеВыражение(ПаттернЗадачи); |
| 176 | + ИспользуемыйШаблон = "соответствующих паттерну """ + ПаттернЗадачи + """"; |
| 177 | + Иначе |
| 178 | + РВ = Новый РегулярноеВыражение(СтрШаблон("%1-%2", ПрефиксЗадачи, "\d")); |
| 179 | + ИспользуемыйШаблон = ПрефиксЗадачи; |
| 180 | + КонецЕсли; |
| 181 | + |
157 | 182 | Совпадения = РВ.НайтиСовпадения(СтрокаВерсии.Комментарий);
|
158 | 183 | КоличествоВхождений = Совпадения.количество();
|
159 | 184 |
|
160 | 185 | Если КоличествоВхождений < МинимальноеКоличествоЗадач Тогда
|
161 | 186 | СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) меньше требуемого (%5)",
|
162 | 187 | СледующаяВерсия,
|
163 |
| - Автор(СтрокаВерсии), ПрефиксЗадачи, КоличествоВхождений, МинимальноеКоличествоЗадач); |
| 188 | + Автор(СтрокаВерсии), ИспользуемыйШаблон, КоличествоВхождений, МинимальноеКоличествоЗадач); |
164 | 189 |
|
165 | 190 | Лог.КритичнаяОшибка(СтрокаОшибки);
|
166 | 191 |
|
|
175 | 200 | Если КоличествоВхождений > МаксимальноеКоличествоЗадач Тогда
|
176 | 201 | СтрокаОшибки = СтрШаблон("Версия <%1> от автора <%2>: количество упоминаний задач %3 (%4) больше требуемого (%5)",
|
177 | 202 | СледующаяВерсия,
|
178 |
| - Автор(СтрокаВерсии), ПрефиксЗадачи, КоличествоВхождений, МаксимальноеКоличествоЗадач); |
| 203 | + Автор(СтрокаВерсии), ИспользуемыйШаблон, КоличествоВхождений, МаксимальноеКоличествоЗадач); |
179 | 204 |
|
180 | 205 | Лог.КритичнаяОшибка(СтрокаОшибки);
|
181 | 206 |
|
|
188 | 213 | КонецЕсли;
|
189 | 214 |
|
190 | 215 | КонецПроцедуры
|
| 216 | + |
| 217 | +Процедура ИсправитьКавычки(СтрокаВерсии) |
| 218 | + |
| 219 | + Лог.Отладка("Исправлять кавычки в комментарии: <%1>", ИсправлятьКавычки); |
| 220 | + |
| 221 | + Если Не ИсправлятьКавычки Тогда |
| 222 | + Возврат; |
| 223 | + КонецЕсли; |
| 224 | + |
| 225 | + ХорошаяКавычка = """"; |
| 226 | + |
| 227 | + ПлохиеКавычки = Новый Массив; |
| 228 | + ПлохиеКавычки.Добавить(Символ(8220)); |
| 229 | + ПлохиеКавычки.Добавить(Символ(8221)); |
| 230 | + ПлохиеКавычки.Добавить(Символ(171)); |
| 231 | + ПлохиеКавычки.Добавить(Символ(187)); |
| 232 | + |
| 233 | + Для Каждого ПлохаяКавычка Из ПлохиеКавычки Цикл |
| 234 | + СтрокаВерсии.Комментарий = СтрЗаменить(СтрокаВерсии.Комментарий, ПлохаяКавычка, ХорошаяКавычка); |
| 235 | + КонецЦикла; |
| 236 | + |
| 237 | +КонецПроцедуры |
| 238 | + |
191 | 239 | #КонецОбласти
|
192 | 240 |
|
193 | 241 | #Область СлужебныеПроцедурыИФункции
|
|
0 commit comments