@@ -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
0 commit comments