From a009b650f942dac06f14f2399eb0b17f3e767203 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 02:16:15 +0000 Subject: [PATCH 1/5] Bump org.sonarqube from 5.0.0.4638 to 5.1.0.4882 Bumps org.sonarqube from 5.0.0.4638 to 5.1.0.4882. --- updated-dependencies: - dependency-name: org.sonarqube dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 48dea54..294d09f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { jacoco java `maven-publish` - id("org.sonarqube") version "5.0.0.4638" + id("org.sonarqube") version "5.1.0.4882" id("org.cadixdev.licenser") version "0.6.1" id("com.github.johnrengelman.shadow") version ("7.0.0") id("com.github.ben-manes.versions") version "0.51.0" From 1972319e6534ef0c9d2b93d68272fef98a137615 Mon Sep 17 00:00:00 2001 From: Alexey Sosnoviy Date: Tue, 2 Jul 2024 20:46:01 +0300 Subject: [PATCH 2/5] subsystemFilter --- .../bsl/sonar/BSLCommunityProperties.java | 16 ++++++++++++++++ .../_1c_syntax/bsl/sonar/BSLCoreSensor.java | 13 +++++++++++++ .../org/sonar/l10n/communitybsl.properties | 4 ++++ .../org/sonar/l10n/communitybsl_ru.properties | 4 ++++ .../_1c_syntax/bsl/sonar/BSLPluginTest.java | 2 +- 5 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCommunityProperties.java b/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCommunityProperties.java index a759cd7..26c8521 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCommunityProperties.java +++ b/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCommunityProperties.java @@ -41,6 +41,8 @@ public final class BSLCommunityProperties { public static final String LANG_SERVER_CONFIGURATION_PATH_KEY = "sonar.bsl.languageserver.configurationPath"; public static final String LANG_SERVER_OVERRIDE_CONFIGURATION_KEY = "sonar.bsl.languageserver.overrideConfiguration"; public static final String LANG_SERVER_REPORT_PATH_KEY = "sonar.bsl.languageserver.reportPaths"; + public static final String LANG_SERVER_SUBSYSTEM_FILTER_INCLUDE_KEY = "sonar.bsl.languageserver.subsystemsFilter.include"; + public static final String LANG_SERVER_SUBSYSTEM_FILTER_EXCLUDE_KEY = "sonar.bsl.languageserver.subsystemsFilter.exclude"; public static final String BSL_FILE_EXTENSIONS_KEY = "sonar.bsl.file.suffixes"; public static final Boolean LANG_SERVER_ENABLED_DEFAULT_VALUE = Boolean.TRUE; @@ -96,6 +98,20 @@ public static List getProperties() { .onQualifiers(Qualifiers.PROJECT) .build(), PropertyDefinitionUtils.newPropertyBuilderBSL(4, + LANG_SERVER_SUBSYSTEM_FILTER_INCLUDE_KEY, + "subsystemfilter.include", + "") + .onQualifiers(Qualifiers.PROJECT) + .multiValues(true) + .build(), + PropertyDefinitionUtils.newPropertyBuilderBSL(5, + LANG_SERVER_SUBSYSTEM_FILTER_EXCLUDE_KEY, + "subsystemfilter.exclude", + "") + .onQualifiers(Qualifiers.PROJECT) + .multiValues(true) + .build(), + PropertyDefinitionUtils.newPropertyBuilderBSL(7, LANG_SERVER_CONFIGURATION_PATH_KEY, "enabled.configurationPath", LANG_SERVER_CONFIGURATION_PATH_DEFAULT_VALUE) diff --git a/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCoreSensor.java b/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCoreSensor.java index 79a14d4..7688ab6 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCoreSensor.java +++ b/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCoreSensor.java @@ -328,6 +328,19 @@ private LanguageServerConfiguration getLanguageServerConfiguration() { configuration.getDiagnosticsOptions().setSkipSupport(skipSupport); + + Set includeSubsystems = new HashSet<>(); + Collections.addAll(includeSubsystems, context.config() + .getStringArray(BSLCommunityProperties.LANG_SERVER_SUBSYSTEM_FILTER_INCLUDE_KEY)); + + configuration.getDiagnosticsOptions().getSubsystemsFilter().setInclude(includeSubsystems); + + Set excludeSubsystems = new HashSet<>(); + Collections.addAll(excludeSubsystems, context.config() + .getStringArray(BSLCommunityProperties.LANG_SERVER_SUBSYSTEM_FILTER_EXCLUDE_KEY)); + + configuration.getDiagnosticsOptions().getSubsystemsFilter().setExclude(excludeSubsystems); + var activeRules = context.activeRules(); Map>> diagnostics = new HashMap<>(); diff --git a/src/main/resources/org/sonar/l10n/communitybsl.properties b/src/main/resources/org/sonar/l10n/communitybsl.properties index 80148fa..e90def5 100644 --- a/src/main/resources/org/sonar/l10n/communitybsl.properties +++ b/src/main/resources/org/sonar/l10n/communitybsl.properties @@ -10,6 +10,10 @@ communitybsl.overrideConfiguration.name=BSL Language Server - Use configuration communitybsl.overrideConfiguration.description=Override SonarQube settings with BSL LS configuration file. communitybsl.file.suffixes.name=BSL File suffixes communitybsl.file.suffixes.description=List of file suffixes that will be scanned. +communitybsl.subsystemfilter.include.description=List of subsystems for include. +communitybsl.subsystemfilter.include.name=Subsystems for include. +communitybsl.subsystemfilter.exclude.description=List of subsystems for exclude. +communitybsl.subsystemfilter.exclude.name=List of subsystems for exclude. # EXTERNAL communitybsl.reportPaths.name=BSL Language Server Report Files communitybsl.reportPaths.description=Paths (absolute or relative) to xml files with BSL Language Server diagnostics diff --git a/src/main/resources/org/sonar/l10n/communitybsl_ru.properties b/src/main/resources/org/sonar/l10n/communitybsl_ru.properties index 1e3cc0d..34d6ad8 100644 --- a/src/main/resources/org/sonar/l10n/communitybsl_ru.properties +++ b/src/main/resources/org/sonar/l10n/communitybsl_ru.properties @@ -10,6 +10,10 @@ communitybsl.overrideConfiguration.name=Использовать конфигу communitybsl.overrideConfiguration.description=Переопределяет настройки профиля SonarQube в соответствии с конфигурационным файлом BSL Language Server communitybsl.file.suffixes.name=Расширения bsl-файлов communitybsl.file.suffixes.description=Список расширений файлов для анализа +communitybsl.subsystemfilter.include.description=Список подсистем для замечаний +communitybsl.subsystemfilter.include.name=Включая подсистемы +communitybsl.subsystemfilter.exclude.description=Список подсистем для исключения замечаний +communitybsl.subsystemfilter.exclude.name=Исключая подсистемы # EXTERNAL communitybsl.reportPaths.name=Путь к файлам отчета BSL Language Server communitybsl.reportPaths.description=Путь (абсолютный или относительный) к xml-файлам отчета BSL Language Server diff --git a/src/test/java/com/github/_1c_syntax/bsl/sonar/BSLPluginTest.java b/src/test/java/com/github/_1c_syntax/bsl/sonar/BSLPluginTest.java index f75f562..557f2a3 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/sonar/BSLPluginTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/sonar/BSLPluginTest.java @@ -50,7 +50,7 @@ void testGetExtensions() { var runtime = SonarRuntimeImpl.forSonarQube(VERSION_8_9, SonarQubeSide.SCANNER, SonarEdition.COMMUNITY); var context = new Plugin.Context(runtime); bslPlugin.define(context); - assertThat((List) context.getExtensions()).hasSize(23); + assertThat((List) context.getExtensions()).hasSize(25); } @Test From 418e11f7afaf7ef6c1b0fac952a94818c6388266 Mon Sep 17 00:00:00 2001 From: Alexey Sosnoviy Date: Thu, 11 Jul 2024 13:50:35 +0300 Subject: [PATCH 3/5] docs --- docs/en/index.md | 2 ++ docs/index.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docs/en/index.md b/docs/en/index.md index 4901538..1a9da06 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -89,6 +89,8 @@ Available values: * never *default* - modules are not skipped - `sonar.bsl.languageserver.overrideConfiguration` - override Quality Profile settings with settings from BSL Language Server configuration file; - `sonar.bsl.languageserver.configurationPath` - path to BSL Language Server configuration file to override settings; +- `sonar.bsl.languageserver.subsystemsFilter.include` - List of names of subsystems for which objects the analysis is performed, including child subsystems. Default `""` - include all; +- `sonar.bsl.languageserver.subsystemsFilter.exclude` - List of names of subsystems excluded from analysis, including child subsystems. Default - `""` - not exclude; - `sonar.bsl.file.suffixes` - list of file suffixes that will be scanned. Default - `.bsl,.os` ## Language switch for rule names/descriptions and issue messages diff --git a/docs/index.md b/docs/index.md index 59c90c1..33af2f8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -91,6 +91,8 @@ sonar-scanner -Dsonar.host.url=https://sonar.company.com -Dsonar.login=SONAR_AUT - never *по умолчанию* - модули не пропускаются; * `sonar.bsl.languageserver.overrideConfiguration` - переопределить настройки Quality Profile настройками из файла конфигурации BSL Language Server; * `sonar.bsl.languageserver.configurationPath` - путь к файлу конфигурации BSL Language Server для переопределения настроек; +* `sonar.bsl.languageserver.subsystemsFilter.include` - Список имен подсистем по объектам которых выполняется анализ, включая подчиненные подсистемы. По умолчанию `""` - Все подсистемы; +* `sonar.bsl.languageserver.subsystemsFilter.exclude` - Список имен подсистем исключенных из анализа, включая подчиненные подсистемы. По умолчанию - `""` - Нет исключаемых подсистем; * `sonar.bsl.file.suffixes` - список расширений файлов для анализа. По умолчанию - `.bsl,.os` ## Переключение языка имен правил и сообщений в замечаниях From 69aca23a0ccdc4931e1d760e29a9408769332dda Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Thu, 11 Jul 2024 14:50:12 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20bslls=20+=20=D1=82=D0=B5=D1=81=D1=82=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B4=D0=BB=D0=B8=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=B8=D0=BC=D0=B5=D0=BD=D0=B0=20=D0=B2=D0=BD=D0=B5=D1=88=D0=BD?= =?UTF-8?q?=D0=B8=D1=85=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20#336?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - новый bslls 0.23.1 - добавлен тест и правки для имен загружаемых внешних правил closes #280 --- build.gradle.kts | 2 +- src/main/resources/edt.json | 8 ++++---- .../bsl/sonar/ext_issues/RuleDefinitionTest.java | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 294d09f..dceed79 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,7 +32,7 @@ val sonarQubeVersion = "9.9.0.65466" dependencies { implementation("org.sonarsource.api.plugin", "sonar-plugin-api", "9.14.0.375") - implementation("io.github.1c-syntax", "bsl-language-server", "0.23.0") { + implementation("io.github.1c-syntax", "bsl-language-server", "0.23.1") { exclude("com.contrastsecurity", "java-sarif") exclude("io.sentry", "sentry-logback") exclude("org.springframework.boot", "spring-boot-starter-websocket") diff --git a/src/main/resources/edt.json b/src/main/resources/edt.json index eb65335..a535d34 100644 --- a/src/main/resources/edt.json +++ b/src/main/resources/edt.json @@ -182,8 +182,8 @@ }, { "Code": "EDT-21", - "Name": "Не следует размещать экспортные процедуры и функции в модулях команд и форм. К этим модулям нет возможности обращаться из внешнего по отношению к ним кода, поэтому экспортные процедуры и функции в этих модулях не имеют смысла.", - "Description": "Отсутствует", + "Name": "Не следует размещать экспортные процедуры и функции в модулях команд и форм", + "Description": "Не следует размещать экспортные процедуры и функции в модулях команд и форм. К этим модулям нет возможности обращаться из внешнего по отношению к ним кода, поэтому экспортные процедуры и функции в этих модулях не имеют смысла.", "Type": "CODE_SMELL", "Severity": "MINOR", "Active": true, @@ -1568,8 +1568,8 @@ }, { "Code": "EDT-175", - "Name": "Реквизиты составного типа, используемые в условиях соединений, отборах, а также для упорядочивания, должны содержать только ссылочные типы. В состав их типов не рекомендуется включать никаких других нессылочных типов.", - "Description": "Отсутствует", + "Name": "Реквизиты составного типа, используемые в условиях соединений, отборах, а также для упорядочивания, должны содержать только ссылочные типы.", + "Description": "Реквизиты составного типа, используемые в условиях соединений, отборах, а также для упорядочивания, должны содержать только ссылочные типы. В состав их типов не рекомендуется включать никаких других нессылочных типов.", "Type": "BUG", "Severity": "MINOR", "Active": true, diff --git a/src/test/java/com/github/_1c_syntax/bsl/sonar/ext_issues/RuleDefinitionTest.java b/src/test/java/com/github/_1c_syntax/bsl/sonar/ext_issues/RuleDefinitionTest.java index faf4c3e..9e748de 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/sonar/ext_issues/RuleDefinitionTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/sonar/ext_issues/RuleDefinitionTest.java @@ -47,6 +47,7 @@ void testDefine() { var repository = context.repository(reporter.getRepositoryKey()); assertThat(repository).isNotNull(); assertThat(repository.rules()).hasSize(179); + assertThat(repository.rules()).allMatch(rule-> rule.name().length() < 200); } @Test @@ -63,6 +64,7 @@ void testEmptyExternalFilePath() { var repository = context.repository(reporter.getRepositoryKey()); assertThat(repository).isNotNull(); assertThat(repository.rules()).hasSize(179); + assertThat(repository.rules()).allMatch(rule-> rule.name().length() < 200); } @Test @@ -85,5 +87,6 @@ void testExternalFile() { var repository = context.repository(reporter.getRepositoryKey()); assertThat(repository).isNotNull(); assertThat(repository.rules()).hasSize(183); + assertThat(repository.rules()).allMatch(rule-> rule.name().length() < 200); } } From bc45d8095c07d2b91040e6efebdd53ddabf439e1 Mon Sep 17 00:00:00 2001 From: Maximov Valery Date: Fri, 12 Jul 2024 08:24:12 +0300 Subject: [PATCH 5/5] Update BSLCommunityProperties.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit поменял порядок параметров --- .../bsl/sonar/BSLCommunityProperties.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCommunityProperties.java b/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCommunityProperties.java index 26c8521..ab63d38 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCommunityProperties.java +++ b/src/main/java/com/github/_1c_syntax/bsl/sonar/BSLCommunityProperties.java @@ -98,13 +98,20 @@ public static List getProperties() { .onQualifiers(Qualifiers.PROJECT) .build(), PropertyDefinitionUtils.newPropertyBuilderBSL(4, + LANG_SERVER_CONFIGURATION_PATH_KEY, + "enabled.configurationPath", + LANG_SERVER_CONFIGURATION_PATH_DEFAULT_VALUE) + .type(PropertyType.STRING) + .onQualifiers(Qualifiers.PROJECT) + .build(), + PropertyDefinitionUtils.newPropertyBuilderBSL(5, LANG_SERVER_SUBSYSTEM_FILTER_INCLUDE_KEY, "subsystemfilter.include", "") .onQualifiers(Qualifiers.PROJECT) .multiValues(true) .build(), - PropertyDefinitionUtils.newPropertyBuilderBSL(5, + PropertyDefinitionUtils.newPropertyBuilderBSL(6, LANG_SERVER_SUBSYSTEM_FILTER_EXCLUDE_KEY, "subsystemfilter.exclude", "") @@ -112,13 +119,6 @@ public static List getProperties() { .multiValues(true) .build(), PropertyDefinitionUtils.newPropertyBuilderBSL(7, - LANG_SERVER_CONFIGURATION_PATH_KEY, - "enabled.configurationPath", - LANG_SERVER_CONFIGURATION_PATH_DEFAULT_VALUE) - .type(PropertyType.STRING) - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinitionUtils.newPropertyBuilderBSL(5, BSL_FILE_EXTENSIONS_KEY, "file.suffixes", BSL_FILE_EXTENSIONS_DEFAULT_VALUE)