diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2016-11-29 10:45:32 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-29 10:45:32 +1000 |
commit | 57290a1c72d4565892f3595d9d8c3fba1086ec6b (patch) | |
tree | 5167cd44ac06cb64826d07751d9d303d4a1d9f15 /src/interactive | |
parent | 73687e9a6fa817838cd6ef47f3552785b3270805 (diff) | |
parent | 76155fa4e9ef103de4b8283097f6cde18c6f1e08 (diff) | |
download | scala-57290a1c72d4565892f3595d9d8c3fba1086ec6b.tar.gz scala-57290a1c72d4565892f3595d9d8c3fba1086ec6b.tar.bz2 scala-57290a1c72d4565892f3595d9d8c3fba1086ec6b.zip |
Merge pull request #5553 from retronym/ticket/SD-271
Improve performance of REPL autocompletion
Diffstat (limited to 'src/interactive')
-rw-r--r-- | src/interactive/scala/tools/nsc/interactive/Global.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/interactive/scala/tools/nsc/interactive/Global.scala b/src/interactive/scala/tools/nsc/interactive/Global.scala index 27a02c46a2..5c00d67888 100644 --- a/src/interactive/scala/tools/nsc/interactive/Global.scala +++ b/src/interactive/scala/tools/nsc/interactive/Global.scala @@ -1202,7 +1202,8 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") case Nil => entered.isEmpty && matchCount > 0 case head :: tail => val enteredAlternatives = Set(entered, entered.capitalize) - head.inits.filter(_.length <= entered.length).exists(init => + val n = (head, entered).zipped.count {case (c, e) => c == e || (c.isUpper && c == e.toUpper)} + head.take(n).inits.exists(init => enteredAlternatives.exists(entered => lenientMatch(entered.stripPrefix(init), tail, matchCount + (if (init.isEmpty) 0 else 1)) ) |