Skip to content

Commit 277b242

Browse files
authored
Merge pull request #3783 from 1c-syntax/develop
0.28.0
2 parents 27c65ae + a930fd5 commit 277b242

File tree

220 files changed

+5354
-1933
lines changed

Some content is hidden

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

220 files changed

+5354
-1933
lines changed

.github/dependabot.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ updates:
1313
freefair:
1414
patterns:
1515
- "io.freefair.*"
16+
ignore:
17+
- dependency-name: "com.diffplug.spotless"
1618
- package-ecosystem: "github-actions"
1719
directory: "/"
1820
schedule:

.github/workflows/benchmark.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
run: pip install pytest pytest-benchmark && pip install pybadges
6565

6666
- name: Download SSL 3.1
67-
run: git clone https://github.com/1c-syntax/ssl_3_1.git ssl
67+
run: git clone --depth 1 https://github.com/1c-syntax/ssl_3_1.git ssl
6868

6969
- name: Analyze ssl
7070
run: pytest .github/scripts/benchmark.py --benchmark-min-rounds=3 --benchmark-timer=time.time --benchmark-json=output.json --benchmark-verbose

.github/workflows/codesee-arch-diagram.yml

Lines changed: 0 additions & 38 deletions
This file was deleted.

.github/workflows/qa.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ jobs:
3535
env:
3636
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3737
- uses: actions/checkout@v6
38+
env:
39+
HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
3840
with:
3941
repository: ${{ github.event.workflow_run.head_repository.full_name }}
40-
ref: ${{ github.event.workflow_run.head_branch }}
42+
ref: "$HEAD_BRANCH"
4143
fetch-depth: 0
4244
- name: Checkout base branch
4345
if: github.event.workflow_run.event == 'pull_request'

build.gradle.kts

Lines changed: 48 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ plugins {
77
`java-library`
88
`maven-publish`
99
jacoco
10-
id("cloud.rio.license") version "0.18.0"
10+
id("com.diffplug.spotless") version "7.0.4"
1111
id("me.qoomon.git-versioning") version "6.4.4"
12-
id("io.freefair.lombok") version "9.1.0"
13-
id("io.freefair.javadoc-links") version "9.1.0"
14-
id("io.freefair.javadoc-utf-8") version "9.1.0"
15-
id("io.freefair.aspectj.post-compile-weaving") version "9.1.0"
12+
id("io.freefair.lombok") version "9.2.0"
13+
id("io.freefair.javadoc-links") version "9.2.0"
14+
id("io.freefair.javadoc-utf-8") version "9.2.0"
15+
id("io.freefair.aspectj.post-compile-weaving") version "9.2.0"
1616
// id("io.freefair.maven-central.validate-poms") version "9.0.0" // TODO: Re-enable when compatible with Gradle 9
1717
id("com.github.ben-manes.versions") version "0.53.0"
18-
id("org.springframework.boot") version "3.5.9"
18+
id("org.springframework.boot") version "4.0.1"
1919
id("io.spring.dependency-management") version "1.1.7"
20-
id("io.sentry.jvm.gradle") version "5.12.2"
20+
id("io.sentry.jvm.gradle") version "6.0.0-rc.1"
2121
id("io.github.1c-syntax.bslls-dev-tools") version "0.8.1"
2222
id("ru.vyarus.pom") version "3.0.0"
2323
id("org.jreleaser") version "1.21.0"
@@ -38,21 +38,21 @@ gitVersioning.apply {
3838
refs {
3939
describeTagFirstParent = false
4040
tag("v(?<tagVersion>[0-9].*)") {
41-
version = "\${ref.tagVersion}\${dirty}"
41+
version = $$"${ref.tagVersion}${dirty}"
4242
}
4343

4444
branch("develop") {
45-
version = "\${describe.tag.version}." +
46-
"\${describe.distance}-SNAPSHOT\${dirty}"
45+
version = $$"${describe.tag.version}." +
46+
$$"${describe.distance}-SNAPSHOT${dirty}"
4747
}
4848

4949
branch(".+") {
50-
version = "\${ref}-\${commit.short}\${dirty}"
50+
version = $$"${ref}-${commit.short}${dirty}"
5151
}
5252
}
5353

5454
rev {
55-
version = "\${commit.short}\${dirty}"
55+
version = $$"${commit.short}${dirty}"
5656
}
5757
}
5858

@@ -82,14 +82,14 @@ dependencies {
8282
api("org.eclipse.lsp4j", "org.eclipse.lsp4j.websocket.jakarta", "0.24.0")
8383

8484
// 1c-syntax
85-
api("io.github.1c-syntax", "bsl-parser", "0.29.0") {
85+
api("io.github.1c-syntax", "bsl-parser", "0.30.0") {
8686
exclude("com.ibm.icu", "*")
8787
exclude("org.antlr", "ST4")
8888
exclude("org.antlr", "antlr-runtime")
8989
}
9090
api("io.github.1c-syntax", "utils", "0.6.8")
91-
api("io.github.1c-syntax", "mdclasses", "0.17.2")
92-
api("io.github.1c-syntax", "bsl-common-library", "0.9.1")
91+
api("io.github.1c-syntax", "mdclasses", "0.17.4")
92+
api("io.github.1c-syntax", "bsl-common-library", "0.9.2")
9393
api("io.github.1c-syntax", "supportconf", "0.15.0")
9494

9595
// nullability annotations
@@ -113,7 +113,7 @@ dependencies {
113113
}
114114

115115
// AOP
116-
implementation("org.aspectj", "aspectjrt", "1.9.25")
116+
implementation("org.aspectj", "aspectjrt", "1.9.25.1")
117117

118118
// commons utils
119119
implementation("commons-io", "commons-io", "2.21.0")
@@ -129,8 +129,8 @@ dependencies {
129129
implementation("me.tongfei", "progressbar", "0.10.1")
130130

131131
// (de)serialization
132-
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
133-
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
132+
implementation("tools.jackson.core:jackson-databind")
133+
implementation("tools.jackson.dataformat:jackson-dataformat-xml")
134134
implementation("io.leangen.geantyref:geantyref:2.0.1")
135135

136136
// graphs
@@ -193,9 +193,21 @@ tasks.bootJar {
193193
archiveClassifier.set("exec")
194194
}
195195

196-
tasks.named("sourcesJar") {
197-
dependsOn(tasks.generateSentryDebugMetaPropertiesjava)
198-
dependsOn(tasks.collectExternalDependenciesForSentry)
196+
afterEvaluate {
197+
tasks.named("spotlessJavaCheck") {
198+
dependsOn(tasks.generateSentryDebugMetaPropertiesjava)
199+
dependsOn(tasks.collectExternalDependenciesForSentry)
200+
}
201+
202+
tasks.named("spotlessJavaApply") {
203+
dependsOn(tasks.generateSentryDebugMetaPropertiesjava)
204+
dependsOn(tasks.collectExternalDependenciesForSentry)
205+
}
206+
207+
tasks.named("sourcesJar") {
208+
dependsOn(tasks.generateSentryDebugMetaPropertiesjava)
209+
dependsOn(tasks.collectExternalDependenciesForSentry)
210+
}
199211
}
200212

201213
tasks.build {
@@ -248,16 +260,6 @@ tasks.check {
248260
mustRunAfter(tasks.generateDiagnosticDocs)
249261
}
250262

251-
tasks.named("licenseMain") {
252-
dependsOn(tasks.generateSentryDebugMetaPropertiesjava)
253-
dependsOn(tasks.collectExternalDependenciesForSentry)
254-
}
255-
256-
tasks.named("licenseFormatMain") {
257-
dependsOn(tasks.generateSentryDebugMetaPropertiesjava)
258-
dependsOn(tasks.collectExternalDependenciesForSentry)
259-
}
260-
261263
tasks.jacocoTestReport {
262264
reports {
263265
xml.required.set(true)
@@ -269,6 +271,14 @@ jmh {
269271
jmhVersion = "1.37"
270272
}
271273

274+
sentry {
275+
org.set("1c-syntax")
276+
projectName.set("bsl-language-server")
277+
278+
// Включить source context только при наличии токена аутентификации
279+
includeSourceContext = System.getenv("SENTRY_AUTH_TOKEN") != null
280+
}
281+
272282
tasks.processResources {
273283
filteringCharset = "UTF-8"
274284
// native2ascii gradle replacement
@@ -307,23 +317,11 @@ tasks.javadoc {
307317
}
308318
}
309319

310-
license {
311-
header = rootProject.file("license/HEADER.txt")
312-
skipExistingHeaders = false
313-
strictCheck = true
314-
ext["year"] = "2018-" + Calendar.getInstance().get(Calendar.YEAR)
315-
ext["name"] = "Alexey Sosnoviy <labotamy@gmail.com>, Nikita Fedkin <nixel2007@gmail.com>"
316-
ext["project"] = "BSL Language Server"
317-
mapping("java", "SLASHSTAR_STYLE")
318-
exclude("**/*.properties")
319-
exclude("**/*.xml")
320-
exclude("**/*.json")
321-
exclude("**/*.bsl")
322-
exclude("**/*.os")
323-
exclude("**/*.txt")
324-
exclude("**/*.java.orig")
325-
exclude("**/*.impl")
326-
exclude("**/*.mockito.plugins.MockMaker")
320+
spotless {
321+
java {
322+
targetExclude("**/AbstractObjectPool.java")
323+
licenseHeaderFile(rootProject.file("license/HEADER.txt"), "package ").updateYearWithLatest(true)
324+
}
327325
}
328326

329327
sonarqube {
@@ -453,9 +451,9 @@ tasks.withType<GenerateModuleMetadata> {
453451
}
454452

455453
tasks.register("updateLicenses") {
456-
description = "Wrapper for licenseFormat"
454+
description = "Wrapper for spotlessApply"
457455
group = "license"
458-
dependsOn(tasks.licenseFormat)
456+
dependsOn(tasks.spotlessApply)
459457
}
460458

461459
fun buildTime(): String {

docs/diagnostics/QueryNestedFieldsByDot.md

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,36 @@
99

1010
## Примеры
1111
1. Базовое разыменование ссылочных полей в выборке (во временную таблицу или в результат запроса)
12-
`ЗаказКлиентаТовары.Ссылка.Организация КАК Организация`
12+
```bsl
13+
ЗаказКлиентаТовары.Ссылка.Организация КАК Организация
14+
```
1315
2. Разыменование ссылочных полей в соединениях таблиц
14-
`ВТ_РасчетыСКлиентами КАК ВТ_РасчетыСКлиентами
15-
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДанныеЗаказовКлиента КАК ВТ_ДанныеЗаказовКлиента
16-
ПО ВТ_РасчетыСКлиентами.АналитикаУчетаПоПартнерам.Партнер = ВТ_ДанныеЗаказовКлиента.Партнер`
16+
```bsl
17+
ИЗ
18+
ВТ_РасчетыСКлиентами КАК ВТ_РасчетыСКлиентами
19+
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДанныеЗаказовКлиента КАК ВТ_ДанныеЗаказовКлиента
20+
ПО ВТ_РасчетыСКлиентами.АналитикаУчетаПоПартнерам.Партнер = ВТ_ДанныеЗаказовКлиента.Партнер
21+
```
1722
3. Разыменование ссылочных полей в виртуальных таблицах
18-
`РегистрНакопления.РасчетыСКлиентами.Обороты(
19-
&НачалоПериода,
20-
&КонецПериода,
21-
,
22-
(АналитикаУчетаПоПартнерам.Партнер) В ...`
23+
```bsl
24+
ИЗ
25+
РегистрНакопления.РасчетыСКлиентами.Обороты(
26+
&НачалоПериода,
27+
&КонецПериода,
28+
,
29+
(АналитикаУчетаПоПартнерам.Партнер) В ...
30+
```
2331
4. Конструкция "ВЫРАЗИТЬ" с разыменованием получаемого поля
24-
`ВЫРАЗИТЬ(ВТ_ПланОтгрузок.ДокументПлан КАК Документ.ЗаказКлиента).Валюта.Наценка`
32+
```bsl
33+
ВЫРАЗИТЬ(ВТ_ПланОтгрузок.ДокументПлан КАК Документ.ЗаказКлиента).Валюта.Наценка
34+
```
2535
5. Разыменование ссылочных полей в секции "ГДЕ"
26-
`ГДЕ азКлиентаТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода`
36+
```bsl
37+
ГДЕ
38+
ЗаказКлиентаТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
39+
```
2740

2841
<!-- В данном разделе приводятся примеры, на которые диагностика срабатывает, а также можно привести пример, как можно исправить ситуацию -->
2942

3043
## Источники
31-
Источник: [Разыменование ссылочных полей составного типа в языке запросов] (https://its.1c.ru/db/v8std/content/654/hdoc)
44+
[Разыменование ссылочных полей составного типа в языке запросов (#std654)](https://its.1c.ru/db/v8std/content/654/hdoc)

docs/en/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Perfomance measurement - [SSL 3.1](../bench/index.html)
4040
* Folding regions definition `#Region`, `#If`, procedures and functions, code blocks, queries
4141
* Methods "Cognitive Complexity" and "Cyclomatic Complexity" scores
4242
* Tooltip on local methods and methods of common / manager modules
43+
* Highlighting of matching constructs (if/elsif/else/endif, try/except/endtry, loops, regions, brackets)
4344
* Go to method definitions
4445
* Finding places to use methods
4546
* Method call hierarchy
@@ -89,7 +90,7 @@ Perfomance measurement - [SSL 3.1](../bench/index.html)
8990
| [typeDefinition](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_typeDefinition) | <img src="./assets/images/cross.svg" alt="no" width="20"> | | |
9091
| [implementation](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_implementation) | <img src="./assets/images/cross.svg" alt="no" width="20"> | not applicable in 1C:Enterprise | |
9192
| [references](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_references) | <img src="./assets/images/checkmark.svg" alt="yes" width="20"> | | |
92-
| [documentHighlight](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentHighlight) | <img src="./assets/images/cross.svg" alt="no" width="20"> | | |
93+
| [documentHighlight](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentHighlight) | <img src="./assets/images/checkmark.svg" alt="yes" width="20"> | Highlight related constructs: if/elsif/else/endif, try/except/endtry, loops, regions, brackets | |
9394
| [documentSymbol](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentSymbol) | <img src="./assets/images/checkmark.svg" alt="yes" width="20"> | hierarchicalDocumentSymbolSupport = true | |
9495
| [codeAction](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_codeAction) | <img src="./assets/images/checkmark.svg" alt="yes" width="20"> | codeActionKinds = ? (см. [#1433](https://github.com/1c-syntax/bsl-language-server/issues/1433))<br />isPreferredSupport = true | yes |
9596
| [codeAction/resolve](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#codeAction_resolve) | <img src="./assets/images/cross.svg" alt="no" width="20"> | | |

docs/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
* Определение сворачиваемых областей - `#Область`, `#Если`, процедуры и функции, блоки кода, пакеты запросов
4141
* Показ когнитивной и цикломатической сложности метода
4242
* Всплывающая подсказка по локальным методам и методам общих модулей/модулей менеджеров
43+
* Подсветка парных конструкций (if/elsif/else/endif, try/except/endtry, циклы, регионы, скобки)
4344
* Переходы к определению методов
4445
* Поиск мест использования методов
4546
* Иерархия вызовов методов
@@ -89,7 +90,7 @@
8990
| [typeDefinition](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_typeDefinition) | <img src="./assets/images/cross.svg" alt="no" width="20"> | | |
9091
| [implementation](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_implementation) | <img src="./assets/images/cross.svg" alt="no" width="20"> | не применимо в 1С:Предприятие | |
9192
| [references](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_references) | <img src="./assets/images/checkmark.svg" alt="yes" width="20"> | | |
92-
| [documentHighlight](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentHighlight) | <img src="./assets/images/cross.svg" alt="no" width="20"> | | |
93+
| [documentHighlight](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentHighlight) | <img src="./assets/images/checkmark.svg" alt="yes" width="20"> | Подсветка связанных конструкций: if/elsif/else/endif, try/except/endtry, циклы, регионы, скобки | |
9394
| [documentSymbol](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentSymbol) | <img src="./assets/images/checkmark.svg" alt="yes" width="20"> | hierarchicalDocumentSymbolSupport = true | |
9495
| [codeAction](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_codeAction) | <img src="./assets/images/checkmark.svg" alt="yes" width="20"> | codeActionKinds = ? (см. [#1433](https://github.com/1c-syntax/bsl-language-server/issues/1433))<br />isPreferredSupport = true | да |
9596
| [codeAction/resolve](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#codeAction_resolve) | <img src="./assets/images/cross.svg" alt="no" width="20"> | | |

gradle/wrapper/gradle-wrapper.jar

176 Bytes
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)