From 53bb23286a2ad040c3da2098bc770f75b0fc9f82 Mon Sep 17 00:00:00 2001 From: Martin Duhem Date: Fri, 2 Nov 2018 09:56:31 +0100 Subject: [PATCH] IDE: Strip module suffix, show modules as such --- .../tools/languageserver/DottyLanguageServer.scala | 4 +++- .../tools/languageserver/DocumentSymbolTest.scala | 12 ++++++++++++ .../test/dotty/tools/languageserver/SymbolTest.scala | 12 ++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/language-server/src/dotty/tools/languageserver/DottyLanguageServer.scala b/language-server/src/dotty/tools/languageserver/DottyLanguageServer.scala index b7868da45459..c7a497403b7e 100644 --- a/language-server/src/dotty/tools/languageserver/DottyLanguageServer.scala +++ b/language-server/src/dotty/tools/languageserver/DottyLanguageServer.scala @@ -620,6 +620,8 @@ object DottyLanguageServer { SK.Package else if (sym.isConstructor) SK.Constructor + else if (sym.is(Module)) + SK.Module else if (sym.isClass) SK.Class else if (sym.is(Mutable)) @@ -630,7 +632,7 @@ object DottyLanguageServer { SK.Field } - val name = sym.name.show + val name = sym.name.stripModuleClassSuffix.show val containerName = if (sym.owner.exists && !sym.owner.isEmptyPackage) sym.owner.name.show diff --git a/language-server/test/dotty/tools/languageserver/DocumentSymbolTest.scala b/language-server/test/dotty/tools/languageserver/DocumentSymbolTest.scala index 03526db2667e..a19137865b76 100644 --- a/language-server/test/dotty/tools/languageserver/DocumentSymbolTest.scala +++ b/language-server/test/dotty/tools/languageserver/DocumentSymbolTest.scala @@ -26,4 +26,16 @@ class DocumentSymbolTest { ) .documentSymbol(m1, (m1 to m2).symInfo("Foo", SymbolKind.Class)) .documentSymbol(m3, (m3 to m4).symInfo("Bar", SymbolKind.Class)) } + + @Test def documentSymbolShowModule: Unit = { + code"""object ${m1}Foo${m2}""".withSource + .documentSymbol(m1, (m1 to m2).symInfo("Foo", SymbolKind.Module)) + } + + @Test def documentSymbolShowClassAndCompanion: Unit = { + code"""object ${m1}Foo${m2} + class ${m3}Foo${m4}""".withSource + .documentSymbol(m1, (m1 to m2).symInfo("Foo", SymbolKind.Module), + (m3 to m4).symInfo("Foo", SymbolKind.Class)) + } } diff --git a/language-server/test/dotty/tools/languageserver/SymbolTest.scala b/language-server/test/dotty/tools/languageserver/SymbolTest.scala index 5a7cb73af6df..e9e6318b8e38 100644 --- a/language-server/test/dotty/tools/languageserver/SymbolTest.scala +++ b/language-server/test/dotty/tools/languageserver/SymbolTest.scala @@ -27,4 +27,16 @@ class SymbolTest { ) .symbol("Foo", Foo.range.symInfo("Foo", SymbolKind.Class), fooFoo.range.symInfo("Foo", SymbolKind.Class, "foo")) .symbol("Bar", Bar.range.symInfo("Bar", SymbolKind.Class)) } + + @Test def symbolShowModule: Unit = { + code"""object ${m1}Foo${m2}""".withSource + .symbol("Foo", (m1 to m2).symInfo("Foo", SymbolKind.Module)) + } + + @Test def symbolShowClassAndCompanion: Unit = { + code"""object ${m1}Foo${m2} + class ${m3}Foo${m4}""".withSource + .symbol("Foo", (m1 to m2).symInfo("Foo", SymbolKind.Module), + (m3 to m4).symInfo("Foo", SymbolKind.Class)) + } }