Skip to content

Commit ca776a7

Browse files
committed
Hide local or synthetic symbols in documentSymbol
1 parent 00171ae commit ca776a7

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

language-server/src/dotty/tools/languageserver/DottyLanguageServer.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,8 +412,12 @@ class DottyLanguageServer extends LanguageServer
412412
implicit val ctx = driver.currentCtx
413413

414414
val uriTrees = driver.openedTrees(uri)
415+
val predicate = (tree: NameTree) => {
416+
val sym = tree.symbol
417+
sym.exists && !sym.isLocal && !sym.isPrimaryConstructor && !sym.is(Synthetic)
418+
}
415419

416-
val defs = Interactive.namedTrees(uriTrees, includeReferences = false, _ => true)
420+
val defs = Interactive.namedTrees(uriTrees, includeReferences = false, predicate)
417421
(for {
418422
d <- defs if !isWorksheetWrapper(d)
419423
info <- symbolInfo(d.tree.symbol, d.namePos, positionMapperFor(d.source))

language-server/test/dotty/tools/languageserver/DocumentSymbolTest.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,10 @@ class DocumentSymbolTest {
3838
.documentSymbol(m1, (m1 to m2).symInfo("Foo", SymbolKind.Module),
3939
(m3 to m4).symInfo("Foo", SymbolKind.Class))
4040
}
41+
42+
@Test def documentSymbolSynthetic: Unit = {
43+
code"""case class ${m1}Foo${m2}(${m3}x${m4}: Int)""".withSource
44+
.documentSymbol(m1, (m1 to m2).symInfo("Foo", SymbolKind.Class),
45+
(m3 to m4).symInfo("x", SymbolKind.Field, "Foo"))
46+
}
4147
}

0 commit comments

Comments
 (0)