Skip to content

Commit d770340

Browse files
committed
Merge pull request scala#4762 from retronym/topic/completely-2.12
Remove the old REPL tab completion implementation
2 parents fd5994f + 9f8961c commit d770340

File tree

8 files changed

+8
-522
lines changed

8 files changed

+8
-522
lines changed

src/compiler/scala/tools/nsc/settings/ScalaSettings.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,6 @@ trait ScalaSettings extends AbsScalaSettings
172172
val YconstOptimization = BooleanSetting ("-Yconst-opt", "Perform optimization with constant values.")
173173
val Ycompacttrees = BooleanSetting ("-Ycompact-trees", "Use compact tree printer when displaying trees.")
174174
val noCompletion = BooleanSetting ("-Yno-completion", "Disable tab-completion in the REPL.")
175-
val completion = ChoiceSetting ("-Ycompletion", "provider", "Select tab-completion in the REPL.", List("pc","adhoc","none"), "pc")
176175
val Xdce = BooleanSetting ("-Ydead-code", "Perform dead code elimination.")
177176
val debug = BooleanSetting ("-Ydebug", "Increase the quantity of debugging output.")
178177
//val doc = BooleanSetting ("-Ydoc", "Generate documentation")

src/repl-jline/scala/tools/nsc/interpreter/jline/JLineReader.scala

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import jconsole.history.{History => JHistory}
1616

1717

1818
import scala.tools.nsc.interpreter
19-
import scala.tools.nsc.interpreter.{Completion, JLineCompletion, NoCompletion}
19+
import scala.tools.nsc.interpreter.{Completion, NoCompletion}
2020
import scala.tools.nsc.interpreter.Completion.Candidates
2121
import scala.tools.nsc.interpreter.session.History
2222

@@ -125,21 +125,16 @@ private class JLineConsoleReader extends jconsole.ConsoleReader with interpreter
125125
// adapt the JLine completion interface
126126
def completer =
127127
new Completer {
128-
val tc = completion.completer()
128+
val tc = completion
129129
def complete(_buf: String, cursor: Int, candidates: JList[CharSequence]): Int = {
130130
val buf = if (_buf == null) "" else _buf
131-
val Candidates(newCursor, newCandidates) = tc.complete(buf, cursor)
131+
val Candidates(newCursor, newCandidates) = completion.complete(buf, cursor)
132132
newCandidates foreach (candidates add _)
133133
newCursor
134134
}
135135
}
136136

137-
// a last bit of nastiness: parsing help depending on the flavor of completer (fixme)
138137
completion match {
139-
case _: JLineCompletion =>
140-
val jlineCompleter = new ArgumentCompleter(new JLineDelimiter, completer)
141-
jlineCompleter setStrict false
142-
this addCompleter jlineCompleter
143138
case NoCompletion => ()
144139
case _ => this addCompleter completer
145140
}

src/repl/scala/tools/nsc/interpreter/Completion.scala

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,22 @@ import Completion._
1313
*/
1414
trait Completion {
1515
def resetVerbosity(): Unit
16-
def completer(): ScalaCompleter
16+
def complete(buffer: String, cursor: Int): Candidates
1717
}
1818
object NoCompletion extends Completion {
1919
def resetVerbosity() = ()
20-
def completer() = NullCompleter
20+
def complete(buffer: String, cursor: Int) = NoCandidates
2121
}
2222

2323
object Completion {
2424
case class Candidates(cursor: Int, candidates: List[String]) { }
2525
val NoCandidates = Candidates(-1, Nil)
2626

27-
object NullCompleter extends ScalaCompleter {
28-
def complete(buffer: String, cursor: Int): Candidates = NoCandidates
29-
}
30-
trait ScalaCompleter {
31-
def complete(buffer: String, cursor: Int): Candidates
32-
}
33-
3427
def looksLikeInvocation(code: String) = (
3528
(code != null)
3629
&& (code startsWith ".")
3730
&& !(code == ".")
3831
&& !(code startsWith "./")
3932
&& !(code startsWith "..")
4033
)
41-
object Forwarder {
42-
def apply(forwardTo: () => Option[CompletionAware]): CompletionAware = new CompletionAware {
43-
def completions(verbosity: Int) = forwardTo() map (_ completions verbosity) getOrElse Nil
44-
override def follow(s: String) = forwardTo() flatMap (_ follow s)
45-
}
46-
}
4734
}

src/repl/scala/tools/nsc/interpreter/CompletionAware.scala

Lines changed: 0 additions & 53 deletions
This file was deleted.

src/repl/scala/tools/nsc/interpreter/CompletionOutput.scala

Lines changed: 0 additions & 85 deletions
This file was deleted.

src/repl/scala/tools/nsc/interpreter/ILoop.scala

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -840,12 +840,7 @@ class ILoop(in0: Option[BufferedReader], protected val out: JPrintWriter)
840840
}
841841

842842
def mkReader(maker: ReaderMaker) = maker { () =>
843-
settings.completion.value match {
844-
case _ if settings.noCompletion => NoCompletion
845-
case "none" => NoCompletion
846-
case "adhoc" => new JLineCompletion(intp) // JLineCompletion is a misnomer; it's not tied to jline
847-
case "pc" | _ => new PresentationCompilerCompleter(intp)
848-
}
843+
if (settings.noCompletion) NoCompletion else new PresentationCompilerCompleter(intp)
849844
}
850845

851846
def internalClass(kind: String) = s"scala.tools.nsc.interpreter.$kind.InteractiveReader"

0 commit comments

Comments
 (0)