Skip to content

Commit 6a610aa

Browse files
Поддержка 10.3 (#13)
* нов: #10 Поддержка сонара 10.3+ * Актуализация настроек bsl-ls * Форматирование табами * нов: Поддержка 10.3 * улучш: Подготовка файла настроек для 10.3 * улучш: Применение файла настроек для 10.3 * улучш: Переменная окружения и значок --------- Co-authored-by: Андрей Данилов <a.danilov@standart1c.ru>
1 parent b59a80d commit 6a610aa

19 files changed

+4283
-1023
lines changed

.bsl-language-server.json

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,31 @@
11
{
2-
"diagnosticLanguage": "ru",
2+
"$schema": "https://1c-syntax.github.io/bsl-language-server/configuration/schema.json",
3+
"language": "ru",
34
"diagnostics": {
4-
"LineLength": {
5-
"maxLineLength": 140
5+
"computeTrigger": "onType",
6+
"parameters": {
7+
"LineLength": {
8+
"maxLineLength": 140
9+
},
10+
"TernaryOperatorUsage": true,
11+
"FunctionNameStartsWithGet": true,
12+
"TooManyReturns": true,
13+
"UsingLikeInQuery": true,
14+
"CodeAfterAsyncCall": true,
15+
"FieldsFromJoinsWithoutIsNull": true,
16+
"MissingTempStorageDeletion": true,
17+
"MagicNumber": {
18+
"authorizedNumbers": "-1,0,1,100"
19+
},
20+
"IncorrectLineBreak": {
21+
"checkFirstSymbol": true,
22+
"listOfIncorrectFirstSymbol": "\\)|;|\\);",
23+
"checkLastSymbol": true,
24+
"listOfIncorrectLastSymbol": "ИЛИ|И|OR|AND|\\+|-|/|%|\\*"
25+
},
26+
"UsingServiceTag": {
27+
"serviceTags": "todo|fixme|!!|mrg|@(?!strict-types|skip-check)|отладка|debug|для\\s*отладки|(\\{\\{|\\}\\})КОНСТРУКТОР_|(\\{\\{|\\}\\})MRG|Вставить\\s*содержимое\\s*обработчика|Paste\\s*handler\\s*content|Insert\\s*handler\\s*code|Insert\\s*handler\\s*content|Insert\\s*handler\\s*contents"
28+
}
629
}
730
}
831
}

README.md

Lines changed: 60 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Sonar Transform External Bsl Issues
22

3+
[![OpenYellow](https://img.shields.io/endpoint?url=https://openyellow.neocities.org/badges/2/230765834.json)](https://openyellow.notion.site/openyellow/24727888daa641af95514b46bee4d6f2?p=1faefbc7324e4d9abfe5cf63902878a4&amp;pm=s)
4+
35
Экспорт диагностик 1С: EDT для SonarQube 1C (BSL) Community Plugin.
46
Трансформация диагностик: изменение параметров, удаление файлов на поддержке, удаление неактуальных диагностик.
57
Получение версии конфигурации.
@@ -10,18 +12,24 @@
1012

1113
```bat
1214
Команда: c, convert
13-
Конвертировать результат EDT в json для SonarQube 1C (BSL) Community Plugin
15+
Конвертировать результат проверки проекта 1С:EDT из .tsv-файл в выбранный формат
1416
1517
Строка запуска: stebi c [ОПЦИИ] EDT_VALIDATION_RESULT EDT_VALIDATION_JSON SRC
1618
1719
Аргументы:
1820
EDT_VALIDATION_RESULT Путь к файлу с результатом проверки edt. Например ./edt-result.out (env $EDT_VALIDATION_RESULT)
1921
EDT_VALIDATION_JSON Путь к файлу результату. Например ./edt-json.json (env $EDT_VALIDATION_JSON)
20-
SRC Путь к каталогу с исходниками. Например ./src (env $SRC)
22+
SRC Путь к каталогам с исходниками. Можно указать несколько, если результат проверки содержит несколько проектов.
23+
Пример для одного проекта: `project/src`.
24+
Пример для несколькоих проектов `project1/src, project2/src` (env $SRC)
2125
2226
Опции:
2327
-e, --ObjectErrors Ошибки объектов назначать на первую строку модуля формы/объекта
2428
-r, --UseRelativePaths В файл результата записывать относительные пути
29+
-f, --Format Формат отчета (env $STEBI_REPORT_FORMAT) (по умолчанию Generic_Issue)
30+
Generic_Issue: Формат Generic issue для SonarQube версии 10.2-. Подробнее: https://docs.sonarsource.com/sonarqube/10.2/analyzing-source-code/importing-external-issues/generic-issue-import-format/
31+
Generic_Issue_10_3: Формат Generic issue для SonarQube версии 10.3+. Подробнее: https://docs.sonarsource.com/sonarqube/10.3/analyzing-source-code/importing-external-issues/generic-issue-import-format/
32+
-d, --debug Режим отладки
2533
```
2634

2735
## Пример настроек проекта Сонара
@@ -45,8 +53,23 @@ sonar.externalIssuesReportPaths=edt-json.json,acc-generic-issue.json,bsl-generic
4553
### Файл настроек
4654

4755
Для создания файла используется команда `p` или `prepare`.
48-
`GENERIC_ISSUE_SETTINGS_JSON` - Путь к файлу настроек. Если файл существует, то он будет обновлен.
49-
`GENERIC_ISSUE_JSON` - Путь к файлам generic-issue.json, на основе которых будет создан файл настроек.
56+
57+
```bat
58+
Команда: p, prepare
59+
Подготовить файл настроек
60+
61+
Строка запуска: stebi p [ОПЦИИ] GENERIC_ISSUE_SETTINGS_JSON GENERIC_ISSUE_JSON
62+
63+
Аргументы:
64+
GENERIC_ISSUE_SETTINGS_JSON Путь к файлу настроек. Если файл существует, то он будет обновлен. Например ./generic-issue-settings.json (env $GENERIC_ISSUE_SETTINGS_JSON)
65+
GENERIC_ISSUE_JSON Путь к файлам generic-issue.json, на основе которых будет создан файл настроек. Например ./edt-json.json,./acc-generic-issue.json (env $GENERIC_ISSUE_JSON)
66+
67+
Опции:
68+
-f, --Format Формат отчета (env $STEBI_REPORT_FORMAT) (по умолчанию Generic_Issue)
69+
Generic_Issue: Формат Generic issue для SonarQube версии 10.2-. Подробнее: https://docs.sonarsource.com/sonarqube/10.2/analyzing-source-code/importing-external-issues/generic-issue-import-format/
70+
Generic_Issue_10_3: Формат Generic issue для SonarQube версии 10.3+. Подробнее: https://docs.sonarsource.com/sonarqube/10.3/analyzing-source-code/importing-external-issues/generic-issue-import-format/
71+
-d, --debug Режим отладки
72+
```
5073

5174
Пример команды `stebi prepare ./test/settigs.json ./test/acc-generic-issue.json,./test/edt-json.json`
5275

@@ -78,16 +101,30 @@ sonar.externalIssuesReportPaths=edt-json.json,acc-generic-issue.json,bsl-generic
78101

79102
Для применения файла настроек к файлам используется команда `t` или `transform`.
80103

81-
Аргумент `GENERIC_ISSUE_JSON` - путь к отчетам через запятую. Может быть задан через переменную окружения.
104+
```bat
105+
Команда: t, transform
106+
Применить файл настроек к generic-issue.json
82107
83-
Опция `s settings` - путь к файлу настроек. Может быть задан через переменную окружения `GENERIC_ISSUE_SETTINGS_JSON`.
108+
Строка запуска: stebi t [ОПЦИИ] GENERIC_ISSUE_JSON
84109
85-
Опция `src` - путь к каталогу исходных файлов. Используется для получения информации о поддержке.
110+
Аргументы:
111+
GENERIC_ISSUE_JSON Путь к файлам generic-issue.json, на основе которых будет создан файл настроек. Например ./edt-json.json,./acc-generic-issue.json (env $GENERIC_ISSUE_JSON)
86112
87-
Опция `r remove_support` - уровень удаляемой поддержки.
88-
0 - удалить файлы на замке,
89-
1 - удалить файлы на замке и на поддержке
90-
2 - удалить файлы на замке, на поддержке и снятые с поддержки
113+
Опции:
114+
-s, --settings Путь к файлу настроек. Например -s=./generic-issue-settings.json (env $GENERIC_ISSUE_SETTINGS_JSON)
115+
--src Путь к каталогу с исходниками. Например -src=./src (env $SRC)
116+
-r, --remove_support Удаляет из отчетов файлы на поддержке. Например -r=0
117+
0 - удалить файлы на замке,
118+
1 - удалить файлы на замке и на поддержке
119+
2 - удалить файлы на замке, на поддержке и снятые с поддержки (env $GENERIC_ISSUE_REMOVE_SUPPORT)
120+
--filter_by_subsystem Фильтр по подсистеме в формате [+/-]Подсистема1.Подсистема2[*][^].
121+
Например, исключение подсистем СтандартныеПодсистемы и ПодключаемоеОборудование и всех дочерних объектов
122+
'-СтандартныеПодсистемы*, -ПодключаемоеОборудование*' (env $GENERIC_ISSUE_FILTER_BY_SUBSYSTEM)
123+
-f, --Format Формат отчета (env $STEBI_REPORT_FORMAT) (по умолчанию Generic_Issue)
124+
Generic_Issue: Формат Generic issue для SonarQube версии 10.2-. Подробнее: https://docs.sonarsource.com/sonarqube/10.2/analyzing-source-code/importing-external-issues/generic-issue-import-format/
125+
Generic_Issue_10_3: Формат Generic issue для SonarQube версии 10.3+. Подробнее: https://docs.sonarsource.com/sonarqube/10.3/analyzing-source-code/importing-external-issues/generic-issue-import-format/
126+
-d, --debug Режим отладки
127+
```
91128

92129
Пример команды:
93130

@@ -99,4 +136,16 @@ sonar.externalIssuesReportPaths=edt-json.json,acc-generic-issue.json,bsl-generic
99136
@call stebi convert "%1temp\edt-result.out" "%1edt-json.json"
100137
101138
@call stebi transform -r=1
139+
```
140+
141+
## Вывод версии конфигурации
142+
143+
```bat
144+
Команда: g, get_version
145+
Выводит версию конфигурации
146+
147+
Строка запуска: stebi g [ОПЦИИ]
148+
149+
Опции:
150+
--src Путь к каталогу с исходниками. Например --src=./src (env $SRC)
102151
```

dict/ruleID_edt.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,44 @@
44
"com.e1c.v8codestyle": "style"
55
},
66
"rulename": {
7+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-deprecated-method": "Метод устарел",
8+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-dynamic-feature-access": "Метод устарел",
9+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-execute-statement": "Неподдерживаемый оператор",
10+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-expression-type": "Нельзя передавать объект между клиентом и сервером",
11+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-for-each-statetement-collection": "Возможно, выражение не является объектом коллекции",
12+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-form-attribute-properaty-assign": "Нельзя присваивать атрибуту формы значение типа",
13+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-if-preprocessor-part-environments": "Код никогда не будет скомпилирован",
14+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-method-environments-for-emty": "Окружение не установленно",
15+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-method-for-statements-after-return": "Возможно, недостижимое выражение",
16+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-method-names-are-unique": "Процедура или функция с таким именем уже определена",
17+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-returning-type-for-environment": "Возвращает тип , который имеет отличное окружение от контекста вызова",
18+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-simple-statement": "Неизвестный оператор",
19+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-static-feature-access-for-unknown-left-part": "Свойство (метод) объекта не обнаружено",
20+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-static-feature-access": "Метод устарел",
21+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-string-literal": "Возможно, строковый литерал содержит ошибку",
22+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-the-same-global-element-name-for-module-variable": "Элемент с таким именем уже есть в глобальном контексте",
23+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-type-environments": "Тип неопределен",
24+
"com._1c.g5.v8.dt.bsl:bsl-legacy-check-type-in-operator-new": "Объект данного тип не может быть создан через оператор 'Новый'",
25+
"com._1c.g5.v8.dt.form:form-legacy-check-command-handler": "Для команды формы назначен обработчик , но метод с таким именем отсутствует в модуле формы",
26+
"com._1c.g5.v8.dt.form:form-legacy-check-event-handler": "Для события элемента формы назначен обработчик, но метод с таким именем отсутствует в модуле формы",
27+
"com._1c.g5.v8.dt.md:md-legacy-check-choice-parameter-link": "Поле связи параметра выбора не указано или некорректно",
28+
"com._1c.g5.v8.dt.md:md-legacy-check-missing-assignments": "Длина имени объекта должна быть менее 80 символов",
29+
"com._1c.g5.v8.dt.md:md-legacy-check-subsystem": "Не рекомендуется создавать подсистемы глубиной вложенности более трех",
30+
"com._1c.g5.v8.dt.md:md-legacy-check-type-description-types": "Этот тип не может входить в состав составного типа",
31+
"com._1c.g5.v8.dt.md:md-legacy-check-unique-md-object-name": "Дублирование объекта метаданных",
732
"com.e1c.dt.check.form:form-data-path": "Путь к данным объекта формы ссылается на существующий объект в каждом сегменте пути",
833
"com.e1c.dt.check.form:form-invalid-item-id": "Правильность идентификаторов элементов формы",
934
"com.e1c.dt.check.form:form-named-element-name": "Имя именованного элемента формы является валидным именем",
1035
"com.e1c.dt.check.md:configuration-compatibility-mode": "Режим совместимости конфигурации является корректным",
1136
"com.e1c.dt.check.md:configuration-mobile-application-urls": "Базовые URL навигационных ссылок конфигурации мобильного приложения является корректными",
1237
"com.e1c.dt.check.md:configuration-used-mobile-application-functionalities": "Используемая функциональность конфигурации мобильного приложения является корректной",
1338
"com.e1c.dt.check.md:md-reference-intergrity": "Проверка целостности ссылок объектов метаданных",
39+
"com.e1c.g5.dt.core.legacy:form-legacy-emf-check": "The value must be greater than zero",
40+
"com.e1c.g5.dt.core.legacy:md-legacy-emf-check": "Некорректное значение свойства",
1441
"com.e1c.g5.v8.dt.bsl.check:module-empty-method": "Пустой метод",
1542
"com.e1c.g5.v8.dt.bsl.check:module-unused-local-variable": "Переменная не используется или не проинициализирована",
1643
"com.e1c.g5.v8.dt.bsl.check:module-unused-method": "Неиспользуемый метод",
44+
"com.e1c.g5.v8.dt.form.check:dcs-ql-hub": "Синтаксическая ошибка. Недопустимая лексема в данном контексте",
1745
"com.e1c.v8codestyle.bsl:begin-transaction": "После начала транзакции отсуствует блок Попытка-Исключение",
1846
"com.e1c.v8codestyle.bsl:bsl-canonical-pragma": "Аннотация написана канонически",
1947
"com.e1c.v8codestyle.bsl:bsl-nstr-string-literal-format": "НСтр формат строкового литерала",
@@ -95,6 +123,7 @@
95123
"com.e1c.v8codestyle.bsl:statement-type-change": "Утверждение меняет тип",
96124
"com.e1c.v8codestyle.bsl:structure-consructor-too-many-keys": "Конструктор структуры содержит слишком много ключей",
97125
"com.e1c.v8codestyle.bsl:structure-consructor-value-type": "Типизация значений в конструкторе структуры",
126+
"com.e1c.v8codestyle.bsl:structure-key-modification": "Модификация ключа структуры вне функции-конструктора",
98127
"com.e1c.v8codestyle.bsl:typed-value-adding-to-untyped-collection": "Добавление типизированного значения в не типизированную коллекцию",
99128
"com.e1c.v8codestyle.bsl:unknown-form-parameter-access": "Обращение к несуществующему параметру формы",
100129
"com.e1c.v8codestyle.bsl:use-goto-operator": "Используется оператор Перейти",
@@ -123,6 +152,7 @@
123152
"com.e1c.v8codestyle.md:common-module-type": "Общий модуль имеет некорректный тип",
124153
"com.e1c.v8codestyle.md:configuration-data-lock-mode": "Режим блокировки данных конфигурации",
125154
"com.e1c.v8codestyle.md:db-object-anyref-type": "Реквизиты составного типа, такие как ЛюбаяСсылка и аналогичные",
155+
"com.e1c.v8codestyle.md:db-object-max-number-length": "Превышена максимальная длина числовых данных (31 знак)",
126156
"com.e1c.v8codestyle.md:db-object-ref-non-ref-type": "Реквизиты составного типа",
127157
"com.e1c.v8codestyle.md:document-post-in-privileged-mode": "В документе, предполагающем проведение, не установлен флаг «Привилегированный режим при проведении / отмене проведения»",
128158
"com.e1c.v8codestyle.md:extension-md-object-prefix": "У имени объекта отсутствует префикс расширения",

0 commit comments

Comments
 (0)