Skip to content

Commit 258407b

Browse files
committed
Merge branch 'develop'
2 parents 3ceedd5 + 2b8c6f0 commit 258407b

File tree

133 files changed

+2659
-332
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+2659
-332
lines changed

README.md

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88

99
Реализация протокола [language server protocol](https://microsoft.github.io/language-server-protocol/) для языка 1C (BSL) - языка 1С:Предприятие 8 и [OneScript](http://oscript.io).
1010

11+
Сайт проекта - https://1c-syntax.github.io/bsl-language-server
12+
13+
[English version](docs/en/index.md)
14+
1115
## Возможности
1216

1317
* Форматирование файла
@@ -20,29 +24,28 @@
2024
Запуск jar-файлов осуществляется через `java -jar path/to/file.jar`.
2125

2226
```sh
23-
java -jar bsl-language-server.jar" --help
24-
usage: BSL language server [-a] [-d <arg>] [-h] [-r <arg>] [-s <arg>]
25-
-a,--analyze Run analysis and get diagnostic info
26-
-d,--diagnosticLanguage <arg> Language of diagnostic messages. Possible
27-
values: en, ru. Default is en.
28-
-h,--help Show help.
29-
-r,--reporter <arg> Reporter key
30-
-s,--srcDir <arg> Source directory
27+
java -jar bsl-language-server.jar --help
28+
29+
usage: BSL language server [-a] [-c <arg>] [-h] [-o <arg>] [-r <arg>] [-s <arg>]
30+
-a,--analyze Run analysis and get diagnostic info
31+
-c,--configuration <arg> Path to language server configuration file
32+
-h,--help Show help.
33+
-o,--outputDir <arg> Output report directory
34+
-r,--reporter <arg> Reporter key
35+
-s,--srcDir <arg> Source directory
3136
```
3237

33-
При запуске BSL Language Server в обычном режиме будет запущен сам Language Server, взаимодействующий по протоколу [LSP]([language server protocol](https://microsoft.github.io/language-server-protocol/)). Для взаимодействия используются stdin и stdout.
38+
При запуске BSL Language Server в обычном режиме будет запущен сам Language Server, взаимодействующий по протоколу [LSP](https://microsoft.github.io/language-server-protocol/). Для взаимодействия используются stdin и stdout.
3439

35-
По умолчанию тексты диагностик выдаются на английском языке. Для переключения языка сообщений от движка диагностик используется параметр `--diagnosticLanguage` (сокращенно `-d`), за которым следует код языка:
40+
По умолчанию тексты диагностик выдаются на русском языке. Для переключения языка сообщений от движка диагностик необходимо настроить параметр `diagnosticLanguage` в конфигурационном файле или вызвав событие `workspace/didChangeConfiguration`:
3641

37-
```sh
38-
java -jar bsl-language-server.jar --diagnosticLanguage ru
39-
```
42+
## Запуск в режиме анализатора
4043

4144
Для запуска в режиме анализа используется параметр `--analyze` (сокращенно `-a`). Для указания каталога расположения анализируемых исходников используется параметр `--srcDir` (сокращенно `-s`), за которым следует путь (относительный или абсолютный) к каталогу исходников.
4245

4346
Для формирования отчета об анализе требуется указать один или "репортеров". Для указания репортера используется параметр `--reporter` (сокращенно `-r`), за которым следует ключ репортера. Допустимо указывать несколько репортеров.
4447

45-
Список и описания репортеров доступны [на сайте проекта](https://1c-syntax.github.io/bsl-language-server/).
48+
Список и описания репортеров, диагностик, конфигурационного файла доступны [на сайте проекта](https://1c-syntax.github.io/bsl-language-server/).
4649

4750
Пример строки запуска анализа:
4851

build.gradle.kts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
import org.apache.tools.ant.filters.EscapeUnicode
32
import java.net.URI
43
import java.util.*
@@ -31,6 +30,8 @@ dependencies {
3130
// https://mvnrepository.com/artifact/commons-io/commons-io
3231
compile("commons-io", "commons-io", "2.6")
3332
compile("org.apache.commons", "commons-lang3", "3.8.1")
33+
// https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils
34+
compile("commons-beanutils", "commons-beanutils", "1.9.3")
3435

3536
compile("com.fasterxml.jackson.core", "jackson-databind", "2.9.8")
3637
compile("com.fasterxml.jackson.datatype", "jackson-datatype-jsr310", "2.9.8")
@@ -44,7 +45,11 @@ dependencies {
4445
compile("org.slf4j", "slf4j-api", "1.8.0-beta4")
4546
compile("org.slf4j", "slf4j-simple", "1.8.0-beta4")
4647

47-
compile("com.github.1c-syntax", "bsl-parser", "0.7.1")
48+
compile("org.reflections", "reflections", "0.9.11")
49+
50+
compile("com.github.1c-syntax", "bsl-parser", "6419ab078b")
51+
52+
compileOnly("org.projectlombok", "lombok", lombok.version)
4853

4954
testImplementation("org.junit.jupiter", "junit-jupiter-api", "5.4.0")
5055
testRuntime("org.junit.jupiter", "junit-jupiter-engine", "5.4.0")
@@ -54,6 +59,11 @@ dependencies {
5459
testImplementation("com.ginsberg", "junit5-system-exit", "1.0.0")
5560
}
5661

62+
java {
63+
sourceCompatibility = JavaVersion.VERSION_1_8
64+
targetCompatibility = JavaVersion.VERSION_1_8
65+
}
66+
5767
tasks.withType<JavaCompile> {
5868
options.encoding = "UTF-8"
5969
options.compilerArgs.add("-Xlint:unchecked")
@@ -94,6 +104,9 @@ tasks.jacocoTestReport {
94104

95105
tasks.processResources {
96106
filteringCharset = "UTF-8"
107+
from("docs/diagnostics") {
108+
into("org/github/_1c_syntax/bsl/languageserver/diagnostics")
109+
}
97110
}
98111

99112
// native2ascii gradle replacement
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Повторяющиеся блоки кода в синтаксической конструкции Если...Тогда...ИначеЕсли...
2+
3+
Синтаксическая конструкция **Если...Тогда...ИначеЕсли...** не должна иметь одинаковых блоков кода.
4+
5+
Например:
6+
7+
```bsl
8+
Если п = 0 Тогда
9+
т = 0;
10+
ИначеЕсли п = 1 Тогда
11+
т = 1;
12+
ИначеЕсли п = 2 Тогда
13+
т = 1;
14+
Иначе
15+
т = -1;
16+
КонецЕсли;
17+
```

docs/diagnostics/LineLength.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,8 @@
22

33
При длине строки более 120 символов следует использовать переносы. Строки длиннее 120 символов делать не рекомендуется, за исключением тех случаев, когда перенос невозможен (например, в коде определена длинная строковая константа, которая выводится без переносов в окно сообщений с помощью объекта СообщениеПользователю).
44

5-
Источник: [Стандарт: Тексты модулей](https://its.1c.ru/db/v8std#content:-2145783191:hdoc)
5+
Источник: [Стандарт: Тексты модулей](https://its.1c.ru/db/v8std#content:-2145783191:hdoc)
6+
7+
## Параметры
8+
9+
* `maxLineLength` - `Число` - максимальная длина строки в символах. По умолчанию - 120.

docs/diagnostics/MethodSize.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
# Ограничение на размер метода
1+
# Ограничение на размер метода
2+
3+
## Параметры
4+
5+
* `maxMethodSize` - `Число` - максимальная длина метода в строках. По умолчанию - 200.

docs/diagnostics/NumberOfOptionalParams.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Не рекомендуется объявлять в функциях много параметров (нужно ориентироваться на количество не более семи параметров),
44
при этом не должно быть много параметров со значениями по умолчанию (нужно ориентироваться на количество не более трех
5-
таких параметров. В противном случае, читаемость вызывающего кода сильно снижается.
5+
таких параметров). В противном случае, читаемость вызывающего кода сильно снижается.
66
Например, можно легко ошибиться в количестве запятых при передаче необязательных параметров.
77

88
При необходимости передавать в функцию большое число параметров рекомендуется группировать однотипные параметры в один или несколько составных параметров типа Структура.
@@ -27,3 +27,7 @@ Cгруппировать параметры, описывающие значе
2727
```
2828

2929
Источник: [Стандарт: Параметры процедур и функций](https://its.1c.ru/db/v8std#content:2149184289:hdoc)
30+
31+
## Параметры
32+
33+
* `maxOptionalParamsCount` - `Число` - Допустимое количество необязательных параметров метода. По умолчанию - 3.

docs/diagnostics/NumberOfParams.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,7 @@ Cгруппировать параметры, описывающие значе
2525
```
2626

2727
Источник: [Стандарт: Параметры процедур и функций](https://its.1c.ru/db/v8std#content:2149184289:hdoc)
28+
29+
## Параметры
30+
31+
* `maxParamsCount` - `Число` - Допустимое количество параметров метода. По умолчанию - 7.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Процедура не может возвращать значение
2+
3+
Диагностика отлавливает процедуры, где есть "Возврат" со значением.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Canonical Keyword Writing
2+
3+
A built-in language constructs, keywords must be writte canonically.
4+
5+
**Keywords**
6+
7+
RU | EN
8+
--- | ---
9+
ВызватьИсключение | Raise
10+
Выполнить | Execute
11+
ДобавитьОбработчик | AddHandler
12+
Для | For
13+
Если | If
14+
Знач | Val
15+
И | AND, and
16+
Из | In
17+
ИЛИ, Или | OR, Or
18+
Иначе | Else
19+
ИначеЕсли | ElsIf
20+
Исключение | Except
21+
Истина | True
22+
Каждого, каждого | Each, each
23+
КонецЕсли | EndIf
24+
КонецПопытки | EndTry
25+
КонецПроцедуры | EndProcedure
26+
КонецФункции | EndFunction
27+
КонецЦикла | EndDo
28+
НЕ, Не | NOT, Not
29+
Неопределено | Undefined
30+
Перейти | Goto
31+
Перем | Var
32+
По | For
33+
Пока | WHile
34+
Попытка | Try
35+
Процедура | Procedure
36+
Прервать | Break
37+
Продолжить | Continue
38+
Тогда | Then
39+
Цикл | Do
40+
УдалитьОбработчик | RemoveHandler
41+
Функция | Function
42+
Экспорт | Export
43+
44+
**Preprocessor Instructions**
45+
46+
RU | EN
47+
--- | ---
48+
ВебКлиент | WebClient
49+
ВнешнееСоединение | ExternalConnection
50+
Если | If
51+
И | AND, And
52+
ИЛИ, Или | OR, Or
53+
Иначе | Else
54+
ИначеЕсли | ИначеЕсли
55+
КонецЕсли | EndIf
56+
КонецОбласти | EndRegion
57+
Клиент | Client
58+
МобильноеПриложениеКлиент | MobileAppClient
59+
МобильноеПриложениеСервер | MobileAppServer
60+
МобильныйКлиент | MobileClient
61+
НаКлиенте | AtClient
62+
НаСервере | AtServer
63+
НЕ, Не | NOT, Not
64+
Область | Region
65+
Сервер | Server
66+
Тогда | Then
67+
ТолстыйКлиентОбычноеПриложение | ThickClientOrdinaryApplication
68+
ТолстыйКлиентУправляемоеПриложение | ThickClientManagedApplication
69+
ТонкийКлиент | ThinClient
70+
71+
**Compilation directives**
72+
73+
RU | EN
74+
--- | ---
75+
НаКлиенте | AtClient
76+
НаСервере | AtServer
77+
НаСервереБезКонтекста | AtServerNoContext
78+
НаКлиентеНаСервереБезКонтекста | AtClientAtServerNoContext
79+
НаКлиентеНаСервере | AtClientAtServer
80+
81+
Источник: [Standart: Modules texts(RU)](https://its.1c.ru/db/v8std/content/2149184090/hdoc)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Empty code block

0 commit comments

Comments
 (0)