From 97d96b480eb711a35b3024b0943e3ee801b7698b Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Tue, 24 Apr 2012 18:24:40 +0400 Subject: [PATCH] Changed completion for classes, so if they have the same name as already imported, new import is not added. Qualified name is inserted instead. --- .../handlers/JetClassInsertHandler.java | 15 +++++------- .../handlers/JetJavaClassInsertHandler.java | 6 +++-- .../plugin/quickfix/ImportInsertHelper.java | 24 +++++++++++++++++++ 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetClassInsertHandler.java b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetClassInsertHandler.java index c158c11553f..f27d3e5404e 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetClassInsertHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetClassInsertHandler.java @@ -49,15 +49,12 @@ public class JetClassInsertHandler implements InsertHandler { } if (context.getFile() instanceof JetFile && item.getObject() instanceof JetLookupObject) { - final DeclarationDescriptor descriptor = ((JetLookupObject) item.getObject()).getDescriptor(); - if (descriptor != null) { - ApplicationManager.getApplication().runWriteAction(new Runnable() { - @Override - public void run() { - final FqName fqn = DescriptorUtils.getFQName(descriptor).toSafe(); - ImportInsertHelper.addImportDirective(fqn, jetFile); - } - }); + JetLookupObject lookupObject = (JetLookupObject)item.getObject(); + final DeclarationDescriptor descriptor = lookupObject.getDescriptor(); + PsiElement targetElement = lookupObject.getPsiElement(); + if (descriptor != null && targetElement != null) { + final FqName fqn = DescriptorUtils.getFQName(descriptor).toSafe(); + ImportInsertHelper.addImportDirectiveOrChangeToFqName(fqn, jetFile, context.getStartOffset(), targetElement); } } } diff --git a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetJavaClassInsertHandler.java b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetJavaClassInsertHandler.java index c4737481e07..6607e1daa7b 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetJavaClassInsertHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetJavaClassInsertHandler.java @@ -35,8 +35,10 @@ public class JetJavaClassInsertHandler implements InsertHandler