Skip to content

Commit 8522790

Browse files
authored
Merge pull request #3226 from 1c-syntax/feature/variable-symbol-fixes
Исправления в работе с символами переменных
2 parents abfacae + 1657517 commit 8522790

File tree

4 files changed

+10
-19
lines changed

4 files changed

+10
-19
lines changed

src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/AbstractVariableSymbol.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
@NonFinal
4747
@Builder(builderClassName = "Builder")
4848
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
49-
@ToString(exclude = {"children", "parent"})
49+
@ToString(exclude = {"parent"})
5050
public abstract class AbstractVariableSymbol implements VariableSymbol {
5151

5252
/**
@@ -74,12 +74,6 @@ public abstract class AbstractVariableSymbol implements VariableSymbol {
7474
@NonFinal
7575
Optional<SourceDefinedSymbol> parent;
7676

77-
/**
78-
* Список "детей" символа - символов, которые располагаются внутри данного символа.
79-
*/
80-
@Getter
81-
List<SourceDefinedSymbol> children;
82-
8377
/**
8478
* Тип переменной.
8579
*/
@@ -95,6 +89,11 @@ public abstract class AbstractVariableSymbol implements VariableSymbol {
9589
*/
9690
Optional<VariableDescription> description;
9791

92+
@Override
93+
public List<SourceDefinedSymbol> getChildren() {
94+
return Collections.emptyList();
95+
}
96+
9897
@Override
9998
public SymbolKind getSymbolKind() {
10099
return SymbolKind.Variable;
@@ -129,10 +128,6 @@ public static class Builder {
129128
@Accessors(fluent = true, chain = true)
130129
Optional<SourceDefinedSymbol> parent = Optional.empty();
131130

132-
@Setter
133-
@Accessors(fluent = true, chain = true)
134-
List<SourceDefinedSymbol> children = Collections.emptyList();
135-
136131
private int startLine;
137132
private int startCharacter;
138133
private int endLine;
@@ -179,7 +174,6 @@ public VariableSymbol build() {
179174
scope,
180175
owner,
181176
parent,
182-
children,
183177
(byte) kind.ordinal(),
184178
export,
185179
description,
@@ -197,7 +191,6 @@ public VariableSymbol build() {
197191
scope,
198192
owner,
199193
parent,
200-
children,
201194
(byte) kind.ordinal(),
202195
export,
203196
description,

src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/IntBasedVariableSymbol.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import lombok.experimental.NonFinal;
3333
import org.eclipse.lsp4j.Range;
3434

35-
import java.util.List;
3635
import java.util.Optional;
3736

3837
/**
@@ -65,7 +64,6 @@ public IntBasedVariableSymbol(
6564
SourceDefinedSymbol scope,
6665
DocumentContext owner,
6766
Optional<SourceDefinedSymbol> parent,
68-
List<SourceDefinedSymbol> children,
6967
byte kind,
7068
boolean export,
7169
Optional<VariableDescription> description,
@@ -77,7 +75,7 @@ public IntBasedVariableSymbol(
7775
int variableNameStartCharacter,
7876
int variableNameEndCharacter
7977
) {
80-
super(name, scope, owner, parent, children, kind, export, description);
78+
super(name, scope, owner, parent, kind, export, description);
8179

8280
this.startLine = startLine;
8381
this.startCharacter = startCharacter;

src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/ShortBasedVariableSymbol.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import lombok.experimental.NonFinal;
3333
import org.eclipse.lsp4j.Range;
3434

35-
import java.util.List;
3635
import java.util.Optional;
3736

3837
/**
@@ -65,7 +64,6 @@ public ShortBasedVariableSymbol(
6564
SourceDefinedSymbol scope,
6665
DocumentContext owner,
6766
Optional<SourceDefinedSymbol> parent,
68-
List<SourceDefinedSymbol> children,
6967
byte kind,
7068
boolean export,
7169
Optional<VariableDescription> description,
@@ -77,7 +75,7 @@ public ShortBasedVariableSymbol(
7775
short variableNameStartCharacter,
7876
short variableNameEndCharacter
7977
) {
80-
super(name, scope, owner, parent, children, kind, export, description);
78+
super(name, scope, owner, parent, kind, export, description);
8179

8280
this.startLine = startLine;
8381
this.startCharacter = startCharacter;

src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/DocumentSymbolProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public final class DocumentSymbolProvider {
4545

4646
private static final Set<VariableKind> supportedVariableKinds = EnumSet.of(
4747
VariableKind.MODULE,
48+
VariableKind.LOCAL,
4849
VariableKind.GLOBAL
4950
);
5051

@@ -64,6 +65,7 @@ private static DocumentSymbol toDocumentSymbol(SourceDefinedSymbol symbol) {
6465
);
6566

6667
List<DocumentSymbol> children = symbol.getChildren().stream()
68+
.filter(DocumentSymbolProvider::isSupported)
6769
.map(DocumentSymbolProvider::toDocumentSymbol)
6870
.collect(Collectors.toList());
6971

0 commit comments

Comments
 (0)