Skip to content

Commit e3cd0ca

Browse files
committed
Do not GoTo declaration that is on same line
1 parent 6c63c24 commit e3cd0ca

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/org/klesun/deep_js_completion/completion_providers/PropNamePvdr.scala

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,27 @@ class PropNamePvdr extends CompletionProvider[CompletionParameters] with GotoDec
309309
//}
310310
}
311311

312+
private def areOnSameLine(caretPsi: PsiElement, goToPsi: PsiElement): Boolean = {
313+
val isSameFile = Option(caretPsi.getContainingFile) eq Option(goToPsi.getContainingFile)
314+
val caretLine = Option(caretPsi.getContainingFile).itr()
315+
.map(f => substr(f.getText, 0, caretPsi.getTextOffset))
316+
.flatMap(str => str.split("\n"))
317+
.length
318+
val goToLine = Option(goToPsi.getContainingFile).itr()
319+
.map(f => substr(f.getText, 0, goToPsi.getTextOffset))
320+
.flatMap(str => str.split("\n"))
321+
.length
322+
val isOnSameLine = caretLine == goToLine
323+
324+
isSameFile && isOnSameLine
325+
}
326+
327+
private def isPartOf(caretPsi: PsiElement, goToPsi: PsiElement): Boolean = {
328+
val isInside = goToPsi.getTextRange.contains(caretPsi.getTextOffset)
329+
330+
isInside
331+
}
332+
312333
override def getGotoDeclarationTargets(caretPsi: PsiElement, mouseOffset: Int, editor: Editor): Array[PsiElement] = {
313334

314335
nit(caretPsi)
@@ -324,6 +345,7 @@ class PropNamePvdr extends CompletionProvider[CompletionParameters] with GotoDec
324345
.exists(lit => lit equals ref.getReferenceName))
325346
})
326347
.flatMap(p => p.psi)
348+
.filter(psi => !isPartOf(caretPsi, psi))
327349
.itr().lift(0)
328350
.toArray
329351
}

0 commit comments

Comments
 (0)