Удаление концевых пробелов в модулях в 1C:EDT
Зачем ограничивать область очистки
Представим, что команда использует префикс `demo_` для собственных объектов.
Разработчик меняет такой объект и хочет, чтобы при сохранении из его модуля удалялись пробелы и табуляции в конце строк. При этом аналогичная обработка остальных объектов не требуется.
Нужен простой сценарий:
- свой объект — очищаем;
- остальные объекты — оставляем без изменений;
- правило отбора задаём один раз в настройках.
Именно такое поведение реализовано в плагине.
Как работает отбор файлов
В настройках задаётся строка, например:
demo_
При сохранении плагин проверяет полный путь файла. Если путь содержит указанную строку, выполняется очистка.
Примеры:
`…/Catalogs/demo_Оборудование/Ext/ObjectModule.bsl` | Очистка выполняется |
`…/Documents/demo_Заявка/Ext/ObjectModule.bsl` | Очистка выполняется |
`…/Catalogs/Контрагенты/Ext/ObjectModule.bsl` | Очистка не выполняется |
Здесь есть важная особенность: технически проверяется вхождение подстроки в полный путь, а не начало имени самого файла.
Это удобно для модулей, у которых имя файла одинаковое — например, `ObjectModule.bsl`, — а префикс объекта находится в имени родительского каталога.
Поэтому пользователь задаёт привычный префикс объектов, а плагин использует его как признак в пути.
Что изменяется в модуле
Плагин удаляет пробелы и символы табуляции в конце строк.
Плагин не предназначен для комплексного форматирования кода: задача ограничена удалением хвостовых пробелов и табуляций.
Настройка
После установки откройте:
Окно → Параметры → EDT Whitespace Trimmer
В поле «Подстрока в пути файла» укажите свой признак:
demo_
Примените изменения. Новое значение будет использоваться при следующем сохранении — перезапускать EDT для изменения фильтра не требуется.
Особенности настройки:
- регистр учитывается;
- проверяется весь путь файла;
- пустое значение или строка только из пробелов отключает очистку;
- настройка действует в текущей рабочей области EDT, а не отдельно для каждого проекта.
Перед первым использованием задайте префикс, принятый именно в вашем проекте.
Установка
Плагин устанавливается через стандартный мастер EDT:
Справка → Установить новое ПО… → Добавить…
Адрес сайта обновлений:
Далее:
1. Выберите категорию `EDT Tools`.
2. Отметьте `EDT Whitespace Trimmer`.
3. Завершите установку.
4. Перезапустите EDT.
5. Укажите свой фильтр в настройках плагина.
Если сайт не появился в списке доступного ПО, в нашей проверке помогла перезагрузка записи репозитория:
Окно → Параметры
→ Установка/обновление → Доступные сайты ПО
→ Выбрать сайт → Перезагрузить / Reload
Ограничения, которые стоит учитывать
Текущий фильтр намеренно простой: одна подстрока, без регулярных выражений и набора масок.
Из этого следует важное ограничение. Если `demo_` встретится не в имени объекта, а в другой части пути, файл тоже пройдёт проверку. Например, каталог проекта с таким фрагментом может расширить область обработки.
Поэтому выбирайте достаточно характерный признак и перед повседневным использованием проверьте два случая:
1. Модуль объекта с нужным префиксом — хвостовые пробелы должны удалиться после сохранения.
2. Модуль без этого признака в пути — содержимое не должно очищаться плагином.
Решение рассчитано на сценарий, где принадлежность объектов команде уже отражена в их именовании. Если такой договорённости в проекте нет, отбор по одной подстроке может оказаться недостаточным.
Когда такой подход полезен
Основной сценарий — выборочная доработка конфигурации, в которой собственные объекты выделены общим префиксом.
Вместо глобальной очистки разработчик получает точечное правило: удалять хвостовые пробелы при обычном сохранении, но только в выбранной области проекта. Это позволяет вводить автоматическую очистку постепенно, не распространяя её сразу на все модули.
Исходный код проекта: https://github.com/krasturist/edt-whitespacer.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.