Skip to content

Commit 025f620

Browse files
committed
Изменение логики работы findTerminalNodeContainsPosition. Теперь конец рэнжа не считается включающим позицию.
1 parent 80d5aed commit 025f620

File tree

6 files changed

+28
-22
lines changed

6 files changed

+28
-22
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public class MissingCommonModuleMethodDiagnostic extends AbstractDiagnostic {
5858
private final LocationRepository locationRepository;
5959

6060
private static String getMethodNameByLocation(BSLParserRuleContext node, Range range) {
61-
return Trees.findTerminalNodeContainsPosition(node, range.getEnd())
61+
return Trees.findTerminalNodeContainsPosition(node, range.getStart())
6262
.map(ParseTree::getText)
6363
.orElseThrow();
6464
}

src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Ranges.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
import org.antlr.v4.runtime.tree.TerminalNode;
3131
import org.eclipse.lsp4j.Position;
3232
import org.eclipse.lsp4j.Range;
33+
import org.eclipse.lsp4j.jsonrpc.util.Preconditions;
34+
import org.eclipse.lsp4j.util.Positions;
3335

3436
import java.util.Collection;
3537
import java.util.List;
@@ -144,7 +146,11 @@ public boolean containsRange(Range bigger, Range smaller) {
144146
}
145147

146148
public boolean containsPosition(Range range, Position position) {
147-
return org.eclipse.lsp4j.util.Ranges.containsPosition(range, position);
149+
Preconditions.checkNotNull(range, "range");
150+
Preconditions.checkNotNull(position, "position");
151+
return range.getStart().equals(position)
152+
|| (Positions.isBefore(range.getStart(), position)
153+
&& Positions.isBefore(position, range.getEnd()));
148154
}
149155

150156
/**

src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/DefinitionProviderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void testDefinitionOfLocalMethod() {
7676
var methodSymbol = documentContext.getSymbolTree().getMethodSymbol("ИмяФункции").orElseThrow();
7777

7878
var params = new DefinitionParams();
79-
params.setPosition(new Position(4, 10));
79+
params.setPosition(new Position(4, 9));
8080

8181
// when
8282
var definitions = definitionProvider.getDefinition(documentContext, params);

src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/SelectionRangeProviderTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ void testGlobalMethodCallCapturesSemicolon() {
7171
@Test
7272
void testStatementCapturesStatementBlockAfterStatement() {
7373
// given
74-
var params = selection(4, 20);
74+
var params = selection(4, 19);
7575

7676
// when
7777
var selectionRanges = provider.getSelectionRange(documentContext, params);
@@ -89,7 +89,7 @@ void testStatementCapturesStatementBlockAfterStatement() {
8989
@Test
9090
void testStatementCapturesStatementBlockBeforeStatement() {
9191
// given
92-
var params = selection(6, 20);
92+
var params = selection(6, 19);
9393

9494
// when
9595
var selectionRanges = provider.getSelectionRange(documentContext, params);
@@ -107,7 +107,7 @@ void testStatementCapturesStatementBlockBeforeStatement() {
107107
@Test
108108
void testStatementCapturesStatementBlockAroundStatement() {
109109
// given
110-
var params = selection(5, 20);
110+
var params = selection(5, 19);
111111

112112
// when
113113
var selectionRanges = provider.getSelectionRange(documentContext, params);

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

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -113,21 +113,21 @@ void findReferenceOfAnnotationParameterValue() {
113113
6, 24, 6, 19, 6, 27
114114
8, 10, 8, 4, 9, 12
115115
9, 10, 8, 4, 9, 12
116-
11, 20, 11, 19, 11, 21
117-
12, 20, 12, 19, 12, 22
118-
13, 20, 13, 19, 13, 25
119-
14, 20, 14, 19, 14, 29
120-
15, 20, 15, 19, 15, 31
121-
16, 20, 16, 19, 16, 23
122-
18, 5, 18, 4, 18, 6
123-
19, 5, 19, 4, 19, 7
124-
20, 5, 20, 4, 20, 12
125-
21, 5, 21, 4, 22, 12
126-
22, 5, 21, 4, 22, 12
127-
23, 5, 23, 4, 23, 10
128-
24, 5, 24, 4, 24, 14
129-
25, 5, 25, 4, 25, 16
130-
26, 5, 26, 4, 26, 8
116+
11, 19, 11, 19, 11, 21
117+
12, 19, 12, 19, 12, 22
118+
13, 19, 13, 19, 13, 25
119+
14, 19, 14, 19, 14, 29
120+
15, 19, 15, 19, 15, 31
121+
16, 19, 16, 19, 16, 23
122+
18, 4, 18, 4, 18, 6
123+
19, 4, 19, 4, 19, 7
124+
20, 4, 20, 4, 20, 12
125+
21, 4, 21, 4, 22, 12
126+
22, 4, 21, 4, 22, 12
127+
23, 4, 23, 4, 23, 10
128+
24, 4, 24, 4, 24, 14
129+
25, 4, 25, 4, 25, 16
130+
26, 4, 26, 4, 26, 8
131131
"""
132132
)
133133
void findReferenceOfAnnotationParameterValue_allLiterals(int positionLine, int positionCharacter, int selectionRangeStartLine, int selectionRangeStartCharacter, int selectionRangeEndLine, int selectionRangeEndCharacter) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ void testFindVariablesRangesCallStatement() {
203203

204204
var referencedSymbol = referenceIndex.getReference(
205205
documentContext.getUri(),
206-
new Position(33, 10)
206+
new Position(33, 9)
207207
);
208208
assertThat(referencedSymbol).isPresent();
209209
assertThat(referencedSymbol).get()

0 commit comments

Comments
 (0)