mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-163903 Current file todos are not shown in 'Scope Based' tab with selected 'Current file' scope
This commit is contained in:
@@ -24,8 +24,8 @@ import com.intellij.ide.todo.nodes.ToDoRootNode;
|
||||
import com.intellij.ide.util.scopeChooser.ScopeChooserCombo;
|
||||
import com.intellij.ide.util.treeView.AbstractTreeNode;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.SearchScope;
|
||||
|
||||
public class ScopeBasedTodosTreeStructure extends TodoTreeStructure {
|
||||
@@ -39,11 +39,10 @@ public class ScopeBasedTodosTreeStructure extends TodoTreeStructure {
|
||||
@Override
|
||||
public boolean accept(final PsiFile psiFile) {
|
||||
if (!psiFile.isValid()) return false;
|
||||
boolean isAffected = false;
|
||||
|
||||
SearchScope scope = myScopes.getSelectedScope();
|
||||
if (scope instanceof GlobalSearchScope) {
|
||||
isAffected = ((GlobalSearchScope)scope).contains(psiFile.getVirtualFile());
|
||||
}
|
||||
VirtualFile file = psiFile.getVirtualFile();
|
||||
boolean isAffected = scope != null && file != null && scope.contains(file);
|
||||
return isAffected && (myTodoFilter != null && myTodoFilter.accept(mySearchHelper, psiFile) ||
|
||||
(myTodoFilter == null && mySearchHelper.getTodoItemsCount(psiFile) > 0));
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.RangeMarker;
|
||||
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
|
||||
import com.intellij.openapi.project.IndexNotReadyException;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.SimpleToolWindowPanel;
|
||||
import com.intellij.openapi.ui.Splitter;
|
||||
@@ -50,7 +50,10 @@ import com.intellij.ui.content.Content;
|
||||
import com.intellij.ui.treeStructure.Tree;
|
||||
import com.intellij.usageView.UsageInfo;
|
||||
import com.intellij.usages.impl.UsagePreviewPanel;
|
||||
import com.intellij.util.*;
|
||||
import com.intellij.util.Alarm;
|
||||
import com.intellij.util.EditSourceOnDoubleClickHandler;
|
||||
import com.intellij.util.OpenSourceUtil;
|
||||
import com.intellij.util.PlatformIcons;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -417,15 +420,11 @@ abstract class TodoPanel extends SimpleToolWindowPanel implements OccurenceNavig
|
||||
alarm.cancelAllRequests();
|
||||
alarm.addRequest(() -> {
|
||||
final Set<VirtualFile> files = new HashSet<>();
|
||||
ApplicationManager.getApplication().runReadAction(() -> {
|
||||
try {
|
||||
myTodoTreeBuilder.collectFiles(virtualFile -> {
|
||||
files.add(virtualFile);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
catch (IndexNotReadyException ignore) {
|
||||
}
|
||||
DumbService.getInstance(myProject).runReadActionInSmartMode(() -> {
|
||||
myTodoTreeBuilder.collectFiles(virtualFile -> {
|
||||
files.add(virtualFile);
|
||||
return true;
|
||||
});
|
||||
});
|
||||
final Runnable runnable = () -> {
|
||||
myTodoTreeBuilder.rebuildCache(files);
|
||||
|
||||
Reference in New Issue
Block a user