package com.dmarcotte.handlebars.structure;
import com.dmarcotte.handlebars.psi.HbBlockWrapper;
import com.dmarcotte.handlebars.psi.HbPlainMustache;
import com.dmarcotte.handlebars.psi.HbPsiFile;
import com.intellij.ide.structureView.StructureViewTreeElement;
import com.intellij.ide.structureView.TextEditorBasedStructureViewModel;
import com.intellij.openapi.editor.Editor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
class HbStructureViewModel extends TextEditorBasedStructureViewModel {
private final HbPsiFile myFile;
// classes which we construct structure view nodes for
static final Class[] ourSuitableClasses = new Class[]{HbBlockWrapper.class, HbPlainMustache.class};
public HbStructureViewModel(@NotNull HbPsiFile psiFile, @Nullable Editor editor) {
super(editor, psiFile);
this.myFile = psiFile;
}
@NotNull
@Override
protected Class[] getSuitableClasses() {
return ourSuitableClasses;
}
@NotNull
@Override
public StructureViewTreeElement getRoot() {
return new HbTreeElementFile(myFile);
}
}