mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-80368 (AE at com.intellij.codeInsight.completion.CodeCompletionHandlerBase$1$1.run)
This commit is contained in:
+39
-37
@@ -64,53 +64,55 @@ public abstract class MavenRunnerParametersConfigurable implements Configurable,
|
||||
}
|
||||
});
|
||||
|
||||
MyCompletionProvider profilesCompletionProvider = new MyCompletionProvider(project) {
|
||||
@Override
|
||||
protected void addVariants(@NotNull CompletionResultSet result, MavenProjectsManager manager) {
|
||||
for (String profile : manager.getAvailableProfiles()) {
|
||||
result.addElement(LookupElementBuilder.create(profile));
|
||||
if (!project.isDefault()) {
|
||||
MyCompletionProvider profilesCompletionProvider = new MyCompletionProvider(project) {
|
||||
@Override
|
||||
protected void addVariants(@NotNull CompletionResultSet result, MavenProjectsManager manager) {
|
||||
for (String profile : manager.getAvailableProfiles()) {
|
||||
result.addElement(LookupElementBuilder.create(profile));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
profilesComponent.setComponent(profilesCompletionProvider.createEditor(project));
|
||||
};
|
||||
|
||||
MyCompletionProvider goalsCompletionProvider = new MyCompletionProvider(project) {
|
||||
|
||||
private volatile List<LookupElement> myCachedElements;
|
||||
|
||||
@Override
|
||||
protected void addVariants(@NotNull CompletionResultSet result, MavenProjectsManager manager) {
|
||||
List<LookupElement> cachedElements = myCachedElements;
|
||||
if (cachedElements == null) {
|
||||
Set<String> goals = new HashSet<String>();
|
||||
goals.addAll(MavenConstants.PHASES);
|
||||
profilesComponent.setComponent(profilesCompletionProvider.createEditor(project));
|
||||
|
||||
for (MavenProject mavenProject : manager.getProjects()) {
|
||||
for (MavenPlugin plugin : mavenProject.getPlugins()) {
|
||||
MavenPluginInfo pluginInfo = MavenArtifactUtil.readPluginInfo(manager.getLocalRepository(), plugin.getMavenId());
|
||||
if (pluginInfo != null) {
|
||||
for (MavenPluginInfo.Mojo mojo : pluginInfo.getMojos()) {
|
||||
goals.add(mojo.getDisplayName());
|
||||
MyCompletionProvider goalsCompletionProvider = new MyCompletionProvider(project) {
|
||||
|
||||
private volatile List<LookupElement> myCachedElements;
|
||||
|
||||
@Override
|
||||
protected void addVariants(@NotNull CompletionResultSet result, MavenProjectsManager manager) {
|
||||
List<LookupElement> cachedElements = myCachedElements;
|
||||
if (cachedElements == null) {
|
||||
Set<String> goals = new HashSet<String>();
|
||||
goals.addAll(MavenConstants.PHASES);
|
||||
|
||||
for (MavenProject mavenProject : manager.getProjects()) {
|
||||
for (MavenPlugin plugin : mavenProject.getPlugins()) {
|
||||
MavenPluginInfo pluginInfo = MavenArtifactUtil.readPluginInfo(manager.getLocalRepository(), plugin.getMavenId());
|
||||
if (pluginInfo != null) {
|
||||
for (MavenPluginInfo.Mojo mojo : pluginInfo.getMojos()) {
|
||||
goals.add(mojo.getDisplayName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cachedElements = new ArrayList<LookupElement>(goals.size());
|
||||
for (String goal : goals) {
|
||||
cachedElements.add(LookupElementBuilder.create(goal).setIcon(MavenIcons.PHASE_ICON));
|
||||
}
|
||||
|
||||
myCachedElements = cachedElements;
|
||||
}
|
||||
|
||||
cachedElements = new ArrayList<LookupElement>(goals.size());
|
||||
for (String goal : goals) {
|
||||
cachedElements.add(LookupElementBuilder.create(goal).setIcon(MavenIcons.PHASE_ICON));
|
||||
}
|
||||
|
||||
myCachedElements = cachedElements;
|
||||
result.addAllElements(cachedElements);
|
||||
}
|
||||
};
|
||||
|
||||
goalsComponent.setComponent(goalsCompletionProvider.createEditor(project));
|
||||
}
|
||||
|
||||
result.addAllElements(cachedElements);
|
||||
}
|
||||
};
|
||||
|
||||
goalsComponent.setComponent(goalsCompletionProvider.createEditor(project));
|
||||
|
||||
setAnchor(profilesComponent.getLabel());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user