From d8d8ba71236bc18d0b4c74f9ebead2973dc6e435 Mon Sep 17 00:00:00 2001 From: Jason Zaugg Date: Mon, 21 Sep 2015 21:46:07 +1000 Subject: Remove used param and document positionDelta --- src/interactive/scala/tools/nsc/interactive/Global.scala | 11 ++++++----- src/repl/scala/tools/nsc/interpreter/IMain.scala | 2 +- .../tools/nsc/interpreter/PresentationCompilerCompleter.scala | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/interactive/scala/tools/nsc/interactive/Global.scala b/src/interactive/scala/tools/nsc/interactive/Global.scala index cc4b845b2c..6600fea2d8 100644 --- a/src/interactive/scala/tools/nsc/interactive/Global.scala +++ b/src/interactive/scala/tools/nsc/interactive/Global.scala @@ -1157,8 +1157,9 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") sealed abstract class CompletionResult { type M <: Member def results: List[M] - /** The (possibly partial) detected that precedes the cursor */ + /** The (possibly partial) name detected that precedes the cursor */ def name: Name + /** Cursor Offset - positionDelta == position of the start of the name */ def positionDelta: Int def matchingResults(nameMatcher: (Name) => Name => Boolean = entered => candidate => candidate.startsWith(entered)): List[M] = { val enteredName = if (name == nme.ERROR) nme.EMPTY else name @@ -1223,7 +1224,7 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") def typeCompletions(tree: Tree, qual: Tree, nameStart: Int, name: Name): CompletionResult = { val qualPos = qual.pos val allTypeMembers = typeMembers(qualPos).toList.flatten - val positionDelta: Int = nameStart - pos.start + val positionDelta: Int = pos.start - nameStart val subName: Name = name.newName(new String(pos.source.content, nameStart, pos.start - nameStart)).encodedName CompletionResult.TypeMembers(positionDelta, qual, tree, allTypeMembers, subName) } @@ -1231,7 +1232,7 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") case imp@Import(i @ Ident(name), head :: Nil) if head.name == nme.ERROR => val allMembers = scopeMembers(pos) val nameStart = i.pos.start - val positionDelta: Int = nameStart - pos.start + val positionDelta: Int = pos.start - nameStart val subName = name.subName(0, pos.start - i.pos.start) CompletionResult.ScopeMembers(positionDelta, allMembers, subName) case imp@Import(qual, selectors) => @@ -1250,8 +1251,8 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") typeCompletions(sel, qual, nameStart, name) case Ident(name) => val allMembers = scopeMembers(pos) - val positionDelta: Int = focus1.pos.start - pos.start - val subName = name.subName(0, -positionDelta) + val positionDelta: Int = pos.start - focus1.pos.start + val subName = name.subName(0, positionDelta) CompletionResult.ScopeMembers(positionDelta, allMembers, subName) case _ => CompletionResult.NoResults diff --git a/src/repl/scala/tools/nsc/interpreter/IMain.scala b/src/repl/scala/tools/nsc/interpreter/IMain.scala index f6f391600b..ef6ab4063a 100644 --- a/src/repl/scala/tools/nsc/interpreter/IMain.scala +++ b/src/repl/scala/tools/nsc/interpreter/IMain.scala @@ -1180,7 +1180,7 @@ class IMain(@BeanProperty val factory: ScriptEngineFactory, initialSettings: Set case class Incomplete(trees: List[Tree]) extends Result case class Success(trees: List[Tree]) extends Result - def apply(line: String, forPresentation: Boolean = false): Result = debugging(s"""parse("$line")""") { + def apply(line: String): Result = debugging(s"""parse("$line")""") { var isIncomplete = false def parse = { reporter.reset() diff --git a/src/repl/scala/tools/nsc/interpreter/PresentationCompilerCompleter.scala b/src/repl/scala/tools/nsc/interpreter/PresentationCompilerCompleter.scala index 01735aed3a..0fb3236966 100644 --- a/src/repl/scala/tools/nsc/interpreter/PresentationCompilerCompleter.scala +++ b/src/repl/scala/tools/nsc/interpreter/PresentationCompilerCompleter.scala @@ -97,14 +97,14 @@ class PresentationCompilerCompleter(intp: IMain) extends Completion with ScalaCo || CompletionResult.camelMatch(r.name)(r.name.newName(StringOps.longestCommonPrefix(memberCompletions))) ) if (memberCompletions.isEmpty) Completion.NoCandidates - else if (allowCompletion) Candidates(cursor + r.positionDelta, memberCompletions) + else if (allowCompletion) Candidates(cursor - r.positionDelta, memberCompletions) else Candidates(cursor, "" :: memberCompletions) } else if (matching.nonEmpty && matching.forall(_.symNameDropLocal == r.name)) Completion.NoCandidates // don't offer completion if the only option has been fully typed already else { // regular completion val memberCompletions: List[String] = matching.map(_.symNameDropLocal.decoded).distinct.sorted - Candidates(cursor + r.positionDelta, memberCompletions) + Candidates(cursor - r.positionDelta, memberCompletions) } } lastCommonPrefixCompletion = -- cgit v1.2.3