diff --git a/openapi/src/com/intellij/lang/folding/FoldingBuilder.java b/openapi/src/com/intellij/lang/folding/FoldingBuilder.java index f78ee657eb40..f067abf76647 100644 --- a/openapi/src/com/intellij/lang/folding/FoldingBuilder.java +++ b/openapi/src/com/intellij/lang/folding/FoldingBuilder.java @@ -1,7 +1,7 @@ package com.intellij.lang.folding; +import com.intellij.lang.ASTNode; import com.intellij.openapi.editor.Document; -import com.intellij.psi.PsiElement; /** * Created by IntelliJ IDEA. @@ -11,9 +11,9 @@ import com.intellij.psi.PsiElement; * To change this template use File | Settings | File Templates. */ public interface FoldingBuilder { - FoldingDescriptor[] buildFoldRegions(PsiElement file, Document document); + FoldingDescriptor[] buildFoldRegions(ASTNode node, Document document); - String getPlaceholderText(PsiElement elt); + String getPlaceholderText(ASTNode node); - boolean isCollapsedByDefault(PsiElement elt); + boolean isCollapsedByDefault(ASTNode node); } diff --git a/openapi/src/com/intellij/lang/folding/FoldingDescriptor.java b/openapi/src/com/intellij/lang/folding/FoldingDescriptor.java index 3d128e12e9d8..ee0c3c2ff7c6 100644 --- a/openapi/src/com/intellij/lang/folding/FoldingDescriptor.java +++ b/openapi/src/com/intellij/lang/folding/FoldingDescriptor.java @@ -1,7 +1,7 @@ package com.intellij.lang.folding; +import com.intellij.lang.ASTNode; import com.intellij.openapi.util.TextRange; -import com.intellij.psi.PsiElement; /** * Created by IntelliJ IDEA. @@ -11,15 +11,15 @@ import com.intellij.psi.PsiElement; * To change this template use File | Settings | File Templates. */ public class FoldingDescriptor { - private PsiElement myElement; + private ASTNode myElement; private TextRange myRange; - public FoldingDescriptor(final PsiElement element, final TextRange range) { - myElement = element; + public FoldingDescriptor(final ASTNode node, final TextRange range) { + myElement = node; myRange = range; } - public PsiElement getElement() { + public ASTNode getElement() { return myElement; } diff --git a/openapi/src/com/intellij/psi/PsiElement.java b/openapi/src/com/intellij/psi/PsiElement.java index 1ec3ba943b50..0b5ee7a6c7d4 100644 --- a/openapi/src/com/intellij/psi/PsiElement.java +++ b/openapi/src/com/intellij/psi/PsiElement.java @@ -4,6 +4,7 @@ */ package com.intellij.psi; +import com.intellij.lang.ASTNode; import com.intellij.lang.Language; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Iconable; @@ -116,4 +117,6 @@ public interface PsiElement extends UserDataHolder, Iconable { GlobalSearchScope getResolveScope(); SearchScope getUseScope(); + + ASTNode getNode(); } diff --git a/source/com/intellij/codeInsight/folding/impl/FoldingPolicy.java b/source/com/intellij/codeInsight/folding/impl/FoldingPolicy.java index e895f03bf962..2bd0c8402f1a 100644 --- a/source/com/intellij/codeInsight/folding/impl/FoldingPolicy.java +++ b/source/com/intellij/codeInsight/folding/impl/FoldingPolicy.java @@ -35,10 +35,10 @@ class FoldingPolicy { if (lang != null) { final FoldingBuilder foldingBuilder = lang.getFoldingBuilder(); if (foldingBuilder != null) { - final FoldingDescriptor[] foldingDescriptors = foldingBuilder.buildFoldRegions(file, document); + final FoldingDescriptor[] foldingDescriptors = foldingBuilder.buildFoldRegions(file.getNode(), document); for (int i = 0; i < foldingDescriptors.length; i++) { FoldingDescriptor descriptor = foldingDescriptors[i]; - map.put(descriptor.getElement(), descriptor.getRange()); + map.put(SourceTreeToPsiMap.treeElementToPsi(descriptor.getElement()), descriptor.getRange()); } return map; } @@ -261,7 +261,7 @@ class FoldingPolicy { if (lang != null) { final FoldingBuilder foldingBuilder = lang.getFoldingBuilder(); if (foldingBuilder != null) { - return foldingBuilder.getPlaceholderText(element); + return foldingBuilder.getPlaceholderText(element.getNode()); } } @@ -291,7 +291,7 @@ class FoldingPolicy { if (lang != null) { final FoldingBuilder foldingBuilder = lang.getFoldingBuilder(); if (foldingBuilder != null) { - return foldingBuilder.isCollapsedByDefault(element); + return foldingBuilder.isCollapsedByDefault(element.getNode()); } } @@ -516,10 +516,8 @@ class FoldingPolicy { return buffer.toString(); } else if (element instanceof PsiJavaFile) { return null; - } else { - LOG.error("Unknown element:" + element); - return null; } + return null; } private static T restoreElementInternal (PsiElement parent, String name, int index, Class hisClass) { diff --git a/source/com/intellij/psi/impl/compiled/ClsElementImpl.java b/source/com/intellij/psi/impl/compiled/ClsElementImpl.java index 72fed0db0117..fd403104d755 100644 --- a/source/com/intellij/psi/impl/compiled/ClsElementImpl.java +++ b/source/com/intellij/psi/impl/compiled/ClsElementImpl.java @@ -1,5 +1,6 @@ package com.intellij.psi.impl.compiled; +import com.intellij.lang.ASTNode; import com.intellij.lang.Language; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.StdFileTypes; @@ -183,4 +184,8 @@ abstract class ClsElementImpl extends PsiElementBase implements PsiCompiledEleme public PsiElement getOriginalElement() { return this; } + + public ASTNode getNode() { + return null; + } } diff --git a/source/com/intellij/psi/impl/file/PsiBinaryFileImpl.java b/source/com/intellij/psi/impl/file/PsiBinaryFileImpl.java index 0ded70917a93..9df6b48ad569 100644 --- a/source/com/intellij/psi/impl/file/PsiBinaryFileImpl.java +++ b/source/com/intellij/psi/impl/file/PsiBinaryFileImpl.java @@ -1,5 +1,6 @@ package com.intellij.psi.impl.file; +import com.intellij.lang.ASTNode; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.FileTypeManager; @@ -248,4 +249,8 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile, LOG.assertTrue(false); return null; } + + public ASTNode getNode() { + return null; + } } diff --git a/source/com/intellij/psi/impl/file/PsiDirectoryImpl.java b/source/com/intellij/psi/impl/file/PsiDirectoryImpl.java index beb8006d6f77..d3702a189af2 100644 --- a/source/com/intellij/psi/impl/file/PsiDirectoryImpl.java +++ b/source/com/intellij/psi/impl/file/PsiDirectoryImpl.java @@ -3,6 +3,7 @@ package com.intellij.psi.impl.file; import com.intellij.ide.fileTemplates.FileTemplate; import com.intellij.ide.fileTemplates.FileTemplateManager; import com.intellij.ide.fileTemplates.FileTemplateUtil; +import com.intellij.lang.ASTNode; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileTypes.FileType; @@ -590,5 +591,9 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory { public String toString() { return "PsiDirectory:" + myFile.getPresentableUrl(); } + + public ASTNode getNode() { + return null; + } } diff --git a/source/com/intellij/psi/impl/file/PsiPackageImpl.java b/source/com/intellij/psi/impl/file/PsiPackageImpl.java index 4250a0772075..72dafc9743eb 100644 --- a/source/com/intellij/psi/impl/file/PsiPackageImpl.java +++ b/source/com/intellij/psi/impl/file/PsiPackageImpl.java @@ -1,5 +1,6 @@ package com.intellij.psi.impl.file; +import com.intellij.lang.ASTNode; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.undo.DocumentReference; import com.intellij.openapi.command.undo.UndoManager; @@ -21,9 +22,6 @@ import com.intellij.psi.scope.NameHint; import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.util.IncorrectOperationException; -import com.intellij.ide.impl.PackageViewSelectInTarget; -import com.intellij.ide.projectView.impl.PackageViewPane; -import com.intellij.ide.projectView.ProjectView; import java.util.ArrayList; import java.util.Iterator; @@ -424,4 +422,8 @@ public class PsiPackageImpl extends PsiElementBase implements PsiPackage { public boolean isPhysical() { return true; } + + public ASTNode getNode() { + return null; + } } \ No newline at end of file diff --git a/source/com/intellij/psi/impl/light/LightElement.java b/source/com/intellij/psi/impl/light/LightElement.java index 27ba0ea456d1..7bd95602b92a 100644 --- a/source/com/intellij/psi/impl/light/LightElement.java +++ b/source/com/intellij/psi/impl/light/LightElement.java @@ -1,5 +1,6 @@ package com.intellij.psi.impl.light; +import com.intellij.lang.ASTNode; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; @@ -108,4 +109,7 @@ public abstract class LightElement extends PsiElementBase { throw new IncorrectOperationException(); } + public ASTNode getNode() { + return null; + } } diff --git a/source/com/intellij/psi/impl/migration/MigrationPackageImpl.java b/source/com/intellij/psi/impl/migration/MigrationPackageImpl.java index 2932b4577c3d..077adf79b827 100644 --- a/source/com/intellij/psi/impl/migration/MigrationPackageImpl.java +++ b/source/com/intellij/psi/impl/migration/MigrationPackageImpl.java @@ -1,5 +1,6 @@ package com.intellij.psi.impl.migration; +import com.intellij.lang.ASTNode; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiPackage; import com.intellij.psi.impl.file.PsiPackageImpl; @@ -38,4 +39,8 @@ public class MigrationPackageImpl extends PsiPackageImpl implements PsiPackage { public VirtualFile[] occursInPackagePrefixes() { return VirtualFile.EMPTY_ARRAY; } + + public ASTNode getNode() { + return null; + } } diff --git a/source/com/intellij/psi/impl/source/tree/CompositePsiElement.java b/source/com/intellij/psi/impl/source/tree/CompositePsiElement.java index 843b525de49f..b04e24e8d161 100644 --- a/source/com/intellij/psi/impl/source/tree/CompositePsiElement.java +++ b/source/com/intellij/psi/impl/source/tree/CompositePsiElement.java @@ -242,4 +242,8 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps public Language getLanguage() { return getElementType().getLanguage(); } + + public ASTNode getNode() { + return this; + } } diff --git a/source/com/intellij/psi/impl/source/tree/LeafPsiElement.java b/source/com/intellij/psi/impl/source/tree/LeafPsiElement.java index 366df140a383..853f91985f01 100644 --- a/source/com/intellij/psi/impl/source/tree/LeafPsiElement.java +++ b/source/com/intellij/psi/impl/source/tree/LeafPsiElement.java @@ -190,4 +190,8 @@ public class LeafPsiElement extends LeafElementImpl implements PsiElement { public Language getLanguage() { return getElementType().getLanguage(); } + + public ASTNode getNode() { + return this; + } }