diff --git a/.idea/externalDependencies.xml b/.idea/externalDependencies.xml
index 3175a1f72809..8731c3e90e39 100644
--- a/.idea/externalDependencies.xml
+++ b/.idea/externalDependencies.xml
@@ -9,6 +9,6 @@
-
+
\ No newline at end of file
diff --git a/build/download_kotlin.xml b/build/download_kotlin.xml
index 4b1360bbadcc..937b11d21088 100644
--- a/build/download_kotlin.xml
+++ b/build/download_kotlin.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java
index d7968fa6b95d..7f39de64c579 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java
@@ -63,6 +63,7 @@ import static com.intellij.codeInsight.completion.ReferenceExpressionCompletionC
import static com.intellij.patterns.PlatformPatterns.psiElement;
public class JavaCompletionUtil {
+ public static final Key FORCE_SHOW_SIGNATURE_ATTR = Key.create("forceShowSignature");
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.completion.JavaCompletionUtil");
public static final Key> DYNAMIC_TYPE_EVALUATOR = Key.create("DYNAMIC_TYPE_EVALUATOR");
@@ -102,7 +103,7 @@ public class JavaCompletionUtil {
private static final Key>> ALL_METHODS_ATTRIBUTE = Key.create("allMethods");
- public static PsiType getQualifierType(LookupItem item) {
+ public static PsiType getQualifierType(LookupElement item) {
return item.getUserData(QUALIFIER_TYPE_ATTR);
}
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java
index 9698aa389779..5c8e7056d372 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaDocCompletionContributor.java
@@ -22,8 +22,9 @@ import com.intellij.codeInsight.editorActions.wordSelection.DocTagSelectioner;
import com.intellij.codeInsight.javadoc.JavaDocUtil;
import com.intellij.codeInsight.lookup.*;
import com.intellij.codeInspection.InspectionProfile;
-import com.intellij.codeInspection.SuppressionUtil;
+import com.intellij.codeInspection.SuppressionUtilCore;
import com.intellij.codeInspection.javaDoc.JavaDocLocalInspection;
+import com.intellij.codeInspection.javaDoc.JavaDocLocalInspectionBase;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.*;
import com.intellij.openapi.project.Project;
@@ -98,7 +99,7 @@ public class JavaDocCompletionContributor extends CompletionContributor {
JavaConstantExpressionEvaluator.computeConstantExpression(field.getInitializer(), false) != null)) continue;
}
- item.putUserData(LookupItem.FORCE_SHOW_SIGNATURE_ATTR, Boolean.TRUE);
+ item.putUserData(JavaCompletionUtil.FORCE_SHOW_SIGNATURE_ATTR, Boolean.TRUE);
if (isArg) {
item = AutoCompletionPolicy.NEVER_AUTOCOMPLETE.applyPolicy(item);
}
@@ -228,7 +229,7 @@ public class JavaDocCompletionContributor extends CompletionContributor {
for (JavadocTagInfo info : JavadocManager.SERVICE.getInstance(position.getProject()).getTagInfos(parent)) {
String tagName = info.getName();
- if (tagName.equals(SuppressionUtil.SUPPRESS_INSPECTIONS_TAG_NAME)) continue;
+ if (tagName.equals(SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME)) continue;
if (isInline != info.isInline()) continue;
ret.add(tagName);
addSpecialTags(ret, comment, tagName);
@@ -237,7 +238,7 @@ public class JavaDocCompletionContributor extends CompletionContributor {
InspectionProfile inspectionProfile =
InspectionProjectProfileManager.getInstance(position.getProject()).getInspectionProfile();
JavaDocLocalInspection inspection =
- (JavaDocLocalInspection)inspectionProfile.getUnwrappedTool(JavaDocLocalInspection.SHORT_NAME, position);
+ (JavaDocLocalInspection)inspectionProfile.getUnwrappedTool(JavaDocLocalInspectionBase.SHORT_NAME, position);
if (inspection != null) {
final StringTokenizer tokenizer = new StringTokenizer(inspection.myAdditionalJavadocTags, ", ");
while (tokenizer.hasMoreTokens()) {
@@ -265,7 +266,7 @@ public class JavaDocCompletionContributor extends CompletionContributor {
if (psiMethod != null) {
PsiDocTag[] tags = comment.getTags();
for (PsiParameter param : psiMethod.getParameterList().getParameters()) {
- if (!JavaDocLocalInspection.isFound(tags, param)) {
+ if (!JavaDocLocalInspectionBase.isFound(tags, param)) {
result.add(tagName + " " + param.getName());
}
}
@@ -302,6 +303,7 @@ public class JavaDocCompletionContributor extends CompletionContributor {
final int offset = caretModel.getOffset();
final PsiElement element = context.getFile().findElementAt(offset - 1);
PsiDocTag tag = PsiTreeUtil.getParentOfType(element, PsiDocTag.class);
+ assert tag != null;
for (PsiElement child = tag.getFirstChild(); child != null; child = child.getNextSibling()) {
if (child instanceof PsiDocToken) {
@@ -334,18 +336,15 @@ public class JavaDocCompletionContributor extends CompletionContributor {
}
}
- private static class MethodSignatureInsertHandler implements InsertHandler {
+ private static class MethodSignatureInsertHandler implements InsertHandler {
@Override
- public void handleInsert(InsertionContext context, LookupItem item) {
- if (!(item.getObject() instanceof PsiMethod)) {
- return;
- }
+ public void handleInsert(InsertionContext context, JavaMethodCallElement item) {
PsiDocumentManager.getInstance(context.getProject()).commitDocument(context.getEditor().getDocument());
final Editor editor = context.getEditor();
- final PsiMethod method = (PsiMethod)item.getObject();
+ final PsiMethod method = item.getObject();
final PsiParameter[] parameters = method.getParameterList().getParameters();
- final StringBuffer buffer = new StringBuffer();
+ final StringBuilder buffer = new StringBuilder();
final CharSequence chars = editor.getDocument().getCharsSequence();
int endOffset = editor.getCaretModel().getOffset();
@@ -354,18 +353,20 @@ public class JavaDocCompletionContributor extends CompletionContributor {
int signatureOffset = afterSharp;
PsiElement element = context.getFile().findElementAt(signatureOffset - 1);
- final CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(element.getProject());
+ final CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(context.getProject());
PsiDocTag tag = PsiTreeUtil.getParentOfType(element, PsiDocTag.class);
- if (context.getCompletionChar() == Lookup.REPLACE_SELECT_CHAR) {
+ if (context.getCompletionChar() == Lookup.REPLACE_SELECT_CHAR && tag != null) {
final PsiDocTagValue valueElement = tag.getValueElement();
- endOffset = valueElement.getTextRange().getEndOffset();
- context.setTailOffset(endOffset);
+ if (valueElement != null) {
+ endOffset = valueElement.getTextRange().getEndOffset();
+ context.setTailOffset(endOffset);
+ }
}
editor.getDocument().deleteString(afterSharp, endOffset);
editor.getCaretModel().moveToOffset(signatureOffset);
editor.getScrollingModel().scrollToCaret(ScrollType.RELATIVE);
editor.getSelectionModel().removeSelection();
- buffer.append(method.getName() + "(");
+ buffer.append(method.getName()).append("(");
final int afterParenth = afterSharp + buffer.length();
for (int i = 0; i < parameters.length; i++) {
final PsiType type = TypeConversionUtil.erasure(parameters[i].getType());
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java
index cf74e132c3fd..9ca6c2680015 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodCallElement.java
@@ -128,7 +128,7 @@ public class JavaMethodCallElement extends LookupItem implements Type
final PsiMethod method = getObject();
final LookupElement[] allItems = context.getElements();
- final boolean overloadsMatter = allItems.length == 1 && getUserData(FORCE_SHOW_SIGNATURE_ATTR) == null;
+ final boolean overloadsMatter = allItems.length == 1 && getUserData(JavaCompletionUtil.FORCE_SHOW_SIGNATURE_ATTR) == null;
final boolean hasParams = MethodParenthesesHandler.hasParams(this, allItems, overloadsMatter, method);
JavaCompletionUtil.insertParentheses(context, this, overloadsMatter, hasParams);
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodMergingContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodMergingContributor.java
index 29fd7ee5c09f..c9e8ae1f78db 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodMergingContributor.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMethodMergingContributor.java
@@ -16,7 +16,6 @@
package com.intellij.codeInsight.completion;
import com.intellij.codeInsight.lookup.LookupElement;
-import com.intellij.codeInsight.lookup.LookupItem;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiType;
import org.jetbrains.annotations.NotNull;
@@ -44,7 +43,7 @@ public class JavaMethodMergingContributor extends CompletionContributor {
final ArrayList allMethods = new ArrayList();
for (LookupElement item : items) {
Object o = item.getPsiElement();
- if (item.getUserData(LookupItem.FORCE_SHOW_SIGNATURE_ATTR) != null || !(o instanceof PsiMethod)) {
+ if (item.getUserData(JavaCompletionUtil.FORCE_SHOW_SIGNATURE_ATTR) != null || !(o instanceof PsiMethod)) {
return AutoCompletionDecision.SHOW_LOOKUP;
}
diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java
index e04e5ed35df3..2713ca52a1ea 100644
--- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java
+++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaPsiClassReferenceElement.java
@@ -155,12 +155,10 @@ public class JavaPsiClassReferenceElement extends LookupItem