From 215792923240c44d9d2fe061e95b7a2d55110766 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Thu, 10 Feb 2005 16:16:03 +0300 Subject: [PATCH] First drop of structure view for javascript implemented. --- openapi/src/com/intellij/lang/Language.java | 6 ++++++ .../com/intellij/openapi/fileTypes/LanguageFileType.java | 7 +++++++ .../newStructureView/StructureTreeBuilder.java | 4 ++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/openapi/src/com/intellij/lang/Language.java b/openapi/src/com/intellij/lang/Language.java index 96a5e8128cd1..bbffcd88665e 100644 --- a/openapi/src/com/intellij/lang/Language.java +++ b/openapi/src/com/intellij/lang/Language.java @@ -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; + } } diff --git a/openapi/src/com/intellij/openapi/fileTypes/LanguageFileType.java b/openapi/src/com/intellij/openapi/fileTypes/LanguageFileType.java index 6b223cafaa42..b4ba2fb550d0 100644 --- a/openapi/src/com/intellij/openapi/fileTypes/LanguageFileType.java +++ b/openapi/src/com/intellij/openapi/fileTypes/LanguageFileType.java @@ -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; } diff --git a/source/com/intellij/ide/structureView/newStructureView/StructureTreeBuilder.java b/source/com/intellij/ide/structureView/newStructureView/StructureTreeBuilder.java index 1221337a7840..6bdee93d54be 100644 --- a/source/com/intellij/ide/structureView/newStructureView/StructureTreeBuilder.java +++ b/source/com/intellij/ide/structureView/newStructureView/StructureTreeBuilder.java @@ -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);