mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
cleanup
This commit is contained in:
+1
-1
@@ -79,7 +79,7 @@ class ConstructorInsertHandler implements InsertHandler<LookupElementDecorator<L
|
||||
}
|
||||
|
||||
if (item.getDelegate() instanceof JavaPsiClassReferenceElement) {
|
||||
DefaultInsertHandler.addImportForItem(context, delegate);
|
||||
PsiTypeLookupItem.addImportForItem(context, psiClass);
|
||||
}
|
||||
|
||||
insertParentheses(context, delegate, psiClass, !inAnonymous && isAbstract);
|
||||
|
||||
@@ -22,18 +22,16 @@ import com.intellij.codeInsight.TailTypes;
|
||||
import com.intellij.codeInsight.lookup.Lookup;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupItem;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class DefaultInsertHandler extends TemplateInsertHandler implements Cloneable {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.completion.DefaultInsertHandler");
|
||||
|
||||
public static final DefaultInsertHandler NO_TAIL_HANDLER = new DefaultInsertHandler(){
|
||||
@Override
|
||||
@@ -54,8 +52,6 @@ public class DefaultInsertHandler extends TemplateInsertHandler implements Clone
|
||||
final Document document = editor.getDocument();
|
||||
PsiDocumentManager.getInstance(project).commitDocument(document);
|
||||
|
||||
final PsiFile file = context.getFile();
|
||||
|
||||
TailType tailType = getTailType(completionChar, item);
|
||||
|
||||
InsertHandlerState state = new InsertHandlerState(context.getSelectionEndOffset(), context.getSelectionEndOffset());
|
||||
@@ -73,8 +69,6 @@ public class DefaultInsertHandler extends TemplateInsertHandler implements Clone
|
||||
state.caretOffset = processTail(tailType, state.caretOffset, state.tailOffset, editor);
|
||||
editor.getSelectionModel().removeSelection();
|
||||
|
||||
addImportForItem(context, item);
|
||||
|
||||
if (tailType == TailType.DOT || context.getCompletionChar() == '.') {
|
||||
AutoPopupController.getInstance(project).autoPopupMemberLookup(editor, null);
|
||||
}
|
||||
@@ -181,50 +175,6 @@ public class DefaultInsertHandler extends TemplateInsertHandler implements Clone
|
||||
JavaCompletionUtil.initOffsets(file, file.getProject(), offsetMap);
|
||||
}
|
||||
|
||||
public static void addImportForItem(InsertionContext context, LookupElement item) {
|
||||
PsiDocumentManager.getInstance(context.getProject()).commitAllDocuments();
|
||||
|
||||
PsiFile file = context.getFile();
|
||||
Object o = item.getObject();
|
||||
if (o instanceof PsiClass){
|
||||
PsiClass aClass = (PsiClass)o;
|
||||
if (aClass.getQualifiedName() == null) return;
|
||||
final String lookupString = item.getLookupString();
|
||||
int length = lookupString.length();
|
||||
final int i = lookupString.indexOf('<');
|
||||
if (i >= 0) length = i;
|
||||
addImportForClass(aClass, context, length);
|
||||
JavaCompletionUtil.shortenReference(file, context.getStartOffset());
|
||||
}
|
||||
else if (o instanceof PsiType){
|
||||
PsiType type = ((PsiType)o).getDeepComponentType();
|
||||
if (type instanceof PsiClassType) {
|
||||
PsiClass refClass = ((PsiClassType) type).resolve();
|
||||
if (refClass != null){
|
||||
int length = refClass.getName().length();
|
||||
addImportForClass(refClass, context, length);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (o instanceof PsiMethod){
|
||||
PsiMethod method = (PsiMethod)o;
|
||||
if (method.isConstructor()){
|
||||
PsiClass aClass = method.getContainingClass();
|
||||
if (aClass != null){
|
||||
int length = method.getName().length();
|
||||
addImportForClass(aClass, context, length);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void addImportForClass(PsiClass aClass, InsertionContext context, int nameLength) {
|
||||
context.setTailOffset(JavaCompletionUtil.insertClassReference(aClass, context.getFile(), context.getStartOffset(),
|
||||
context.getStartOffset() + nameLength));
|
||||
PostprocessReformattingAspect.getInstance(context.getProject()).doPostponedFormatting();
|
||||
}
|
||||
|
||||
|
||||
public static class InsertHandlerState{
|
||||
int tailOffset;
|
||||
int caretOffset;
|
||||
|
||||
+2
-1
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.AutoPopupController;
|
||||
import com.intellij.codeInsight.ExpectedTypeInfo;
|
||||
import com.intellij.codeInsight.ExpectedTypesProvider;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.PsiTypeLookupItem;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
@@ -89,7 +90,7 @@ class JavaClassNameInsertHandler implements InsertHandler<JavaPsiClassReferenceE
|
||||
context.setAddCompletionChar(false);
|
||||
}
|
||||
|
||||
DefaultInsertHandler.addImportForItem(context, item);
|
||||
PsiTypeLookupItem.addImportForItem(context, psiClass);
|
||||
|
||||
if (shouldInsertParentheses(psiClass, file.findElementAt(context.getTailOffset() - 1))) {
|
||||
if (ConstructorInsertHandler.insertParentheses(context, item, psiClass, false)) {
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.intellij.openapi.editor.ScrollType;
|
||||
import com.intellij.openapi.util.ClassConditionKey;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
||||
import com.intellij.psi.impl.source.PsiClassReferenceType;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -72,7 +73,9 @@ public class PsiTypeLookupItem extends LookupItem {
|
||||
public void handleInsert(InsertionContext context) {
|
||||
PsiElement position = context.getFile().findElementAt(context.getStartOffset());
|
||||
assert position != null;
|
||||
DefaultInsertHandler.addImportForItem(context, this);
|
||||
if (getObject() instanceof PsiClass) {
|
||||
addImportForItem(context, (PsiClass)getObject());
|
||||
}
|
||||
context.getDocument().insertString(context.getTailOffset(), calcGenerics(position));
|
||||
JavaCompletionUtil.shortenReference(context.getFile(), context.getStartOffset());
|
||||
|
||||
@@ -223,4 +226,13 @@ public class PsiTypeLookupItem extends LookupItem {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void addImportForItem(InsertionContext context, PsiClass aClass) {
|
||||
if (aClass.getQualifiedName() == null) return;
|
||||
PsiFile file = context.getFile();
|
||||
int newTail = JavaCompletionUtil.insertClassReference(aClass, file, context.getStartOffset(), context.getTailOffset());
|
||||
context.setTailOffset(newTail);
|
||||
PostprocessReformattingAspect.getInstance(context.getProject()).doPostponedFormatting();
|
||||
JavaCompletionUtil.shortenReference(file, context.getStartOffset());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user