First drop of structure view for javascript implemented.

This commit is contained in:
Maxim Shafirov
2005-02-10 16:16:03 +03:00
parent af2e85ea81
commit 2157929232
3 changed files with 15 additions and 2 deletions
@@ -1,6 +1,7 @@
package com.intellij.lang;
import com.intellij.codeFormatting.PseudoTextBuilder;
import com.intellij.ide.structureView.StructureViewModel;
import com.intellij.lang.annotation.Annotator;
import com.intellij.lang.cacheBuilder.WordsScanner;
import com.intellij.lang.folding.FoldingBuilder;
@@ -8,6 +9,7 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileTypes.PlainSyntaxHighlighter;
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
import com.intellij.psi.tree.IElementType;
import java.util.HashMap;
@@ -74,4 +76,8 @@ public abstract class Language {
public String toString() {
return "Language: " + myID;
}
public StructureViewModel getStructureViewModel(final PsiElement psiElement) {
return null;
}
}
@@ -1,6 +1,8 @@
package com.intellij.openapi.fileTypes;
import com.intellij.ide.structureView.StructureViewModel;
import com.intellij.lang.Language;
import com.intellij.lang.ParserDefinition;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
@@ -26,6 +28,11 @@ public abstract class LanguageFileType implements FileType{
return myLanguage.getSyntaxHighlighter(project);
}
public StructureViewModel getStructureViewModel(VirtualFile file, Project project) {
final ParserDefinition parserDefinition = myLanguage.getParserDefinition();
return parserDefinition != null ? myLanguage.getStructureViewModel(parserDefinition.createFile(project, file)) : null;
}
public final boolean isBinary() {
return false;
}
@@ -106,9 +106,9 @@ final class StructureTreeBuilder extends AbstractTreeBuilder {
}
private void childrenChanged() {
if (myOutOfCodeBlockModificationCount == myModificationTracker.getOutOfCodeBlockModificationCount()) {
/*if (myOutOfCodeBlockModificationCount == myModificationTracker.getOutOfCodeBlockModificationCount()) {
return;
}
}*/
try {
((SmartTreeStructure)getTreeStructure()).rebuildTree();
myUpdater.addSubtreeToUpdate(myRootNode);