Skip to content

Commit d9223b8

Browse files
authored
Merge pull request #1478 from 1c-syntax/fix/issue1452
2 parents 1a397af + 23950dd commit d9223b8

File tree

7 files changed

+44
-3
lines changed

7 files changed

+44
-3
lines changed

docs/diagnostics/CodeOutOfRegion.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
:-: | :-: | :-: | :-: | :-: | :-:
55
`Дефект кода` | `BSL` | `Информационный` | `Да` | `1` | `standard`
66

7+
## Параметры
8+
9+
Имя | Тип | Описание | Значение по умолчанию
10+
:-: | :-: | :-- | :-:
11+
`checkUnknownModuleType` | `Строка` | ```Проверять неизвестные типы модулей``` | ```false```
12+
713
<!-- Блоки выше заполняются автоматически, не трогать -->
814
## Описание диагностики
915
<!-- Описание диагностики заполняется вручную. Необходимо понятным языком описать смысл и схему работу -->
@@ -65,5 +71,7 @@
6571
### Параметр конфигурационного файла
6672

6773
```json
68-
"CodeOutOfRegion": false
74+
"CodeOutOfRegion": {
75+
"checkUnknownModuleType": "false"
76+
}
6977
```

docs/en/diagnostics/CodeOutOfRegion.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
:-: | :-: | :-: | :-: | :-: | :-:
55
`Code smell` | `BSL` | `Info` | `Yes` | `1` | `standard`
66

7+
## Parameters
8+
9+
Name | Type | Description | Default value
10+
:-: | :-: | :-- | :-:
11+
`checkUnknownModuleType` | `String` | ```Check unknown module type``` | ```false```
12+
713
<!-- Блоки выше заполняются автоматически, не трогать -->
814
## Description
915

@@ -69,5 +75,7 @@ RU | EN
6975
### Parameter for config
7076

7177
```json
72-
"CodeOutOfRegion": false
78+
"CodeOutOfRegion": {
79+
"checkUnknownModuleType": "false"
80+
}
7381
```

src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnostic.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.github._1c_syntax.bsl.languageserver.context.symbol.RegionSymbol;
2626
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticCompatibilityMode;
2727
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticMetadata;
28+
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticParameter;
2829
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticScope;
2930
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity;
3031
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag;
@@ -56,13 +57,20 @@
5657
compatibilityMode = DiagnosticCompatibilityMode.COMPATIBILITY_MODE_8_3_1
5758
)
5859
public class CodeOutOfRegionDiagnostic extends AbstractVisitorDiagnostic {
60+
private static final boolean CHECK_UNKNOWN_MODULE_TYPE = false;
5961
private final List<Range> regionsRanges = new ArrayList<>();
6062

63+
@DiagnosticParameter(
64+
type = String.class,
65+
defaultValue = "" + CHECK_UNKNOWN_MODULE_TYPE
66+
)
67+
private boolean checkUnknownModuleType = CHECK_UNKNOWN_MODULE_TYPE;
68+
6169
@Override
6270
public ParseTree visitFile(BSLParser.FileContext ctx) {
6371

6472
// Для неизвестных модулей не будем требовать нахождения кода в области
65-
if (documentContext.getModuleType() == ModuleType.UNKNOWN) {
73+
if (documentContext.getModuleType() == ModuleType.UNKNOWN && !checkUnknownModuleType) {
6674
return ctx;
6775
}
6876

src/main/resources/com/github/_1c_syntax/bsl/languageserver/configuration/parameters-schema.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,14 @@
5252
"object"
5353
],
5454
"title": "Code out of region",
55+
"properties": {
56+
"checkUnknownModuleType": {
57+
"description": "Check unknown module type",
58+
"default": "false",
59+
"type": "string",
60+
"title": "Check unknown module type"
61+
}
62+
},
5563
"$id": "#/definitions/CodeOutOfRegion"
5664
},
5765
"CognitiveComplexity": {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
diagnosticMessage=Move code to region
22
diagnosticName=Code out of region
3+
checkUnknownModuleType=Check unknown module type
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
diagnosticMessage=Переместите код в область
22
diagnosticName=Код расположен вне области
3+
checkUnknownModuleType=Проверять неизвестные типы модулей

src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeOutOfRegionDiagnosticTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ void testNoRegions() {
7878
void testNoRegionsUnknown() {
7979
var diagnostics = getDiagnostics("CodeOutOfRegionDiagnosticNoRegions", ModuleType.UNKNOWN);
8080
assertThat(diagnostics).isEmpty();
81+
82+
var configuration = diagnosticInstance.getInfo().getDefaultConfiguration();
83+
configuration.put("checkUnknownModuleType", true);
84+
diagnosticInstance.configure(configuration);
85+
86+
diagnostics = getDiagnostics("CodeOutOfRegionDiagnosticNoRegions", ModuleType.UNKNOWN);
87+
assertThat(diagnostics).isNotEmpty();
8188
}
8289

8390
@Test

0 commit comments

Comments
 (0)