mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
diagnose offsets (EA-37519)
This commit is contained in:
@@ -16,11 +16,15 @@
|
||||
package com.intellij.codeInsight.lookup;
|
||||
|
||||
import com.intellij.codeInsight.completion.*;
|
||||
import com.intellij.diagnostic.LogMessageEx;
|
||||
import com.intellij.diagnostic.errordialog.Attachment;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
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.DebugUtil;
|
||||
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
||||
import com.intellij.psi.impl.source.PsiClassReferenceType;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
@@ -35,6 +39,7 @@ import java.util.Set;
|
||||
* @author peter
|
||||
*/
|
||||
public class PsiTypeLookupItem extends LookupItem {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.lookup.PsiTypeLookupItem");
|
||||
public static final ClassConditionKey<PsiTypeLookupItem> CLASS_CONDITION_KEY = ClassConditionKey.create(PsiTypeLookupItem.class);
|
||||
private final boolean myDiamond;
|
||||
private final int myBracketsCount;
|
||||
@@ -234,6 +239,14 @@ public class PsiTypeLookupItem extends LookupItem {
|
||||
if (aClass.getQualifiedName() == null) return;
|
||||
PsiFile file = context.getFile();
|
||||
int newTail = JavaCompletionUtil.insertClassReference(aClass, file, context.getStartOffset(), context.getTailOffset());
|
||||
if (newTail > context.getDocument().getTextLength() || newTail < 0) {
|
||||
LOG.error(LogMessageEx.createEvent("Invalid offset after insertion ",
|
||||
"offset=" + newTail + "\n" +
|
||||
"document=" + context.getDocument() + "\n" +
|
||||
DebugUtil.currentStackTrace(),
|
||||
new Attachment(context.getFile().getViewProvider().getVirtualFile())));
|
||||
|
||||
}
|
||||
context.setTailOffset(newTail);
|
||||
JavaCompletionUtil.shortenReference(file, context.getStartOffset());
|
||||
PostprocessReformattingAspect.getInstance(context.getProject()).doPostponedFormatting();
|
||||
|
||||
Reference in New Issue
Block a user