Skip to content

Commit

Permalink
Optimize: do not scan lenghty built-in d.ts files for var usages
Browse files Browse the repository at this point in the history
It does not make sense anyway, they have no code, and it takes a lot of time
  • Loading branch information
klesun committed Dec 26, 2018
1 parent 64f5cd3 commit 13cf3e1
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions src/org/klesun/deep_js_completion/resolvers/VarRes.scala
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,20 @@ import scala.collection.mutable.ListBuffer
object VarRes {

def findVarUsages(decl: PsiElement, name: String): List[JSReferenceExpression] = {
val scope: PsiElement = Lang.findParent[JSFunctionExpression](decl)
.getOrElse(decl.getContainingFile)
Lang.findChildren[JSReferenceExpression](scope)
.filter(usage => Objects.equals(usage.getReferenceName, name))
.filter(usage => !Objects.equals(usage, decl))
.filter(usage => Objects.equals(decl, usage.resolve()))
if (Option(decl.getContainingFile).forall(f => f.getName.endsWith(".d.ts"))) {
List()
} else {
val t1 = System.nanoTime
val scope: PsiElement = Lang.findParent[JSFunctionExpression](decl)
.getOrElse(decl.getContainingFile)
val result = Lang.findChildren[JSReferenceExpression](scope)
.filter(usage => Objects.equals(usage.getReferenceName, name))
.filter(usage => !Objects.equals(usage, decl))
.filter(usage => Objects.equals(decl, usage.resolve()))
val duration = (System.nanoTime - t1) / 1e9d
//Console.println("zhopa findVarUsages " + duration + " " + decl.getContainingFile.getName + " " + substr(decl.getText, 0, 10))
result
}
}

private def findRefUsages(ref: JSReferenceExpression): List[JSReferenceExpression] = {
Expand Down

0 comments on commit 13cf3e1

Please sign in to comment.