File tree Expand file tree Collapse file tree 3 files changed +13
-3
lines changed
src/main/kotlin/com/github/tempest/framework/router Expand file tree Collapse file tree 3 files changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -51,7 +51,7 @@ class RouteParameterCompletionContributor : CompletionContributor() {
5151 if (firstParameter == element) return
5252
5353 RouteResolveUtils
54- .resolve (firstParameter)
54+ .resolveCached (firstParameter)
5555 .flatMap { RouteLookupElementBuilder .create(it) }
5656 .apply { result.addAllElements(this ) }
5757 .apply { if (isNotEmpty()) result.stopHere() }
Original file line number Diff line number Diff line change @@ -16,15 +16,15 @@ class RouteParameterReference(
1616 override fun resolve (): PsiElement ? {
1717 val phpIndex = PhpIndex .getInstance(routeReferenceElement.project)
1818 return RouteResolveUtils
19- .resolve (routeReferenceElement)
19+ .resolveCached (routeReferenceElement)
2020 .firstOrNull()
2121 ?.let { phpIndex.getMethodsByFQN(it.action) }
2222 ?.firstOrNull()
2323 ?.getParameter(parameterName)
2424 }
2525
2626 override fun getVariants () = RouteResolveUtils
27- .resolve (routeReferenceElement)
27+ .resolveCached (routeReferenceElement)
2828 .flatMap { RouteLookupElementBuilder .create(it) }
2929 .toTypedArray()
3030
Original file line number Diff line number Diff line change @@ -4,12 +4,22 @@ import com.github.tempest.framework.TempestFrameworkClasses
44import com.github.tempest.framework.router.index.Route
55import com.github.tempest.framework.router.index.RouterIndexUtils
66import com.intellij.psi.PsiElement
7+ import com.intellij.psi.util.CachedValueProvider
8+ import com.intellij.psi.util.CachedValuesManager
79import com.jetbrains.php.lang.PhpReferenceContributor
810import com.jetbrains.php.lang.psi.elements.ArrayCreationExpression
911import com.jetbrains.php.lang.psi.elements.Method
1012import com.jetbrains.php.lang.psi.elements.StringLiteralExpression
1113
1214object RouteResolveUtils {
15+ fun resolveCached (firstParameter : PsiElement ): Collection <Route > =
16+ CachedValuesManager .getCachedValue(firstParameter) {
17+ CachedValueProvider .Result .create(
18+ resolve(firstParameter),
19+ firstParameter.containingFile,
20+ )
21+ }
22+
1323 fun resolve (firstParameter : PsiElement ): Collection <Route > =
1424 when (firstParameter) {
1525 is ArrayCreationExpression -> fromArrayCreation(firstParameter)
You can’t perform that action at this time.
0 commit comments