Skip to content

Commit

Permalink
fix #425: use module file names in GoToModule provider
Browse files Browse the repository at this point in the history
  • Loading branch information
deadok22 committed Mar 24, 2014
1 parent 9fd3ca0 commit 043718b
Showing 1 changed file with 28 additions and 1 deletion.
29 changes: 28 additions & 1 deletion src/org/intellij/erlang/go/ErlangModuleContributor.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,17 @@
import com.intellij.navigation.ChooseByNameContributor;
import com.intellij.navigation.NavigationItem;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.ArrayUtil;
import org.intellij.erlang.ErlangModuleIndex;
import org.intellij.erlang.ErlangStructureViewFactory;
import org.intellij.erlang.psi.ErlangModule;
import org.intellij.erlang.psi.ErlangNamedElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -38,7 +42,10 @@ public NavigationItem[] getItemsByName(String name, String pattern, Project proj
List<ErlangModule> result = ErlangModuleIndex.getModulesByName(project, name, scope);
ArrayList<NavigationItem> items = new ArrayList<NavigationItem>(result.size());
for (ErlangNamedElement element : result) {
items.add(new ErlangStructureViewFactory.Element(element));
PsiFile containingFile = element.getContainingFile();
VirtualFile virtualFile = containingFile != null ? containingFile.getVirtualFile() : null;
String moduleName = virtualFile != null ? virtualFile.getNameWithoutExtension() : null;
items.add(new ErlangModuleNavigationItem(element, moduleName == null ? element.getName() : moduleName));
}
return items.toArray(new NavigationItem[items.size()]);
}
Expand All @@ -48,4 +55,24 @@ public NavigationItem[] getItemsByName(String name, String pattern, Project proj
public String[] getNames(Project project, boolean includeNonProjectItems) {
return ArrayUtil.toStringArray(ErlangModuleIndex.getNames(project));
}

private static class ErlangModuleNavigationItem extends ErlangStructureViewFactory.Element {
private final String myPresentableName;

public ErlangModuleNavigationItem(@NotNull PsiElement element, @Nullable String presentableName) {
super(element);
myPresentableName = presentableName;
}

@Nullable
@Override
public String getName() {
return myPresentableName;
}

@Override
public String getPresentableText() {
return myPresentableName;
}
}
}

0 comments on commit 043718b

Please sign in to comment.