mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ability to provide custom structure view wrapper (editor action "Select in -> File Structure")
structure view model must use Editor from passed FileEditor, but not current focused Editor if document virtual file is not in local file system
This commit is contained in:
@@ -4,19 +4,23 @@ import com.intellij.ide.structureView.StructureViewBuilder;
|
||||
import com.intellij.ide.structureView.StructureViewModel;
|
||||
import com.intellij.ide.structureView.TreeBasedStructureViewBuilder;
|
||||
import com.intellij.lang.PsiStructureViewFactory;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* User : catherine
|
||||
*/
|
||||
public class RestStructureViewFactory implements PsiStructureViewFactory {
|
||||
@Override
|
||||
public StructureViewBuilder getStructureViewBuilder(final PsiFile psiFile) {
|
||||
return new TreeBasedStructureViewBuilder() {
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public StructureViewModel createStructureViewModel() {
|
||||
return new RestStructureViewModel(psiFile);
|
||||
public StructureViewModel createStructureViewModel(@Nullable Editor editor) {
|
||||
return new RestStructureViewModel(psiFile, editor);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,17 +4,19 @@ import com.intellij.ide.structureView.StructureViewModel;
|
||||
import com.intellij.ide.structureView.StructureViewModelBase;
|
||||
import com.intellij.ide.structureView.StructureViewTreeElement;
|
||||
import com.intellij.ide.util.treeView.smartTree.Sorter;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.jetbrains.rest.RestFile;
|
||||
import com.jetbrains.rest.psi.RestTitle;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* User : catherine
|
||||
*/
|
||||
public class RestStructureViewModel extends StructureViewModelBase implements StructureViewModel.ElementInfoProvider, StructureViewModel.ExpandInfoProvider {
|
||||
public RestStructureViewModel(@NotNull PsiFile psiFile) {
|
||||
super(psiFile, new RestStructureViewElement(psiFile));
|
||||
public RestStructureViewModel(@NotNull PsiFile psiFile, @Nullable Editor editor) {
|
||||
super(psiFile, editor, new RestStructureViewElement(psiFile));
|
||||
withSorters(Sorter.ALPHA_SORTER);
|
||||
withSuitableClasses(RestTitle.class);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user