Skip to content

Commit

Permalink
return empty list if visit failed
Browse files Browse the repository at this point in the history
  • Loading branch information
CsCherrYY committed Sep 2, 2021
1 parent add875a commit abae73d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,9 @@ public CompletableFuture<List<Either<SymbolInformation, DocumentSymbol>>> docume
public CompletableFuture<Either<List<CompletionItem>, CompletionList>> completion(CompletionParams params) {
URI uri = URI.create(params.getTextDocument().getUri());
GradleCompilationUnit unit = this.gradleFilesManager.getCompilationUnit(uri);
if (unit == null) {
if (unit == null || !this.completionVisitor.visitCompilationUnit(uri, unit)) {
return CompletableFuture.completedFuture(Either.forLeft(Collections.emptyList()));
}
this.completionVisitor.visitCompilationUnit(uri, unit);
List<DependencyItem> dependencies = this.completionVisitor.getDependencies(uri);
for (DependencyItem dependency : dependencies) {
if (Ranges.containsPosition(dependency.getRange(), params.getPosition())) {
Expand All @@ -224,12 +223,11 @@ public CompletableFuture<Either<List<CompletionItem>, CompletionList>> completio
}
}
// should return empty if in constants
List<Expression> constants = this.completionVisitor.getConstants(uri); {
for (Expression constant : constants) {
Range range = LSPUtils.toRange(constant);
if (Ranges.containsPosition(range, params.getPosition())) {
return CompletableFuture.completedFuture(Either.forLeft(Collections.emptyList()));
}
List<Expression> constants = this.completionVisitor.getConstants(uri);
for (Expression constant : constants) {
Range range = LSPUtils.toRange(constant);
if (Ranges.containsPosition(range, params.getPosition())) {
return CompletableFuture.completedFuture(Either.forLeft(Collections.emptyList()));
}
}
Set<MethodCallExpression> methodCalls = this.completionVisitor.getMethodCalls(uri);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public Range getRange() {
}

private URI currentUri;
private boolean currentUriVisited = false;
private Map<URI, List<DependencyItem>> dependencies = new HashMap<>();
private Map<URI, Set<MethodCallExpression>> methodCalls = new HashMap<>();
private Map<URI, List<Statement>> statements = new HashMap<>();
Expand All @@ -77,9 +78,11 @@ public List<Expression> getConstants(URI uri) {
return this.constants.get(uri);
}

public void visitCompilationUnit(URI uri, GradleCompilationUnit compilationUnit) {
public boolean visitCompilationUnit(URI uri, GradleCompilationUnit compilationUnit) {
this.currentUriVisited = false;
this.currentUri = uri;
compilationUnit.iterator().forEachRemaining(unit -> visitSourceUnit(uri, unit));
return this.currentUriVisited;
}

public void visitSourceUnit(URI uri, SourceUnit unit) {
Expand All @@ -90,6 +93,7 @@ public void visitSourceUnit(URI uri, SourceUnit unit) {
this.statements.put(uri, new ArrayList<>());
this.constants.put(uri, new ArrayList<>());
visitModule(moduleNode);
this.currentUriVisited = true;
}
}

Expand Down

0 comments on commit abae73d

Please sign in to comment.