Phoenix BSL для 1С
Описание
Проект позволяет анализировать и форматировать код 1С в конфигураторе. Инструмент основан на проекте BSL LS.
Установка
Установить приложение можно двумя способами:
- Через msi из релизов или сборок GitHub Action
- Запустить отдельно jar файл (нужно подготовить каталоги, почти во всех случаях это нужно для тестирования данного проекта).
Установка msi
- Качаем из релизов файл msi.
- Устанавливаем на компьютере.
- Первый раз запускаем под администратором (иначе не работает обработка нажатий кнопок, пока проблема решается).
Запуск через jar
- На компьютере должна быть установлена Java не ниже 11 версии. Если нет - устанавливаем.
- Создаем новый каталог, из релизов копируем файл jar.
- В каталог создаем каталог app, извлекаем в него архив bsl-language-server_win.zip из релизов проекта BSL LS.
- Запускаем jar файл из консоли:
java -jar phoenix-{version}.jar
где {version} - версия приложения.
Например:
java -jar phoenix-0.3.3.jar
Как пользоваться
После запуска приложения в конфигураторе нажимаем в модуле с кодом:
CTRL
+I
- анализ кода на замечания.CTRL
+K
- форматирование кода.CTRL
+J
- "исправить все в модуле" - автоматическое исправление определенных замечаний (см. "Быстрые исправления").
Так же стоит отметить, что анализ и форматирование работает по выделенному коду.
Настройки
Настроки приложения размещены: Трей приложения -> Настройки. Доступно следующее:
- Открыть каталог с логами приложения. Логирование ведется всегда. История сохраняется за последние 7 дней.
Использовать BSL LS jar
- определяет, будет ли запущен BSL LS через java. По умолчанию выключено.Путь к JAVA
- путь к Java. Если значениеjava
- то берется из PATH системы. Для запуска приложения требуется Java не ниже версии 11.Путь к BSL LS
- путь к приложению BSL LS. Либо это путь к jar файлу (если выключена опцияИспользовать BSL LS jar
), либо это путь к файлуbsl-language-server.exe
.Свои настройки BSL LS
- признак использования своих настроек для BSL LS.Путь к настройкам BSL LS
- путь к настройкам BSL LS. По умолчанию.bsl-language-server.json
. Для работы полного пакета проверок требуется указать в конфигурационном файле путь к выгруженным метаданным.Группировать замечания
- при включенном флаге замечания группируются по их типу.
Поддержка SonarLint
Плагины поддержки 1С в SonarQube:
- 1C (BSL) Community Plugin (пока не поддерживается)
- 1C (BSL) Plugin от SilverBulleters с версии 1.33
Есть возможность, используя SonarLint, проанализировать код 1С с помощью плагина 1С на сервере SonarQube. Для этого нужно добавить в конфигурационный файл приложения (%USER_NAME%\phoenixbsl\Configuration.json
) настройку проекта в projects
:
{
// ...
"projects": [
{
"name": "local",
"basePath": "C://Users//otymko//phoenixbsl//projects//context-collector//",
"useSonarLint": true,
"projectKey": "my-project1",
"serverUrl": "http://localhost:9000",
"serverId": "0000001",
"token": "58b7eaaa76be14d94e470ab28376f30f6cc95f55"
}
]
}
где свойства:
name
- имя проекта внутри приложенияbasePath
- путь к рабочему каталогу проекта, в дальнейшем каталог должен содержать исходники конфигурации в формате xml. Есть каталог не существует, то приложение его создаст.useSonarLint
- опция для включения SonarLint. Работает при правильно заполненных свойствах:projectKey
,serverUrl
,token
. СвойствоserverId
пока не используется.projectKey
- ключ проекта в SonarQubeserverUrl
- адрес сервера SonarQube, например: https://open.checkbsl.org/serverId
- идентификатор сервера SonarQube, пока не используется.token
- токен безопасности, для подключения к SonarQube. Генерируется из профиля пользователя.
После заполнения проекта выше, в приложении будет доступен выбор проекта (в главном окне). Для удобства замечания разделены на:
- bsl-ls - замечания, полученные с помощью BSL LS
- sonarlint - замечания, полученные с помощью плагинов 1С для SonarQube
Быстрые исправления
С помощью "Исправить все в модуле" можно автоматически исправить следующие замечания:
- Каноническое написание ключевых слов
CanonicalSpellingKeywords
- Пробел в начале комментария
SpaceAtStartComment
- Выражение должно заканчиваться символом ";"
SemicolonPresence
Разработка
Разработка ведется по git flow. В разработке используется платформа JAVA не ниже 11 версии.
Развитие
Идеи, фидбек, баги по проекту кидаем в раздел Досад Issues.
P.S. Зачем это, если есть Снегопат, Turboconf, SmartConfigurator и т.п.? Ответ -> использование языка Java, открытый исходный код, прокачка в разработке на Java.