Skip to content

Commit a155eb2

Browse files
committed
Исправления
1 parent bd1e564 commit a155eb2

File tree

6 files changed

+21
-13
lines changed

6 files changed

+21
-13
lines changed

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.eclipse.lsp4j.SymbolKind;
3737

3838
import java.util.ArrayList;
39+
import java.util.Collections;
3940
import java.util.List;
4041
import java.util.Optional;
4142

@@ -62,11 +63,13 @@ public class AnnotationSymbol implements SourceDefinedSymbol, Describable {
6263
@Builder.Default
6364
Optional<SourceDefinedSymbol> parent = Optional.empty();
6465

65-
@Builder.Default
66-
List<SourceDefinedSymbol> children = new ArrayList<>();
67-
6866
Optional<MethodDescription> description;
6967

68+
@Override
69+
public List<SourceDefinedSymbol> getChildren() {
70+
return Collections.emptyList();
71+
}
72+
7073
@Override
7174
public void accept(SymbolTreeVisitor visitor) {
7275
// no-op

src/main/java/com/github/_1c_syntax/bsl/languageserver/references/AnnotationReferenceFinder.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.github._1c_syntax.bsl.languageserver.context.events.ServerContextPopulatedEvent;
2929
import com.github._1c_syntax.bsl.languageserver.context.symbol.AnnotationSymbol;
3030
import com.github._1c_syntax.bsl.languageserver.context.symbol.MethodSymbol;
31-
import com.github._1c_syntax.bsl.languageserver.context.symbol.SymbolTree;
3231
import com.github._1c_syntax.bsl.languageserver.context.symbol.annotations.Annotation;
3332
import com.github._1c_syntax.bsl.languageserver.references.model.Reference;
3433
import com.github._1c_syntax.bsl.languageserver.utils.Methods;
@@ -37,7 +36,6 @@
3736
import com.github._1c_syntax.bsl.parser.BSLParser;
3837
import lombok.RequiredArgsConstructor;
3938
import org.antlr.v4.runtime.tree.TerminalNode;
40-
import org.apache.commons.collections4.map.CaseInsensitiveMap;
4139
import org.apache.commons.lang3.tuple.Pair;
4240
import org.eclipse.lsp4j.Location;
4341
import org.eclipse.lsp4j.Position;
@@ -47,13 +45,14 @@
4745
import java.net.URI;
4846
import java.util.Map;
4947
import java.util.Optional;
48+
import java.util.concurrent.ConcurrentHashMap;
5049

5150
@Component
5251
@RequiredArgsConstructor
5352
public class AnnotationReferenceFinder implements ReferenceFinder {
5453

5554
private final ServerContext serverContext;
56-
private final Map<String, AnnotationSymbol> registeredAnnotations = new CaseInsensitiveMap<>();
55+
private final Map<String, AnnotationSymbol> registeredAnnotations = new ConcurrentHashMap<>();
5756

5857
@EventListener
5958
public void handleContextRefresh(ServerContextPopulatedEvent event) {
@@ -68,9 +67,8 @@ public void handleDocumentContextChange(DocumentContextContentChangedEvent event
6867
DocumentContext documentContext = event.getSource();
6968
var uri = documentContext.getUri();
7069

71-
registeredAnnotations.values().stream()
72-
.filter(annotationSymbol -> annotationSymbol.getOwner().getUri().equals(uri))
73-
.forEach(annotationSymbol -> registeredAnnotations.remove(annotationSymbol.getName()));
70+
registeredAnnotations.values()
71+
.removeIf(annotationSymbol -> annotationSymbol.getOwner().getUri().equals(uri));
7472

7573
findAndRegisterAnnotation(documentContext);
7674
}

src/test/java/com/github/_1c_syntax/bsl/languageserver/references/AnnotationReferenceFinderTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,10 @@ class AnnotationReferenceFinderTest extends AbstractServerContextAwareTest {
4343
@Test
4444
void findReference() {
4545
// given
46-
initServerContext(TestUtils.PATH_TO_METADATA);
46+
initServerContext("./src/test/resources/references/annotations");
4747
var documentContext = TestUtils.getDocumentContextFromFile("./src/test/resources/references/AnnotationReferenceFinder.os");
4848

4949
var module = documentContext.getSymbolTree().getModule();
50-
var method = documentContext.getSymbolTree().getMethods().get(0);
5150

5251
// when
5352
var optionalReference = referenceFinder.findReference(documentContext.getUri(), new Position(0, 2));
@@ -59,7 +58,7 @@ void findReference() {
5958
.hasValueSatisfying(reference -> assertThat(reference.getSymbol().getName()).isEqualTo("ТестоваяАннотация"))
6059
.hasValueSatisfying(reference -> assertThat(reference.getSymbol().getSymbolKind()).isEqualTo(SymbolKind.TypeParameter))
6160
.hasValueSatisfying(reference -> assertThat(reference.getSelectionRange()).isEqualTo(Ranges.create(0, 0, 18)))
62-
.hasValueSatisfying(reference -> assertThat(reference.getSourceDefinedSymbol().orElseThrow().getSelectionRange()).isEqualTo(method.getSelectionRange()))
61+
.hasValueSatisfying(reference -> assertThat(reference.getSourceDefinedSymbol().orElseThrow().getSelectionRange()).isEqualTo(Ranges.create(1, 10, 28)))
6362
;
6463
}
6564
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
&ТестоваяАннотация
22
Перем ТестоваяПеременная;
33

4-
&Аннотация("ТестоваяАннотация")
4+
&ТестоваяАннотация2
5+
Перем ТестоваяПеременная2;
6+
57
Процедура ПриСозданииОбъекта()
68
КонецПроцедуры
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
&Аннотация("ТестоваяАннотация")
2+
Процедура ПриСозданииОбъекта()
3+
КонецПроцедуры
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
&Аннотация("ТестоваяАннотация2")
2+
Процедура ПриСозданииОбъекта()
3+
КонецПроцедуры

0 commit comments

Comments
 (0)