mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
push ImportHelper usagef from ImportListElement to JavaPsiImplementationHelper
This commit is contained in:
@@ -15,9 +15,12 @@
|
||||
*/
|
||||
package com.intellij.psi.impl;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiImportList;
|
||||
import com.intellij.psi.PsiImportStatementBase;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
@@ -26,6 +29,8 @@ public abstract class JavaPsiImplementationHelper {
|
||||
public static JavaPsiImplementationHelper getInstance(Project project) {
|
||||
return ServiceManager.getService(project, JavaPsiImplementationHelper.class);
|
||||
}
|
||||
|
||||
|
||||
public abstract PsiClass getOriginalClass(PsiClass psiClass);
|
||||
|
||||
public abstract ASTNode getDefaultImportAnchor(PsiImportList list, PsiImportStatementBase statement);
|
||||
}
|
||||
|
||||
@@ -15,15 +15,17 @@
|
||||
*/
|
||||
package com.intellij.psi.impl;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.OrderEntry;
|
||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.impl.source.codeStyle.ImportHelper;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -73,4 +75,11 @@ public class JavaPsiImplementationHelperImpl extends JavaPsiImplementationHelper
|
||||
|
||||
return original != null ? original : psiClass;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ASTNode getDefaultImportAnchor(PsiImportList list, PsiImportStatementBase statement) {
|
||||
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(list.getProject());
|
||||
ImportHelper importHelper = new ImportHelper(settings);
|
||||
return importHelper.getDefaultAnchor(list, statement);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,10 +18,8 @@ package com.intellij.psi.impl.source.tree.java;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiImportList;
|
||||
import com.intellij.psi.PsiImportStatementBase;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.impl.JavaPsiImplementationHelper;
|
||||
import com.intellij.psi.impl.source.SourceTreeToPsiMap;
|
||||
import com.intellij.psi.impl.source.codeStyle.ImportHelper;
|
||||
import com.intellij.psi.impl.source.tree.CompositeElement;
|
||||
import com.intellij.psi.impl.source.tree.JavaElementType;
|
||||
import com.intellij.psi.impl.source.tree.TreeElement;
|
||||
@@ -34,17 +32,15 @@ public class ImportListElement extends CompositeElement{
|
||||
public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before){
|
||||
if (before == null){
|
||||
if (first == last && (first.getElementType() == JavaElementType.IMPORT_STATEMENT || first.getElementType() == JavaElementType.IMPORT_STATIC_STATEMENT)){
|
||||
anchor = getDefaultAnchor((PsiImportList)SourceTreeToPsiMap.treeElementToPsi(this),
|
||||
(PsiImportStatementBase)SourceTreeToPsiMap.treeElementToPsi(first));
|
||||
final PsiImportList list = (PsiImportList)SourceTreeToPsiMap.treeElementToPsi(this);
|
||||
final PsiImportStatementBase statement = (PsiImportStatementBase)SourceTreeToPsiMap.treeElementToPsi(first);
|
||||
final JavaPsiImplementationHelper instance = JavaPsiImplementationHelper.getInstance(list.getProject());
|
||||
if (instance != null) {
|
||||
anchor = instance.getDefaultImportAnchor(list, statement);
|
||||
}
|
||||
before = Boolean.TRUE;
|
||||
}
|
||||
}
|
||||
return super.addInternal(first, last, anchor, before);
|
||||
}
|
||||
|
||||
public static ASTNode getDefaultAnchor(PsiImportList list, PsiImportStatementBase statement) {
|
||||
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(list.getProject());
|
||||
ImportHelper importHelper = new ImportHelper(settings);
|
||||
return importHelper.getDefaultAnchor(list, statement);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user