Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save kubukoz/3527793480b0117b2117e5863958a55b to your computer and use it in GitHub Desktop.

Select an option

Save kubukoz/3527793480b0117b2117e5863958a55b to your computer and use it in GitHub Desktop.

Revisions

  1. kubukoz renamed this gist Feb 6, 2020. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. @olafurpg olafurpg created this gist Jan 17, 2020.
    40 changes: 40 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,40 @@
    diff --git a/mtags/src/main/scala/scala/meta/internal/pc/AutoImports.scala b/mtags/src/main/scala/scala/meta/internal/pc/AutoImports.scala
    index 34c7258..11f34b6 100644
    --- a/mtags/src/main/scala/scala/meta/internal/pc/AutoImports.scala
    +++ b/mtags/src/main/scala/scala/meta/internal/pc/AutoImports.scala
    @@ -37,14 +37,14 @@ trait AutoImports { this: MetalsGlobal =>
    }
    }

    + def isImportPosition: Boolean =
    + findLastVisitedParentTree(pos).exists(_.isInstanceOf[Import])
    +
    def autoImportPosition(
    pos: Position,
    text: String
    ): Option[AutoImportPosition] = {
    - if (lastVisistedParentTrees.isEmpty) {
    - locateTree(pos)
    - }
    - lastVisistedParentTrees.headOption match {
    + findLastVisitedParentTree(pos) match {
    case Some(_: Import) => None
    case _ =>
    val enclosingPackage = lastVisistedParentTrees.collectFirst {
    diff --git a/mtags/src/main/scala/scala/meta/internal/pc/Completions.scala b/mtags/src/main/scala/scala/meta/internal/pc/Completions.scala
    index 2361c66..0f9a807 100644
    --- a/mtags/src/main/scala/scala/meta/internal/pc/Completions.scala
    +++ b/mtags/src/main/scala/scala/meta/internal/pc/Completions.scala
    @@ -336,6 +336,12 @@ trait Completions { this: MetalsGlobal =>
    // variable but it avoids repeating traversals from the compiler
    // implementation of `completionsAt(pos)`.
    var lastVisistedParentTrees: List[Tree] = Nil
    + def findLastVisitedParentTree(pos: Position): Option[Tree] = {
    + if (lastVisistedParentTrees.isEmpty) {
    + locateTree(pos)
    + }
    + lastVisistedParentTrees.headOption
    + }
    abstract class CompletionPosition {
    def isType: Boolean = false
    def isNew: Boolean = false