Skip to content

Commit 779df52

Browse files
committed
initial commit
1 parent d519790 commit 779df52

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

compiler/src/dotty/tools/dotc/interactive/Completion.scala

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ object Completion:
9797
else if sel.isGiven && sel.bound.span.contains(pos.span) then Mode.ImportOrExport
9898
else Mode.None // import scala.{util => u@@}
9999
case GenericImportOrExport(_) => Mode.ImportOrExport | Mode.Scope // import TrieMa@@
100+
case untpd.InterpolatedString(_, untpd.Literal(Constants.Constant(_: String)) :: _) :: _ =>
101+
Mode.Term | Mode.Scope
100102
case untpd.Literal(Constants.Constant(_: String)) :: _ => Mode.Term | Mode.Scope // literal completions
101103
case (ref: untpd.RefTree) :: _ =>
102104
val maybeSelectMembers = if ref.isInstanceOf[untpd.Select] then Mode.Member else Mode.Scope
@@ -221,7 +223,17 @@ object Completion:
221223
// Ignore synthetic select from `This` because in code it was `Ident`
222224
// See example in dotty.tools.languageserver.CompletionTest.syntheticThis
223225
case tpd.Select(qual @ tpd.This(_), _) :: _ if qual.span.isSynthetic => completer.scopeCompletions
224-
case tpd.Select(qual, _) :: _ if qual.typeOpt.hasSimpleKind => completer.selectionCompletions(qual)
226+
case tpd.Select(b @ tpd.Apply(c @ tpd.Select(d @ tpd.Select(_, StdNames.nme.StringContext), _), _), _) :: _ =>
227+
Seq(b,c,d).foreach { tree =>
228+
println("---------------------------")
229+
println(tree)
230+
println(tree.show)
231+
println(completer.selectionCompletions(tree))
232+
}
233+
println(completer.scopeCompletions)
234+
completer.scopeCompletions ++ completer.selectionCompletions(b)
235+
case tpd.Select(qual, _) :: _ if qual.typeOpt.hasSimpleKind =>
236+
completer.selectionCompletions(qual)
225237
case tpd.Select(qual, _) :: _ => Map.empty
226238
case (tree: tpd.ImportOrExport) :: _ => completer.directMemberCompletions(tree.expr)
227239
case _ => completer.scopeCompletions
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package dotty.tools.pc.tests.completion
2+
3+
import dotty.tools.pc.base.BaseCompletionSuite
4+
import org.junit.Test
5+
6+
class BlaSuite extends BaseCompletionSuite:
7+
@Test
8+
def t1 = check(
9+
"""
10+
|object M:
11+
| val VersionRegex = "".r
12+
| VersionRe@@"1234"
13+
""".stripMargin,
14+
"|VersionRegex: Regex".stripMargin
15+
)
16+
17+
@Test
18+
def t2 = check(
19+
"""
20+
|object M:
21+
| ra@@"1234"
22+
""".stripMargin,
23+
"|raw(args: Any*): String".stripMargin
24+
)

0 commit comments

Comments
 (0)