KT-2859 Inconsistency before reparse upon completing by Tab key
#KT-2859 fixed
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.codeInsight;
|
package org.jetbrains.jet.plugin.codeInsight;
|
||||||
|
|
||||||
|
import com.intellij.psi.PsiDocumentManager;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
@@ -37,6 +38,8 @@ public class ReferenceToClassesShortening {
|
|||||||
if (elementsToCompact.isEmpty()) {
|
if (elementsToCompact.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
PsiDocumentManager.getInstance(elementsToCompact.get(0).getProject()).commitAllDocuments();
|
||||||
|
|
||||||
final JetFile file = (JetFile) elementsToCompact.get(0).getContainingFile();
|
final JetFile file = (JetFile) elementsToCompact.get(0).getContainingFile();
|
||||||
final BindingContext bc = WholeProjectAnalyzerFacade.analyzeProjectWithCacheOnAFile(file).getBindingContext();
|
final BindingContext bc = WholeProjectAnalyzerFacade.analyzeProjectWithCacheOnAFile(file).getBindingContext();
|
||||||
for (JetElement element : elementsToCompact) {
|
for (JetElement element : elementsToCompact) {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.completion.InsertHandler;
|
|||||||
import com.intellij.codeInsight.completion.InsertionContext;
|
import com.intellij.codeInsight.completion.InsertionContext;
|
||||||
import com.intellij.codeInsight.lookup.LookupElement;
|
import com.intellij.codeInsight.lookup.LookupElement;
|
||||||
import com.intellij.openapi.application.ApplicationManager;
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
|
import com.intellij.psi.PsiDocumentManager;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
@@ -38,6 +39,8 @@ public class JetClassInsertHandler implements InsertHandler<LookupElement> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleInsert(final InsertionContext context, final LookupElement item) {
|
public void handleInsert(final InsertionContext context, final LookupElement item) {
|
||||||
|
PsiDocumentManager.getInstance(context.getProject()).commitAllDocuments();
|
||||||
|
|
||||||
if (context.getFile() instanceof JetFile) {
|
if (context.getFile() instanceof JetFile) {
|
||||||
final JetFile jetFile = (JetFile) context.getFile();
|
final JetFile jetFile = (JetFile) context.getFile();
|
||||||
ApplicationManager.getApplication().runReadAction(new Runnable() {
|
ApplicationManager.getApplication().runReadAction(new Runnable() {
|
||||||
|
|||||||
@@ -67,6 +67,8 @@ public class JetFunctionInsertHandler implements InsertHandler<LookupElement> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleInsert(InsertionContext context, LookupElement item) {
|
public void handleInsert(InsertionContext context, LookupElement item) {
|
||||||
|
PsiDocumentManager.getInstance(context.getProject()).commitAllDocuments();
|
||||||
|
|
||||||
if (context.getCompletionChar() == '(') {
|
if (context.getCompletionChar() == '(') {
|
||||||
context.setAddCompletionChar(false);
|
context.setAddCompletionChar(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package org.jetbrains.jet.plugin.completion.handlers;
|
|||||||
import com.intellij.codeInsight.completion.InsertHandler;
|
import com.intellij.codeInsight.completion.InsertHandler;
|
||||||
import com.intellij.codeInsight.completion.InsertionContext;
|
import com.intellij.codeInsight.completion.InsertionContext;
|
||||||
import com.intellij.codeInsight.completion.JavaPsiClassReferenceElement;
|
import com.intellij.codeInsight.completion.JavaPsiClassReferenceElement;
|
||||||
|
import com.intellij.psi.PsiDocumentManager;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper;
|
import org.jetbrains.jet.plugin.quickfix.ImportInsertHelper;
|
||||||
@@ -34,6 +35,8 @@ public class JetJavaClassInsertHandler implements InsertHandler<JavaPsiClassRefe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleInsert(final InsertionContext context, final JavaPsiClassReferenceElement item) {
|
public void handleInsert(final InsertionContext context, final JavaPsiClassReferenceElement item) {
|
||||||
|
PsiDocumentManager.getInstance(context.getProject()).commitAllDocuments();
|
||||||
|
|
||||||
if (context.getFile() instanceof JetFile) {
|
if (context.getFile() instanceof JetFile) {
|
||||||
ImportInsertHelper.addImportDirectiveOrChangeToFqName(new FqName(item.getQualifiedName()),
|
ImportInsertHelper.addImportDirectiveOrChangeToFqName(new FqName(item.getQualifiedName()),
|
||||||
(JetFile) context.getFile(),
|
(JetFile) context.getFile(),
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
val s = Ar<caret>List()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import java.util.ArrayList
|
||||||
|
|
||||||
|
val s = ArrayList()
|
||||||
@@ -83,6 +83,10 @@ public class CompletionHandlerTest extends LightCompletionTestCase {
|
|||||||
doTest(' ');
|
doTest(' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testInsertImportOnTab() {
|
||||||
|
doTest(CompletionType.BASIC, 2, "ArrayList", null, '\t');
|
||||||
|
}
|
||||||
|
|
||||||
public void testFunctionLiteralInsertWhenNoSpacesForBraces() {
|
public void testFunctionLiteralInsertWhenNoSpacesForBraces() {
|
||||||
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(getProject());
|
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(getProject());
|
||||||
JetCodeStyleSettings jetSettings = settings.getCustomSettings(JetCodeStyleSettings.class);
|
JetCodeStyleSettings jetSettings = settings.getCustomSettings(JetCodeStyleSettings.class);
|
||||||
|
|||||||
Reference in New Issue
Block a user