mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.intellij.psi.refResolve;
|
||||
|
||||
import com.intellij.concurrency.JobSchedulerImpl;
|
||||
import com.intellij.ide.PowerSaveMode;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationAdapter;
|
||||
@@ -34,10 +33,7 @@ import com.intellij.openapi.progress.impl.BackgroundableProcessIndicator;
|
||||
import com.intellij.openapi.progress.impl.ProgressManagerImpl;
|
||||
import com.intellij.openapi.progress.util.ProgressIndicatorBase;
|
||||
import com.intellij.openapi.progress.util.ProgressIndicatorUtils;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.IndexNotReadyException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectCoreUtil;
|
||||
import com.intellij.openapi.project.*;
|
||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.startup.StartupManager;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
@@ -529,7 +525,7 @@ public class RefResolveServiceImpl extends RefResolveService implements Runnable
|
||||
// fine but grabs all CPUs
|
||||
//return JobLauncher.getInstance().invokeConcurrentlyUnderProgress(fileList, indicator, false, false, processor);
|
||||
|
||||
int parallelism = Math.min(4, JobSchedulerImpl.CORES_COUNT);
|
||||
int parallelism = CacheUpdateRunner.indexingThreadCount();
|
||||
final Callable<Boolean> processFileFromSet = new Callable<Boolean>() {
|
||||
@Override
|
||||
public Boolean call() throws Exception {
|
||||
|
||||
@@ -174,10 +174,7 @@ public class CacheUpdateRunner extends DumbModeTask {
|
||||
|
||||
final AtomicBoolean isFinished = new AtomicBoolean();
|
||||
try {
|
||||
int threadsCount = Registry.intValue("caches.indexerThreadsCount");
|
||||
if (threadsCount <= 0) {
|
||||
threadsCount = Math.max(1, Math.min(PROC_COUNT - 1, 4));
|
||||
}
|
||||
int threadsCount = indexingThreadCount();
|
||||
if (threadsCount == 1 || application.isWriteAccessAllowed()) {
|
||||
Runnable process = new MyRunnable(innerIndicator, queue, isFinished, progressUpdater, processInReadAction, project, fileProcessor);
|
||||
ProgressManager.getInstance().runProcess(process, innerIndicator);
|
||||
@@ -201,6 +198,14 @@ public class CacheUpdateRunner extends DumbModeTask {
|
||||
return isFinished.get();
|
||||
}
|
||||
|
||||
public static int indexingThreadCount() {
|
||||
int threadsCount = Registry.intValue("caches.indexerThreadsCount");
|
||||
if (threadsCount <= 0) {
|
||||
threadsCount = Math.max(1, Math.min(PROC_COUNT - 1, 4));
|
||||
}
|
||||
return threadsCount;
|
||||
}
|
||||
|
||||
private static boolean waitForAll(@NotNull AtomicBoolean[] finishedRefs, @NotNull Future<?>[] futures) {
|
||||
assert !ApplicationManager.getApplication().isWriteAccessAllowed();
|
||||
try {
|
||||
|
||||
+1
-1
@@ -21,7 +21,6 @@ import com.intellij.patterns.XmlAttributeValuePattern;
|
||||
import com.intellij.patterns.XmlPatterns;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.resolve.reference.impl.providers.JavaClassReferenceProvider;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.xml.XmlAttributeValue;
|
||||
import com.intellij.psi.xml.XmlProcessingInstruction;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
@@ -128,6 +127,7 @@ public class FxmlReferencesContributor extends PsiReferenceContributor {
|
||||
public PsiReference[] getReferencesByString(String str,
|
||||
@NotNull final PsiElement position,
|
||||
int offsetInPosition) {
|
||||
if (str.length() == 0) return PsiReference.EMPTY_ARRAY;
|
||||
final PsiReference[] references = super.getReferencesByString(str, position, offsetInPosition);
|
||||
final int offset = position instanceof XmlTag ? 1 : 0;
|
||||
if (references.length <= offset) return PsiReference.EMPTY_ARRAY;
|
||||
|
||||
Reference in New Issue
Block a user