Раздел 16. Инструмент Sonar-bsl-toolkit
Назначение:
-
показ «AST» по выбранному модулю,
-
отладка «XPath-выражений» для правил (https://ru.wikipedia.org/wiki/XPath).
Замечания создаются на основании значений, возвращаемых выражением XPath. Если выражение XPath возвращает:
-
один или несколько узлов AST, тогда создается замечание на строку кода с заданным сообщением для каждого узла,
-
булево и возвращаемое значение равно "Истина", тогда создается замечание с заданным сообщением на файл,
-
что угодно другое, тогда замечание не создается.
Использование:
Для работы приложения необходимо, чтобы на машине была установлена JRE 8.
Запуск приложения осуществляется либо вручную, либо из командной строки
java -jar sonar-bsl-toolkit-1.0.jar <путь к sonar-bsl-plugin.jar>
Параметр <путь к sonar-bsl-plugin.jar>
не является обязательным, его можно не указывать.
На вкладке «Configurations» в поле «Path to Sonar-bsl-plugin.jar» указываем путь к плагину, если он не был указан при запуске в командной строке
Кнопкой «Open source code» выбираем проверяемый исходный модуль с расширением “bsl”
В правом окне будет сформировано синтаксическое дерево AST
Каждая элемент дерева, содержит поля:
- Имя узла AST (Например, METHOD_DEFINITION)
- tokenValue – значение элемента
- tokenLine – номер строки
- tokenColumn – номер колонки, с которой начинается элемент, в текущей строке
Используя выделения программного кода слева, а также дерева справа можно производить перемещение по дереву.
При лексической ошибке в теле проверяемого модуля (например, неверном использовании инструкции препроцессора ), разбор синтаксического дерева может падать с ошибкой, в этом случае требуется произвести срочный рефакторинг кода и устранить причину вызывающую проблему.
Для разбора модулей, содержащих язык запросов, необходимо на вкладке «Configuration» в поле «Use Query parse» указать значение «Yes»
Использование собственных правил XPath
«SonarQube 1C (BSL) Plugin» поддерживает использование XPath-запросов для анализа программного кода. Это позволяет конечному разработчику создавать простые правила проверки, специфичные для эксплуатирующей компании, например правильность оформления комментариев.
Для отладки написанных правил используйте инструмент «Sonar-bsl-toolkit».
К примеру, XPath-запрос вида:
//FUNCTION_NAME[@tokenLine=41]
Вернёт имя функции на 41 строке
После написания правила и его отладки, вы можете добавить его на сервер SonarQube. Для этого:
- Войдите в систему как администратор профиля качества,
- Перейти на страницу правил,
- Выберите язык «1C (BSL)», для которого вы хотите создать правило XPath,
- Отметьте критерий «Шаблон» и выберите «Показать только шаблоны»,
- Найдите шаблон правила XPath:
- Щелкните по кнопке «Создать», чтобы создать новый экземпляр правила XPath,
Отобразится форма:
- Вставьте запрос XPath (он должен соответствовать XPath 1.0), который вы написали и протестировали с помощью набора инструмента «Sonar-bsl-toolkit»,
- Как только ваше правило будет добавлено в «SonarQube», активируйте его в профиле качества и запустите анализ.