mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Folding API refined. More foldings added in JavaScript.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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 extends PsiNamedElement> T restoreElementInternal (PsiElement parent, String name, int index, Class<T> hisClass) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -242,4 +242,8 @@ public abstract class CompositePsiElement extends CompositeElement implements Ps
|
||||
public Language getLanguage() {
|
||||
return getElementType().getLanguage();
|
||||
}
|
||||
|
||||
public ASTNode getNode() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,4 +190,8 @@ public class LeafPsiElement extends LeafElementImpl implements PsiElement {
|
||||
public Language getLanguage() {
|
||||
return getElementType().getLanguage();
|
||||
}
|
||||
|
||||
public ASTNode getNode() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user