Почему я его написал, чем не устраивал Alt+Shift+F? А я просто захотел себе такой инструмент, мужик захотел - мужик сделал. Вы можете относиться к этому как к развлечению для ума.
Оформитель или bslpretty.
Оформитель представляет собой набор плагинов для парсера встроенного языка 1С и скрипт для запуска из командной строки bslpretty.os. Проект опубликован на GitHub, имеет открытую лицензию MIT.
В качестве киллер-фишки заявляется интеграция с ГИТ. Он может сравнить рабочий каталог репозитория с последним коммитом и оформить только измененные строки.
Что Оформитель умеет
- Заменять неправильно написанные ключевые слова на правильные. "если" меняет на "Если"
- Расставлять пробелы там где они нужны и удалять там где они не нужны
- Расставлять отступы. В том числе менять отступы пробелами на отступы символом табуляции
Грубо говоря, он исправляет код:
Для ц=1 по 100500 Цикл
Если ц >= 100500 Тогда
Сообщить("100500");
КонецЕсли;
КонецЦикла;
на код:
Для ц = 1 По 100500 Цикл
Если ц >= 100500 Тогда
Сообщить("100500");
КонецЕсли;
КонецЦикла;
На всякий случай подсвечу изменения с помощью программы WinMerge
Есть весьма спорный функционал выравнивания аргументов:
Код
Стр = новый Структура();
Стр.Вставить("Результат1", п);
Стр.Вставить("Резу", п1);
Стр.Вставить("Рез", п2);
Заменяет на код
Стр = новый Структура();
Стр.Вставить("Результат1", п);
Стр.Вставить("Резу", п1);
Стр.Вставить("Рез", п2);
Как воспользоваться оформителем кода
Вам понадобиться
- oscript и установленная для него библиотека osparser
- Если вы хотите использовать Интерактивный режим Оформителя - утилита diff (устанавливается вместе с git) или программа WinMerge
И так:
- Склонируйте или скачайте репозиторий bslpretty
- Откройте в текстовом редакторе файл src\bslpretty.os и посмотрите на функцию Настройки(). Убедитесь, что там правильные пути до утилиты Diff / WinMerge или отключите интерактивный режим. В остальном, надеюсь, там все понятно.
- Запустите командную строку windows и перейдите в каталог с корнем bslpretty. У меня так:
cd c:\git\bslpretty\
Оформитель имеет два режима работы. С каталогом исходного кода или с репозиторием git.
Запустите команду, думаю будет все понятно:
oscript src\bslpretty.os
bslpretty.os git путь_к_репозиторию [commit]
Оформляет измененные стройки по результату сравнения git diff [commit]
Оформление применяется только к измененным строкам в измененных файлах
bslpretty.os file путь_к_каталогу_с_файлами
Оформляет все файлы *.bsl и *.os в каталоге
Выполните команду
oscript src\bslpretty.os file test_data
Оформитель оформит файл test_data/МодульДляОформления.bsl, а в интерактивном режиме покажет изменения и спросит ваше мнение "Нужно ли применять исправления к файлу"?
Или отредактируйте файл test_data/МодульДляОформления.bsl. Измените буквально пару строк, чтобы git заметил изменения.
Запустите команду
oscript src\bslpretty.os git .
Оформитель оформит в файле только измененные строки, не трогая модуль целиком.
Заключение
bslpretty - довольно сырой инструмент, имеет список известных проблем, тем не менее он работает.
Ожидаемый эффект от внедрения:
- Единообразный код вне зависимости от среды разработки: Текстовый редактор, Конфигуратор, EDT
- Минимум "мусорных коммитов"
Надеюсь, моя работа стоила вашего внимания и вам было интересно. Я старался.