mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
don't erase generics when choosing a new class name with tab (IDEA-50622)
This commit is contained in:
+9
-2
@@ -71,8 +71,15 @@ class JavaClassNameInsertHandler implements InsertHandler<JavaPsiClassReferenceE
|
||||
|
||||
if (position != null) {
|
||||
PsiElement parent = position.getParent();
|
||||
if (parent instanceof PsiJavaCodeReferenceElement && PsiTreeUtil.getParentOfType(position, PsiDocTag.class) != null) {
|
||||
if (((PsiJavaCodeReferenceElement)parent).isReferenceTo(psiClass)) {
|
||||
if (parent instanceof PsiJavaCodeReferenceElement) {
|
||||
final PsiJavaCodeReferenceElement ref = (PsiJavaCodeReferenceElement)parent;
|
||||
if (PsiTreeUtil.getParentOfType(position, PsiDocTag.class) != null) {
|
||||
if (ref.isReferenceTo(psiClass)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
final PsiReferenceParameterList parameterList = ref.getParameterList();
|
||||
if (parameterList != null && parameterList.getTextLength() > 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -318,23 +318,27 @@ public class JavaCompletionUtil {
|
||||
|
||||
final PsiReference reference = file.findReferenceAt(selectionEndOffset);
|
||||
if(reference != null) {
|
||||
/*
|
||||
if(reference instanceof PsiJavaCodeReferenceElement){
|
||||
offsetMap.addOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET, element.getParent().getTextRange().getEndOffset());
|
||||
}
|
||||
else{
|
||||
offsetMap.addOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET,
|
||||
reference.getElement().getTextRange().getStartOffset() + reference.getRangeInElement().getEndOffset());
|
||||
}
|
||||
*/
|
||||
offsetMap.addOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET,
|
||||
reference.getElement().getTextRange().getStartOffset() + reference.getRangeInElement().getEndOffset());
|
||||
|
||||
element = file.findElementAt(offsetMap.getOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET));
|
||||
}
|
||||
else if (isWord(element)){
|
||||
/*
|
||||
if(element instanceof PsiIdentifier && element.getParent() instanceof PsiJavaCodeReferenceElement){
|
||||
offsetMap.addOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET, element.getParent().getTextRange().getEndOffset());
|
||||
}
|
||||
else{
|
||||
offsetMap.addOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET, element.getTextRange().getEndOffset());
|
||||
}
|
||||
*/
|
||||
offsetMap.addOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET, element.getTextRange().getEndOffset());
|
||||
|
||||
element = file.findElementAt(offsetMap.getOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET));
|
||||
if (element == null) return;
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
public class TestClass {
|
||||
|
||||
public TestClass create() {
|
||||
final int value = 1;
|
||||
return new Xx<caret>TexCompXxx<String>(value);
|
||||
}
|
||||
}
|
||||
|
||||
class Xxx { }
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
public class TestClass {
|
||||
|
||||
public TestClass create() {
|
||||
final int value = 1;
|
||||
return new Xxx<caret><String>(value);
|
||||
}
|
||||
}
|
||||
|
||||
class Xxx { }
|
||||
+6
@@ -747,6 +747,12 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
|
||||
checkResult();
|
||||
}
|
||||
|
||||
public void testClassNameWithGenericsTab() throws Throwable {
|
||||
configure()
|
||||
myFixture.type '\t'
|
||||
checkResult();
|
||||
}
|
||||
|
||||
public void testRightShift() throws Throwable {
|
||||
configure()
|
||||
assertStringItems("myField1", "myField2");
|
||||
|
||||
Reference in New Issue
Block a user