mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
el variables from including files: JspFileIndex refactored to use BaseJspFile
This commit is contained in:
@@ -27,6 +27,7 @@ import com.intellij.psi.impl.source.codeStyle.CodeEditUtil;
|
||||
import com.intellij.psi.impl.source.jsp.JspContextManager;
|
||||
import com.intellij.psi.impl.source.jsp.jspJava.JspCodeBlock;
|
||||
import com.intellij.psi.impl.source.tree.*;
|
||||
import com.intellij.psi.jsp.BaseJspFile;
|
||||
import com.intellij.psi.jsp.JspElementType;
|
||||
import com.intellij.psi.jsp.JspFile;
|
||||
import com.intellij.psi.jsp.JspSpiUtil;
|
||||
@@ -289,10 +290,10 @@ public class PsiLocalVariableImpl extends CompositePsiElement implements PsiLoca
|
||||
}
|
||||
|
||||
final Set<PsiFile> allIncluded = new THashSet<PsiFile>(10);
|
||||
final JspFile rootContext = contextManager.getRootContextFile(jspFile);
|
||||
final BaseJspFile rootContext = contextManager.getRootContextFile(jspFile);
|
||||
allIncluded.add(rootContext);
|
||||
JspSpiUtil.visitAllIncludedFilesRecursively(rootContext, new Processor<JspFile>() {
|
||||
public boolean process(final JspFile file) {
|
||||
JspSpiUtil.visitAllIncludedFilesRecursively(rootContext, new Processor<BaseJspFile>() {
|
||||
public boolean process(final BaseJspFile file) {
|
||||
allIncluded.add(file);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.intellij.psi.impl.source.jsp;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.jsp.BaseJspFile;
|
||||
import com.intellij.psi.jsp.JspFile;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -32,20 +33,22 @@ public abstract class JspContextManager {
|
||||
return project.getComponent(JspContextManager.class);
|
||||
}
|
||||
|
||||
public abstract JspFile[] getSuitableContextFiles(@NotNull PsiFile file);
|
||||
public abstract BaseJspFile[] getSuitableContextFiles(@NotNull PsiFile file);
|
||||
|
||||
public abstract void setContextFile(@NotNull PsiFile file, @Nullable JspFile contextFile, final boolean userDefined);
|
||||
public abstract void setContextFile(@NotNull PsiFile file, @Nullable BaseJspFile contextFile, final boolean userDefined);
|
||||
|
||||
public abstract @Nullable JspFile getContextFile(@NotNull PsiFile file);
|
||||
public abstract @Nullable
|
||||
BaseJspFile getContextFile(@NotNull PsiFile file);
|
||||
|
||||
public abstract @Nullable JspFile getConfiguredContextFile(@NotNull PsiFile file);
|
||||
|
||||
public @NotNull JspFile getRootContextFile(@NotNull JspFile file) {
|
||||
JspFile rootContext = file;
|
||||
HashSet<JspFile> recursionPreventer = new HashSet<JspFile>();
|
||||
public @NotNull
|
||||
BaseJspFile getRootContextFile(@NotNull BaseJspFile file) {
|
||||
BaseJspFile rootContext = file;
|
||||
HashSet<BaseJspFile> recursionPreventer = new HashSet<BaseJspFile>();
|
||||
do {
|
||||
recursionPreventer.add(rootContext);
|
||||
JspFile context = getContextFile(rootContext);
|
||||
BaseJspFile context = getContextFile(rootContext);
|
||||
if (context == null || recursionPreventer.contains(context)) break;
|
||||
rootContext = context;
|
||||
}
|
||||
|
||||
@@ -62,14 +62,14 @@ public abstract class JspSpiUtil {
|
||||
|
||||
protected abstract int _escapeCharsInJspContext(JspFile file, int offset, String toEscape) throws IncorrectOperationException;
|
||||
|
||||
public static void visitAllIncludedFilesRecursively(JspFile jspFile, Processor<JspFile> visitor) {
|
||||
public static void visitAllIncludedFilesRecursively(BaseJspFile jspFile, Processor<BaseJspFile> visitor) {
|
||||
final JspSpiUtil util = getJspSpiUtil();
|
||||
if (util != null) {
|
||||
util._visitAllIncludedFilesRecursively(jspFile, visitor);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void _visitAllIncludedFilesRecursively(JspFile jspFile, Processor<JspFile> visitor);
|
||||
protected abstract void _visitAllIncludedFilesRecursively(BaseJspFile jspFile, Processor<BaseJspFile> visitor);
|
||||
|
||||
@Nullable
|
||||
public static PsiElement resolveMethodPropertyReference(@NotNull PsiReference reference, @Nullable PsiClass resolvedClass, boolean readable) {
|
||||
|
||||
Reference in New Issue
Block a user