Skip to content

Commit b8a7e85

Browse files
authored
Merge pull request #5369 from dotty-staging/topic/ide-modules
IDE: Strip module suffix, show modules as such
2 parents cf60e58 + 53bb232 commit b8a7e85

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,6 +620,8 @@ object DottyLanguageServer {
620620
SK.Package
621621
else if (sym.isConstructor)
622622
SK.Constructor
623+
else if (sym.is(Module))
624+
SK.Module
623625
else if (sym.isClass)
624626
SK.Class
625627
else if (sym.is(Mutable))
@@ -630,7 +632,7 @@ object DottyLanguageServer {
630632
SK.Field
631633
}
632634

633-
val name = sym.name.show
635+
val name = sym.name.stripModuleClassSuffix.show
634636
val containerName =
635637
if (sym.owner.exists && !sym.owner.isEmptyPackage)
636638
sym.owner.name.show

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,16 @@ class DocumentSymbolTest {
2626
) .documentSymbol(m1, (m1 to m2).symInfo("Foo", SymbolKind.Class))
2727
.documentSymbol(m3, (m3 to m4).symInfo("Bar", SymbolKind.Class))
2828
}
29+
30+
@Test def documentSymbolShowModule: Unit = {
31+
code"""object ${m1}Foo${m2}""".withSource
32+
.documentSymbol(m1, (m1 to m2).symInfo("Foo", SymbolKind.Module))
33+
}
34+
35+
@Test def documentSymbolShowClassAndCompanion: Unit = {
36+
code"""object ${m1}Foo${m2}
37+
class ${m3}Foo${m4}""".withSource
38+
.documentSymbol(m1, (m1 to m2).symInfo("Foo", SymbolKind.Module),
39+
(m3 to m4).symInfo("Foo", SymbolKind.Class))
40+
}
2941
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,16 @@ class SymbolTest {
2727
) .symbol("Foo", Foo.range.symInfo("Foo", SymbolKind.Class), fooFoo.range.symInfo("Foo", SymbolKind.Class, "foo"))
2828
.symbol("Bar", Bar.range.symInfo("Bar", SymbolKind.Class))
2929
}
30+
31+
@Test def symbolShowModule: Unit = {
32+
code"""object ${m1}Foo${m2}""".withSource
33+
.symbol("Foo", (m1 to m2).symInfo("Foo", SymbolKind.Module))
34+
}
35+
36+
@Test def symbolShowClassAndCompanion: Unit = {
37+
code"""object ${m1}Foo${m2}
38+
class ${m3}Foo${m4}""".withSource
39+
.symbol("Foo", (m1 to m2).symInfo("Foo", SymbolKind.Module),
40+
(m3 to m4).symInfo("Foo", SymbolKind.Class))
41+
}
3042
}

0 commit comments

Comments
 (0)