mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
avoid CompletionService/EncodingManager creation if not need
This commit is contained in:
@@ -35,6 +35,11 @@ public class ServiceManager {
|
||||
return doGetService(project, serviceClass, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static <T> T getServiceIfCreated(@NotNull Class<T> serviceClass) {
|
||||
return doGetService(ApplicationManager.getApplication(), serviceClass, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static <T> T doGetService(ComponentManager componentManager, @NotNull Class<T> serviceClass, boolean isCreate) {
|
||||
String componentKey = serviceClass.getName();
|
||||
|
||||
+12
-2
@@ -23,6 +23,7 @@ import com.intellij.openapi.actionSystem.IdeActions;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Caret;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
@@ -64,9 +65,9 @@ import java.awt.*;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.Queue;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.function.Supplier;
|
||||
@@ -175,6 +176,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement
|
||||
myHandler.lookupItemSelected(this, lookupItem, completionChar, myLookup.getItems());
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
@SuppressWarnings("WeakerAccess")
|
||||
public OffsetMap getOffsetMap() {
|
||||
@@ -340,6 +342,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement
|
||||
myParameters = parameters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LookupImpl getLookup() {
|
||||
return myLookup;
|
||||
}
|
||||
@@ -523,7 +526,12 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement
|
||||
|
||||
@TestOnly
|
||||
public static void cleanupForNextTest() {
|
||||
CompletionProgressIndicator currentCompletion = CompletionServiceImpl.getCompletionService().getCurrentCompletion();
|
||||
CompletionService completionService = ServiceManager.getServiceIfCreated(CompletionService.class);
|
||||
if (!(completionService instanceof CompletionServiceImpl)) {
|
||||
return;
|
||||
}
|
||||
|
||||
CompletionProgressIndicator currentCompletion = ((CompletionServiceImpl)completionService).getCurrentCompletion();
|
||||
if (currentCompletion != null) {
|
||||
currentCompletion.finishCompletionProcess(true);
|
||||
CompletionServiceImpl.assertPhase(CompletionPhase.NoCompletion.getClass());
|
||||
@@ -635,6 +643,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement
|
||||
return reused ? Math.max(myInvocationCount + 1, 2) : invocation;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Editor getEditor() {
|
||||
return myEditor;
|
||||
@@ -663,6 +672,7 @@ public class CompletionProgressIndicator extends ProgressIndicatorBase implement
|
||||
return myInvocationCount == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Project getProject() {
|
||||
return ObjectUtils.assertNotNull(myEditor.getProject());
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.usages.impl;
|
||||
|
||||
import com.intellij.find.FindManager;
|
||||
@@ -20,14 +18,13 @@ import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.progress.Task;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.encoding.EncodingManager;
|
||||
import com.intellij.openapi.vfs.encoding.EncodingManagerImpl;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiNamedElement;
|
||||
import com.intellij.psi.impl.source.PsiFileImpl;
|
||||
import com.intellij.testFramework.LeakHunter;
|
||||
import com.intellij.testFramework.LightPlatformTestCase;
|
||||
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
|
||||
import com.intellij.usageView.UsageInfo;
|
||||
import com.intellij.usages.*;
|
||||
@@ -62,7 +59,7 @@ public class UsageViewTest extends LightPlatformCodeInsightFixtureTestCase {
|
||||
|
||||
UsageView usageView = createUsageView(usages);
|
||||
|
||||
((EncodingManagerImpl)EncodingManager.getInstance()).clearDocumentQueue();
|
||||
LightPlatformTestCase.clearEncodingManagerDocumentQueue();
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
UIUtil.dispatchAllInvocationEvents();
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.intellij.openapi.command.impl.DocumentReferenceManagerImpl;
|
||||
import com.intellij.openapi.command.impl.UndoManagerImpl;
|
||||
import com.intellij.openapi.command.undo.DocumentReferenceManager;
|
||||
import com.intellij.openapi.command.undo.UndoManager;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
@@ -413,10 +414,7 @@ public abstract class LightPlatformTestCase extends UsefulTestCase implements Da
|
||||
})).
|
||||
append(() -> assertFalse(PsiManager.getInstance(project).isDisposed())).
|
||||
append(() -> {
|
||||
EncodingManager encodingManager = EncodingManager.getInstance();
|
||||
if (encodingManager instanceof EncodingManagerImpl) {
|
||||
((EncodingManagerImpl)encodingManager).clearDocumentQueue();
|
||||
}
|
||||
clearEncodingManagerDocumentQueue();
|
||||
|
||||
if (!ourAssertionsInTestDetected) {
|
||||
if (IdeaLogger.ourErrorsOccurred != null) {
|
||||
@@ -445,6 +443,13 @@ public abstract class LightPlatformTestCase extends UsefulTestCase implements Da
|
||||
run();
|
||||
}
|
||||
|
||||
public static void clearEncodingManagerDocumentQueue() {
|
||||
EncodingManager encodingManager = ServiceManager.getServiceIfCreated(EncodingManager.class);
|
||||
if (encodingManager instanceof EncodingManagerImpl) {
|
||||
((EncodingManagerImpl)encodingManager).clearDocumentQueue();
|
||||
}
|
||||
}
|
||||
|
||||
private static int ourTestCount;
|
||||
|
||||
@ReviseWhenPortedToJDK("9")
|
||||
|
||||
Reference in New Issue
Block a user