effekt-lang / effekt-lang/effekt

LSP references only returns declaration side

Open
#896 0 comments 0 reactions 0 assignees View on GitHub
area:lsp bug
Dominant language
Scala
Stars
469
Forks
41
Avg merge
1d 16h
Merged PRs (30d)
23

Description

Consider the following unit test:

```scala
test("references with setIncludeDeclaration returns declaration site") {
withClientAndServer { (client, server) =>
val (textDoc, positions) =
raw"""
|def foo() = <>
| ↑ ↑
|def bar() = foo()
""".textDocumentAndPositions

val expectedReferences: List[Range] = List(
new Range(positions(0), positions(1)),
)

val didOpenParams = new DidOpenTextDocumentParams()
didOpenParams.setTextDocument(textDoc)
server.getTextDocumentService().didOpen(didOpenParams)

val params = new ReferenceParams()
params.setPosition(positions(0))
val context = new ReferenceContext()
context.setIncludeDeclaration(true)
params.setContext(context)
params.setTextDocument(textDoc.versionedTextDocumentIdentifier)

val references = server.getTextDocumentService().references(params).get()
assertEquals(references.asScala.map(_.getRange).toList, expectedReferences)
}
}
```

As you can see, the server doesn't actually return the reference to `foo` in `bar` in this example. It only returns the declaration site.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.