mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
don't drop all caches on second completion invocation in the same place after the copy has already been reused
This commit is contained in:
+19
@@ -20,6 +20,7 @@ import com.intellij.openapi.vfs.LocalFileSystem
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.JavaPsiFacade
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.util.PsiTreeUtil
|
||||
@@ -150,4 +151,22 @@ public class Test {
|
||||
assert oldCount == PsiManager.getInstance(project).modificationTracker.javaStructureModificationCount
|
||||
}
|
||||
|
||||
public void testNoJavaStructureModificationOnSecondInvocationAfterTyping() {
|
||||
myFixture.configureByText 'a.java', 'class Foo { Xxxxx<caret> }'
|
||||
|
||||
def tracker = PsiManager.getInstance(project).modificationTracker
|
||||
def oldCount = tracker.javaStructureModificationCount
|
||||
assert !myFixture.completeBasic()
|
||||
assert oldCount == tracker.javaStructureModificationCount
|
||||
|
||||
myFixture.type 'x'
|
||||
PsiDocumentManager.getInstance(project).commitAllDocuments()
|
||||
assert oldCount != tracker.javaStructureModificationCount
|
||||
oldCount = tracker.javaStructureModificationCount
|
||||
|
||||
assert !myFixture.completeBasic()
|
||||
assert !myFixture.completeBasic()
|
||||
assert oldCount == tracker.javaStructureModificationCount
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
@@ -780,6 +780,7 @@ public class CodeCompletionHandlerBase {
|
||||
}
|
||||
final Document document = cached.second;
|
||||
assert document != null;
|
||||
file.putUserData(FILE_COPY_KEY, new SoftReference<Trinity<PsiFile,Document, Long>>(Trinity.create(copy, document, combinedOffsets)));
|
||||
document.setText(file.getText());
|
||||
return copy;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user