Skip to content

Commit 2837954

Browse files
committed
fix(search): 修复 SearchEverywhere 的 ApiNavigationItem toString 方法未在 readAction 内读取了 Psi 树导致的报错
1 parent 1aab64b commit 2837954

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

src/main/java/cn/gudqs7/plugins/search/ApiSearchContributor.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,19 @@ public class ApiSearchContributor implements WeightedSearchEverywhereContributor
4747

4848
private final AnActionEvent actionEvent;
4949
private final Project myProject;
50-
private final PersistentSearchEverywhereContributorFilter<HttpMethod> myFilter;
50+
private PersistentSearchEverywhereContributorFilter<HttpMethod> myFilter;
5151
private List<ApiNavigationItem> navItemList;
5252

5353
public ApiSearchContributor(@NotNull AnActionEvent event) {
5454
this.actionEvent = event;
5555
myProject = event.getRequiredData(CommonDataKeys.PROJECT);
56-
myFilter = new PersistentSearchEverywhereContributorFilter<>(
57-
Arrays.asList(HttpMethod.values()), MethodFilterConfiguration.getInstance(myProject),
58-
Enum::name, httpMethod -> null
59-
);
56+
MethodFilterConfiguration methodFilterConfiguration = MethodFilterConfiguration.getInstance(myProject);
57+
if (methodFilterConfiguration != null) {
58+
myFilter = new PersistentSearchEverywhereContributorFilter<>(
59+
Arrays.asList(HttpMethod.values()), methodFilterConfiguration,
60+
Enum::name, httpMethod -> null
61+
);
62+
}
6063
}
6164

6265
@NotNull
@@ -163,7 +166,12 @@ public void fetchWeightedElements(@NotNull String pattern, @NotNull ProgressIndi
163166
}
164167

165168
MinusculeMatcher matcher = NameUtil.buildMatcher("*" + pattern + "*", NameUtil.MatchingCaseSensitivity.NONE);
166-
Set<HttpMethod> httpMethodSet = new HashSet<>(myFilter.getSelectedElements());
169+
Set<HttpMethod> httpMethodSet = new HashSet<>();
170+
if (myFilter == null) {
171+
httpMethodSet.addAll(Arrays.asList(HttpMethod.values()));
172+
} else {
173+
httpMethodSet.addAll(myFilter.getSelectedElements());
174+
}
167175
boolean selectAll = httpMethodSet.size() == HttpMethod.values().length;
168176

169177
// 从ALL -> URL Tab或快捷键进入时列表为空

src/main/java/cn/gudqs7/plugins/search/resolver/ApiNavigationItem.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import com.intellij.psi.PsiElement;
55
import com.intellij.psi.PsiMethod;
66
import lombok.Data;
7-
import lombok.EqualsAndHashCode;
8-
import lombok.ToString;
97
import org.apache.commons.lang3.StringUtils;
108
import org.jetbrains.annotations.NotNull;
119

@@ -14,8 +12,6 @@
1412
* @date 2022/5/28
1513
*/
1614
@Data
17-
@ToString(doNotUseGetters = true)
18-
@EqualsAndHashCode(doNotUseGetters = true)
1915
public class ApiNavigationItem {
2016

2117
private PsiElement psiElement;
@@ -44,4 +40,8 @@ public String getRightText() {
4440
}
4541
}
4642

43+
@Override
44+
public String toString() {
45+
return getRightText();
46+
}
4747
}

0 commit comments

Comments
 (0)