extract todo from lang-impl

GitOrigin-RevId: 0b69bcc73e8b831e481b61b6b446f4397332c414
This commit is contained in:
Dmitry Batkovich
2024-12-30 20:35:50 +01:00
committed by intellij-monorepo-bot
parent b0a027a032
commit 4a01d7aa16
69 changed files with 350 additions and 468 deletions

1
.idea/modules.xml generated
View File

@@ -832,6 +832,7 @@
<module fileurl="file://$PROJECT_DIR$/platform/platform-tests/intellij.platform.tests.iml" filepath="$PROJECT_DIR$/platform/platform-tests/intellij.platform.tests.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/threadDumpParser/intellij.platform.threadDumpParser.iml" filepath="$PROJECT_DIR$/platform/threadDumpParser/intellij.platform.threadDumpParser.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/tips-of-the-day/intellij.platform.tips.iml" filepath="$PROJECT_DIR$/platform/tips-of-the-day/intellij.platform.tips.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/todo/intellij.platform.todo.iml" filepath="$PROJECT_DIR$/platform/todo/intellij.platform.todo.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/tracing-ide/intellij.platform.tracing.ide.iml" filepath="$PROJECT_DIR$/platform/tracing-ide/intellij.platform.tracing.ide.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/tracing/intellij.platform.tracing.rt.iml" filepath="$PROJECT_DIR$/platform/tracing/intellij.platform.tracing.rt.iml" />
<module fileurl="file://$PROJECT_DIR$/uast/uast-common/intellij.platform.uast.iml" filepath="$PROJECT_DIR$/uast/uast-common/intellij.platform.uast.iml" />

View File

@@ -87,6 +87,7 @@
<orderEntry type="module" module-name="intellij.platform.eel.impl" />
<orderEntry type="module" module-name="intellij.platform.eel.provider" />
<orderEntry type="module" module-name="intellij.platform.bookmarks" />
<orderEntry type="module" module-name="intellij.platform.todo" />
</component>
<component name="copyright">
<Base>

View File

@@ -94,5 +94,6 @@
<orderEntry type="module" module-name="intellij.java.unscramble" scope="TEST" />
<orderEntry type="library" scope="TEST" name="ASM" level="project" />
<orderEntry type="module" module-name="intellij.gradle" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.todo" scope="TEST" />
</component>
</module>

View File

@@ -101,6 +101,7 @@ private val PLATFORM_IMPLEMENTATION_MODULES = java.util.List.of(
"intellij.platform.ide.favoritesTreeView",
"intellij.platform.bookmarks",
"intellij.platform.todo",
)
@Suppress("RemoveRedundantQualifierName")

View File

@@ -9,8 +9,10 @@ import org.jetbrains.annotations.NotNull;
* @author Eugene Zhuravlev
*/
public final class TodoIndexEntry {
final String pattern;
final boolean caseSensitive;
@Internal
public final String pattern;
@Internal
public final boolean caseSensitive;
@Internal
public TodoIndexEntry(@NotNull String pattern, final boolean caseSensitive) {

View File

@@ -1,15 +1,5 @@
f:com.intellij.CacheSwitcher
- sf:INSTANCE:com.intellij.CacheSwitcher
c:com.intellij.ConfigurableFactory
- com.intellij.openapi.Disposable
- sf:Companion:com.intellij.ConfigurableFactory$Companion
- <init>():V
- createCodeStyleConfigurable(com.intellij.psi.codeStyle.CodeStyleSettingsProvider,com.intellij.application.options.codeStyle.CodeStyleSchemesModel,com.intellij.application.options.CodeStyleSchemesConfigurable):com.intellij.application.options.CodeStyleConfigurableWrapper
- dispose():V
- sf:getInstance():com.intellij.ConfigurableFactory
- getTodoConfigurable(com.intellij.openapi.project.Project):com.intellij.ide.todo.configurable.TodoConfigurable
f:com.intellij.ConfigurableFactory$Companion
- f:getInstance():com.intellij.ConfigurableFactory
f:com.intellij.analysis.AnalysisActionUtils
- <init>():V
- s:getInspectionScope(com.intellij.openapi.actionSystem.DataContext,com.intellij.openapi.project.Project,java.lang.Boolean):com.intellij.analysis.AnalysisScope
@@ -11128,279 +11118,6 @@ a:com.intellij.ide.structureView.symbol.SymbolBasedStructureViewModel
- collectClosestChildrenSymbols(com.intellij.psi.PsiElement):java.util.ArrayList
- getCurrentEditorElement():java.lang.Object
- p:shouldCreateNode(com.intellij.model.psi.PsiSymbolDeclaration):Z
c:com.intellij.ide.todo.AllTodosTreeBuilder
- com.intellij.ide.todo.TodoTreeBuilder
- <init>(javax.swing.JTree,com.intellij.openapi.project.Project):V
- p:createTreeStructure():com.intellij.ide.todo.TodoTreeStructure
c:com.intellij.ide.todo.AllTodosTreeStructure
- com.intellij.ide.todo.TodoTreeStructure
- <init>(com.intellij.openapi.project.Project):V
- accept(com.intellij.psi.PsiFile):Z
com.intellij.ide.todo.HighlightedRegionProvider
- a:getHighlightedRegions():java.lang.Iterable
f:com.intellij.ide.todo.MultiLineTodoRenderer
- javax.swing.JPanel
- javax.swing.tree.TreeCellRenderer
- <init>():V
- getTreeCellRendererComponent(javax.swing.JTree,java.lang.Object,Z,Z,Z,I,Z):java.awt.Component
f:com.intellij.ide.todo.SmartTodoItemPointer
- <init>(com.intellij.psi.search.TodoItem,com.intellij.openapi.editor.Document):V
- equals(java.lang.Object):Z
- getAdditionalRangeMarkers():java.util.List
- getDocument():com.intellij.openapi.editor.Document
- getRangeMarker():com.intellij.openapi.editor.RangeMarker
- getTodoItem():com.intellij.psi.search.TodoItem
- hashCode():I
com.intellij.ide.todo.ToDoSettings
- a:getIsPackagesShown():Z
- a:isModulesShown():Z
f:com.intellij.ide.todo.ToDoSummary
- <init>():V
f:com.intellij.ide.todo.TodoFileDirAndModuleComparator
- java.util.Comparator
- sf:INSTANCE:com.intellij.ide.todo.TodoFileDirAndModuleComparator
- compare(com.intellij.ide.util.treeView.NodeDescriptor,com.intellij.ide.util.treeView.NodeDescriptor):I
a:com.intellij.ide.todo.TodoPanel
- com.intellij.openapi.ui.SimpleToolWindowPanel
- com.intellij.ide.OccurenceNavigator
- com.intellij.openapi.Disposable
- com.intellij.openapi.actionSystem.DataProvider
- psf:LOG:com.intellij.openapi.diagnostic.Logger
- sf:TODO_PANEL_DATA_KEY:com.intellij.openapi.actionSystem.DataKey
- pf:myProject:com.intellij.openapi.project.Project
- pf:myTodoView:com.intellij.ide.todo.TodoView
- <init>(com.intellij.ide.todo.TodoView,com.intellij.ide.todo.TodoPanelSettings,Z,com.intellij.ui.content.Content):V
- p:createAutoScrollToSourceAction():com.intellij.openapi.actionSystem.AnAction
- p:createCenterComponent():javax.swing.JComponent
- p:createGroupByActionGroup():com.intellij.openapi.actionSystem.DefaultActionGroup
- pa:createTreeBuilder(javax.swing.JTree,com.intellij.openapi.project.Project):com.intellij.ide.todo.TodoTreeBuilder
- dispose():V
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
- getNextOccurenceActionName():java.lang.String
- getPreviousOccurenceActionName():java.lang.String
- p:getSelectedFile():com.intellij.psi.PsiFile
- pf:getTree():com.intellij.ui.treeStructure.Tree
- pf:getTreeBuilder():com.intellij.ide.todo.TodoTreeBuilder
- pf:getUsagePreviewPanel():com.intellij.usages.impl.UsagePreviewPanel
- goNextOccurence():com.intellij.ide.OccurenceNavigator$OccurenceInfo
- goPreviousOccurence():com.intellij.ide.OccurenceNavigator$OccurenceInfo
- hasNextOccurence():Z
- hasPreviousOccurence():Z
- p:rebuildWithAlarm(com.intellij.util.Alarm):V
- selectItem(com.intellij.psi.search.TodoItem):V
- p:setDisplayName(java.lang.String):V
- uiDataSnapshot(com.intellij.openapi.actionSystem.DataSink):V
f:com.intellij.ide.todo.TodoPanel$MyFlattenPackagesAction
- com.intellij.openapi.actionSystem.ToggleAction
- com.intellij.openapi.project.DumbAware
- <init>():V
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
- isSelected(com.intellij.openapi.actionSystem.AnActionEvent):Z
- setSelected(com.intellij.openapi.actionSystem.AnActionEvent,Z):V
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
f:com.intellij.ide.todo.TodoPanel$MyShowModulesAction
- com.intellij.openapi.actionSystem.ToggleAction
- com.intellij.openapi.project.DumbAware
- <init>():V
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
- isSelected(com.intellij.openapi.actionSystem.AnActionEvent):Z
- setSelected(com.intellij.openapi.actionSystem.AnActionEvent,Z):V
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
f:com.intellij.ide.todo.TodoPanel$MyShowPackagesAction
- com.intellij.openapi.actionSystem.ToggleAction
- com.intellij.openapi.project.DumbAware
- <init>():V
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
- isSelected(com.intellij.openapi.actionSystem.AnActionEvent):Z
- setSelected(com.intellij.openapi.actionSystem.AnActionEvent,Z):V
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
a:com.intellij.ide.todo.TodoTreeBuilder
- com.intellij.openapi.Disposable
- sf:NODE_DESCRIPTOR_COMPARATOR:java.util.Comparator
- pf:myDirtyFileSet:java.util.Set
- pf:myFile2Highlighter:java.util.Map
- pf:myFileTree:com.intellij.ide.todo.FileTree
- pf:myProject:com.intellij.openapi.project.Project
- <init>(javax.swing.JTree,com.intellij.openapi.project.Project):V
- pf:clearCache():V
- p:collectFiles(java.util.function.Consumer):V
- pa:createTreeStructure():com.intellij.ide.todo.TodoTreeStructure
- f:dispose():V
- getAllFiles():java.util.Iterator
- pf:getCoroutineHelper():com.intellij.ide.todo.TodoTreeBuilderCoroutineHelper
- getFiles(com.intellij.openapi.module.Module):java.util.Iterator
- getFiles(com.intellij.psi.PsiDirectory):java.util.Iterator
- getFiles(com.intellij.psi.PsiDirectory,Z):java.util.Iterator
- getFilesUnderDirectory(com.intellij.psi.PsiDirectory):java.util.Iterator
- getFirstPointerForElement(java.lang.Object):com.intellij.ide.todo.nodes.TodoItemNode
- getHighlighter(com.intellij.psi.PsiFile,com.intellij.openapi.editor.Document):com.intellij.openapi.editor.highlighter.EditorHighlighter
- getLastPointerForElement(java.lang.Object):com.intellij.ide.todo.nodes.TodoItemNode
- pf:getModel():com.intellij.ui.tree.StructureTreeModel
- getNextPointer(com.intellij.ide.todo.nodes.TodoItemNode):com.intellij.ide.todo.nodes.TodoItemNode
- getPreviousPointer(com.intellij.ide.todo.nodes.TodoItemNode):com.intellij.ide.todo.nodes.TodoItemNode
- pf:getProject():com.intellij.openapi.project.Project
- p:getSearchHelper():com.intellij.psi.search.PsiTodoSearchHelper
- f:getTodoTreeStructure():com.intellij.ide.todo.TodoTreeStructure
- pf:getTree():javax.swing.JTree
- ps:getVisitorFor(java.lang.Object):com.intellij.ide.todo.TodoNodeVisitor
- pf:hasDirtyFiles():Z
- f:init():V
- p:isAutoExpandNode(com.intellij.ide.util.treeView.NodeDescriptor):Z
- isDirectoryEmpty(com.intellij.psi.PsiDirectory):Z
- isDisposed():Z
- pf:isUpdatable():Z
- pf:markFileAsDirty(com.intellij.openapi.vfs.VirtualFile):V
- p:onUpdateFinished():V
- p:onUpdateStarted():V
- pf:rebuildCache():java.util.concurrent.CompletableFuture
- select(java.lang.Object):V
- pf:setModel(com.intellij.ui.tree.StructureTreeModel):V
- pf:setUpdatable(Z):V
- f:updateTree():org.jetbrains.concurrency.Promise
com.intellij.ide.todo.TodoTreeBuilderFactory
- a:createTreeBuilder(javax.swing.JTree,com.intellij.openapi.project.Project):com.intellij.ide.todo.TodoTreeBuilder
a:com.intellij.ide.todo.TodoTreeStructure
- com.intellij.ide.util.treeView.AbstractTreeStructureBase
- com.intellij.ide.todo.ToDoSettings
- p:myBuilder:com.intellij.ide.todo.TodoTreeBuilder
- p:myRootElement:com.intellij.ide.util.treeView.AbstractTreeNode
- pf:mySummaryElement:com.intellij.ide.todo.ToDoSummary
- <init>(com.intellij.openapi.project.Project):V
- a:accept(com.intellij.psi.PsiFile):Z
- pf:acceptTodoFilter(com.intellij.psi.PsiFile):Z
- f:areFlattenPackages():Z
- asyncCommit():com.intellij.openapi.util.ActionCallback
- f:commit():V
- p:createRootElement():com.intellij.ide.util.treeView.AbstractTreeNode
- getIsFlattenPackages():Z
- getIsPackagesShown():Z
- getProviders():java.util.List
- f:getRootElement():java.lang.Object
- getSearchHelper():com.intellij.psi.search.PsiTodoSearchHelper
- getTodoFilter():com.intellij.ide.todo.TodoFilter
- f:getTodoItemCount(com.intellij.psi.PsiFile):I
- hasSomethingToCommit():Z
- isModulesShown():Z
- f:isPackagesShown():Z
- f:setFlattenPackages(Z):V
- p:validateCache():V
c:com.intellij.ide.todo.TodoView
- com.intellij.openapi.Disposable
- com.intellij.openapi.components.PersistentStateComponent
- <init>(com.intellij.openapi.project.Project):V
- addCustomTodoView(com.intellij.ide.todo.TodoTreeBuilderFactory,java.lang.String,com.intellij.ide.todo.TodoPanelSettings):com.intellij.ui.content.Content
- p:createAllTodoBuilder(javax.swing.JTree,com.intellij.openapi.project.Project):com.intellij.ide.todo.AllTodosTreeBuilder
- dispose():V
- getCurrentFilePanel():com.intellij.ide.todo.TodoPanel
- getState():com.intellij.ide.todo.TodoView$State
- initToolWindow(com.intellij.openapi.wm.ToolWindow):V
- loadState(com.intellij.ide.todo.TodoView$State):V
- f:refresh():java.util.concurrent.CompletableFuture
- f:refresh(java.util.List):V
e:com.intellij.ide.todo.TodoView$Scope
- java.lang.Enum
- sf:AllTodos:com.intellij.ide.todo.TodoView$Scope
- sf:ChangeList:com.intellij.ide.todo.TodoView$Scope
- sf:CurrentFile:com.intellij.ide.todo.TodoView$Scope
- sf:ScopeBased:com.intellij.ide.todo.TodoView$Scope
- s:valueOf(java.lang.String):com.intellij.ide.todo.TodoView$Scope
- s:values():com.intellij.ide.todo.TodoView$Scope[]
c:com.intellij.ide.todo.configurable.TodoConfigurable
- com.intellij.openapi.options.Configurable$NoScroll
- com.intellij.openapi.options.SearchableConfigurable
- pf:myFilters:java.util.List
- pf:myPatterns:java.util.List
- <init>():V
- apply():V
- p:areFiltersModified():Z
- p:arePatternsModified():Z
- createComponent():javax.swing.JComponent
- disposeUIResources():V
- getDisplayName():java.lang.String
- getHelpTopic():java.lang.String
- getId():java.lang.String
- p:getTodoPatternsToDisplay(com.intellij.ide.todo.TodoConfiguration):com.intellij.psi.search.TodoPattern[]
- isModified():Z
- reset():V
- p:stopEditing():V
a:com.intellij.ide.todo.nodes.BaseToDoNode
- com.intellij.ide.util.treeView.AbstractTreeNode
- pf:myBuilder:com.intellij.ide.todo.TodoTreeBuilder
- pf:myToDoSettings:com.intellij.ide.todo.ToDoSettings
- p:<init>(com.intellij.openapi.project.Project,java.lang.Object,com.intellij.ide.todo.TodoTreeBuilder):V
- contains(java.lang.Object):Z
- a:getFileCount(java.lang.Object):I
- a:getTodoItemCount(java.lang.Object):I
- p:getTreeStructure():com.intellij.ide.todo.TodoTreeStructure
f:com.intellij.ide.todo.nodes.ModuleToDoNode
- com.intellij.ide.todo.nodes.BaseToDoNode
- <init>(com.intellij.openapi.project.Project,com.intellij.openapi.module.Module,com.intellij.ide.todo.TodoTreeBuilder):V
- contains(java.lang.Object):Z
- getChildren():java.util.Collection
- getFileCount(com.intellij.openapi.module.Module):I
- getTestPresentation():java.lang.String
- getTodoItemCount(com.intellij.openapi.module.Module):I
- getWeight():I
- update(com.intellij.ide.projectView.PresentationData):V
c:com.intellij.ide.todo.nodes.SummaryNode
- com.intellij.ide.todo.nodes.BaseToDoNode
- <init>(com.intellij.openapi.project.Project,com.intellij.ide.todo.ToDoSummary,com.intellij.ide.todo.TodoTreeBuilder):V
- p:createModuleTodoNodeForFile(java.util.ArrayList,com.intellij.openapi.roots.ProjectFileIndex,com.intellij.openapi.vfs.VirtualFile):V
- getChildren():java.util.Collection
- getFileCount(com.intellij.ide.todo.ToDoSummary):I
- getTestPresentation():java.lang.String
- getTodoItemCount(com.intellij.ide.todo.ToDoSummary):I
- getWeight():I
- update(com.intellij.ide.projectView.PresentationData):V
c:com.intellij.ide.todo.nodes.ToDoRootNode
- com.intellij.ide.todo.nodes.BaseToDoNode
- <init>(com.intellij.openapi.project.Project,java.lang.Object,com.intellij.ide.todo.TodoTreeBuilder,com.intellij.ide.todo.ToDoSummary):V
- p:createSummaryNode(com.intellij.ide.todo.ToDoSummary):com.intellij.ide.todo.nodes.SummaryNode
- getChildren():java.util.Collection
- getFileCount(java.lang.Object):I
- getSummaryNode():java.lang.Object
- getTestPresentation():java.lang.String
- getTodoItemCount(java.lang.Object):I
- update(com.intellij.ide.projectView.PresentationData):V
f:com.intellij.ide.todo.nodes.TodoDirNode
- com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode
- <init>(com.intellij.openapi.project.Project,com.intellij.psi.PsiDirectory,com.intellij.ide.todo.TodoTreeBuilder):V
- getChildrenImpl():java.util.Collection
- getFileCount(com.intellij.psi.PsiDirectory):I
- getTodoItemCount(com.intellij.psi.PsiDirectory):I
- getWeight():I
f:com.intellij.ide.todo.nodes.TodoFileNode
- com.intellij.ide.projectView.impl.nodes.PsiFileNode
- <init>(com.intellij.openapi.project.Project,com.intellij.psi.PsiFile,com.intellij.ide.todo.TodoTreeBuilder,Z):V
- s:findAllTodos(com.intellij.psi.PsiFile,com.intellij.psi.search.PsiTodoSearchHelper):java.util.List
- getChildrenImpl():java.util.List
- getWeight():I
- isAlwaysShowPlus():Z
f:com.intellij.ide.todo.nodes.TodoItemNode
- com.intellij.ide.todo.nodes.BaseToDoNode
- com.intellij.ide.todo.HighlightedRegionProvider
- <init>(com.intellij.openapi.project.Project,com.intellij.ide.todo.SmartTodoItemPointer,com.intellij.ide.todo.TodoTreeBuilder):V
- canRepresent(java.lang.Object):Z
- contains(java.lang.Object):Z
- getAdditionalLines():java.util.List
- getChildren():java.util.Collection
- getFileCount(com.intellij.ide.todo.SmartTodoItemPointer):I
- getHighlightedRegions():java.util.List
- getTestPresentation():java.lang.String
- getTodoItemCount(com.intellij.ide.todo.SmartTodoItemPointer):I
- getWeight():I
- update(com.intellij.ide.projectView.PresentationData):V
c:com.intellij.ide.todo.nodes.TodoTreeHelper
- <init>(com.intellij.openapi.project.Project):V
- p:addDirsToChildren(java.util.List,java.util.ArrayList,com.intellij.ide.todo.TodoTreeBuilder):V
- addPackagesToChildren(java.util.ArrayList,com.intellij.openapi.module.Module,com.intellij.ide.todo.TodoTreeBuilder):V
- p:collectContentRoots(com.intellij.openapi.module.Module):java.util.List
- contains(com.intellij.ide.projectView.ProjectViewNode,java.lang.Object):Z
- getDirectoryChildren(com.intellij.psi.PsiDirectory,com.intellij.ide.todo.TodoTreeBuilder,Z):java.util.Collection
- s:getInstance(com.intellij.openapi.project.Project):com.intellij.ide.todo.nodes.TodoTreeHelper
- getProject():com.intellij.openapi.project.Project
- getSelectedElement(java.lang.Object):com.intellij.psi.PsiElement
- skipDirectory(com.intellij.psi.PsiDirectory):Z
f:com.intellij.ide.ui.search.TraverseUIMode
- sf:Companion:com.intellij.ide.ui.search.TraverseUIMode$Companion
- <init>():V
@@ -15339,24 +15056,9 @@ f:com.intellij.psi.impl.PsiDocumentManagerImpl
- getPsiFile(com.intellij.openapi.editor.Document):com.intellij.psi.PsiFile
- isDocumentBlockedByPsi(com.intellij.openapi.editor.Document):Z
- reparseFiles(java.util.Collection,Z):V
f:com.intellij.psi.impl.cache.impl.IndexTodoCacheManagerImpl
- <init>(com.intellij.openapi.project.Project):V
- getTodoCount(com.intellij.openapi.vfs.VirtualFile,com.intellij.psi.search.IndexPattern):I
- getTodoCount(com.intellij.openapi.vfs.VirtualFile,com.intellij.psi.search.IndexPatternProvider):I
- s:getTodoMap(com.intellij.openapi.project.Project,com.intellij.openapi.vfs.VirtualFile):java.util.Map
- processFilesWithTodoItems(com.intellij.util.Processor):Z
f:com.intellij.psi.impl.cache.impl.id.PlatformIdTableBuilding
- sf:EDITOR_HIGHLIGHTER:com.intellij.openapi.util.Key
- s:getTodoIndexer(com.intellij.openapi.fileTypes.FileType):com.intellij.util.indexing.DataIndexer
f:com.intellij.psi.impl.cache.impl.todo.TodoIndex
- com.intellij.util.indexing.SingleEntryFileBasedIndexExtension
- <init>():V
- getIndexer():com.intellij.util.indexing.SingleEntryIndexer
- getInputFilter():com.intellij.util.indexing.FileBasedIndex$InputFilter
- getName():com.intellij.util.indexing.ID
- getValueExternalizer():com.intellij.util.io.DataExternalizer
- getVersion():I
- hasSnapshotMapping():Z
f:com.intellij.psi.impl.file.SourceRootIconProvider
- <init>():V
- s:getDirectoryIcon(com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.project.Project):javax.swing.Icon

View File

@@ -13,10 +13,6 @@ com/intellij/facet/frameworks/beans/ArtifactItem
com/intellij/ide/actions/searcheverywhere/SearchEverywhereSpellingCorrector
com/intellij/ide/plugins/ContainerDescriptor
com/intellij/ide/plugins/IdeaPluginDescriptorImpl
com/intellij/ide/todo/FileTree
com/intellij/ide/todo/TodoNodeVisitor
com/intellij/ide/todo/TodoTreeBuilderCoroutineHelper
com/intellij/ide/todo/TodoView$State
com/intellij/ide/util/gotoByName/SelectionPolicy
com/intellij/internal/statistic/utils/PluginInfo
com/intellij/openapi/actionSystem/ex/ActionRuntimeRegistrar

View File

@@ -6,13 +6,13 @@ import com.intellij.application.options.CodeStyleSchemesConfigurable
import com.intellij.application.options.codeStyle.CodeStyleSchemesModel
import com.intellij.application.options.codeStyle.CodeStyleSettingsPanelFactory
import com.intellij.application.options.codeStyle.NewCodeStyleSettingsPanel
import com.intellij.ide.todo.configurable.TodoConfigurable
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.Project
import com.intellij.psi.codeStyle.CodeStyleScheme
import com.intellij.psi.codeStyle.CodeStyleSettingsProvider
import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal
open class ConfigurableFactory : Disposable {
companion object {
@JvmStatic
@@ -35,8 +35,4 @@ open class ConfigurableFactory : Disposable {
}, owner)
return codeStyleConfigurableWrapper
}
open fun getTodoConfigurable(project: Project): TodoConfigurable {
return TodoConfigurable()
}
}

View File

@@ -1,35 +0,0 @@
/*
* Copyright 2000-2019 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.ide.todo;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
public class AllTodosTreeBuilder extends TodoTreeBuilder {
public AllTodosTreeBuilder(@NotNull JTree tree,
@NotNull Project project) {
super(tree, project);
}
@Override
protected @NotNull TodoTreeStructure createTreeStructure() {
return new AllTodosTreeStructure(myProject);
}
}

View File

@@ -1,23 +0,0 @@
/*
* Copyright 2000-2009 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.ide.todo;
import com.intellij.ui.HighlightedRegion;
public interface HighlightedRegionProvider{
Iterable<HighlightedRegion> getHighlightedRegions();
}

View File

@@ -17,7 +17,6 @@ import com.intellij.openapi.vfs.newvfs.persistent.FSRecords;
import com.intellij.openapi.vfs.newvfs.persistent.PersistentFS;
import com.intellij.psi.impl.cache.impl.id.IdIndex;
import com.intellij.psi.impl.cache.impl.id.IdIndexEntry;
import com.intellij.psi.impl.cache.impl.todo.TodoIndex;
import com.intellij.psi.search.FileTypeIndex;
import com.intellij.psi.search.FilenameIndex;
import com.intellij.psi.search.GlobalSearchScope;
@@ -330,7 +329,7 @@ public final class FileBasedIndexScanUtil {
}
public static boolean isManuallyManaged(@NotNull ID<?, ?> id) {
return id == TodoIndex.NAME;
return id == TodoIndexId.INSTANCE.getName();
}
private static final class InThisThreadProcessor {

View File

@@ -0,0 +1,11 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.util.indexing
import com.intellij.psi.impl.cache.impl.todo.TodoIndexEntry
import org.jetbrains.annotations.ApiStatus
@ApiStatus.Internal
object TodoIndexId {
@Deprecated("")
val name: ID<Int, MutableMap<TodoIndexEntry, Int>> by lazy { ID.create<Int, MutableMap<TodoIndexEntry, Int>>("TodoIndex") }
}

View File

@@ -13,5 +13,6 @@
<orderEntry type="module" module-name="intellij.platform.ide.ui.inspector" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.inline.completion" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.bookmarks" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.todo" scope="RUNTIME" />
</component>
</module>

View File

@@ -577,10 +577,6 @@
provider="com.intellij.ide.fileTemplates.impl.AllFileTemplatesConfigurable$Provider" id="fileTemplates"
key="title.file.templates" bundle="messages.IdeBundle"/>
<!-- T.O.D.O -->
<applicationConfigurable groupId="editor" instance="com.intellij.ide.todo.configurable.TodoConfigurable" id="preferences.toDoOptions"
key="title.todo"
bundle="messages.IdeBundle"/>
<!-- External Tools -->
<applicationConfigurable groupId="tools" instance="com.intellij.tools.ToolConfigurable" id="preferences.externalTools"
@@ -624,7 +620,6 @@
<highlightVisitor implementation="com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor"/>
<highlightVisitor implementation="com.intellij.codeInsight.daemon.impl.TodoHighlightVisitor"/>
<daemon.changeLocalityDetector implementation="com.intellij.codeInsight.daemon.impl.DefaultChangeLocalityDetector"/>
<daemon.changeLocalityDetector implementation="com.intellij.ide.todo.MultiLineTodoLocalityDetector"/>
<registryKey defaultValue="false" description="Enables navigation for TODO comments" key="todo.navigation"/>
@@ -665,7 +660,7 @@
<liveTemplateMacro implementation="com.intellij.codeInsight.template.macro.EnumMacro"/>
<internalFileTemplate name="HTML File" id="html"/>
<fileBasedIndex implementation="com.intellij.psi.impl.cache.impl.todo.TodoIndex"/>
<fileBasedIndex implementation="com.intellij.psi.impl.cache.impl.id.IdIndexImpl"/>
<fileBasedIndex implementation="com.intellij.psi.search.FileTypeIndexImpl"/>
@@ -1028,7 +1023,6 @@
<codeStyleSettingsProvider implementation="com.intellij.application.options.GeneralCodeStyleSettingsProvider"/>
<codeStyleSettingsProvider implementation="com.intellij.application.options.codeStyle.OtherFileTypesCodeStyleOptionsProvider"/>
<projectService serviceImplementation="com.intellij.ide.todo.TodoView" client="all"/>
<projectService serviceInterface="com.intellij.ide.structureView.StructureViewFactory"
serviceImplementation="com.intellij.ide.structureView.impl.StructureViewFactoryImpl"/>
<projectService serviceInterface="com.intellij.codeInspection.InspectionManager"
@@ -1062,11 +1056,6 @@
<toolWindow id="Structure" anchor="left" icon="AllIcons.Toolwindows.ToolWindowStructure" secondary="true"
factoryClass="com.intellij.ide.structureView.impl.StructureViewToolWindowFactory"/>
<toolWindow id="TODO" anchor="bottom" icon="AllIcons.Toolwindows.ToolWindowTodo"
factoryClass="com.intellij.ide.todo.TodoToolWindowFactory" canCloseContents="true"/>
<toolWindowExtractorMode id="TODO" mode="per_client"/>
<projectService serviceImplementation="com.intellij.ide.todo.TodoViewChangesSupport"/>
<psi.fileReferenceHelper implementation="com.intellij.psi.impl.source.resolve.reference.impl.providers.PsiFileReferenceHelper"/>
<psi.fileReferenceHelper implementation="com.intellij.psi.impl.source.resolve.reference.impl.providers.JarFileReferenceHelper"/>
<psi.fileReferenceHelper implementation="com.intellij.psi.impl.source.resolve.reference.impl.providers.HttpFileReferenceHelper"/>
@@ -1163,7 +1152,6 @@
<applicationService serviceImplementation="com.intellij.ConfigurableFactory"/>
<applicationService serviceImplementation="com.intellij.ide.todo.TodoConfiguration"/>
<statistics.applicationUsagesCollector implementation="com.intellij.ide.todo.TodoConfigurationCollector"/>
<indexPatternSearch implementation="com.intellij.psi.impl.search.IndexPatternSearcher"/>
<indexPatternProvider implementation="com.intellij.ide.todo.TodoIndexPatternProvider"/>

View File

@@ -69,6 +69,8 @@
<xi:include href="intellij.platform.bookmarks.xml"/>
<xi:include href="intellij.platform.todo.xml"/>
<extensions defaultExtensionNs="com.intellij">
<applicationService serviceInterface="com.intellij.ide.RecentProjectsManager"
serviceImplementation="com.intellij.ide.AttachedModuleAwareRecentProjectsManager" preload="notHeadless"/>

View File

@@ -1103,15 +1103,6 @@
<action id="ShowControlFlowAction" class="com.intellij.internal.cfgView.ShowControlFlowAction" internal="true">
<add-to-group group-id="Internal" anchor="last"/>
</action>
<group id="TodoMainGroup">
<add-to-group group-id="Other.KeymapGroup"/>
<group id="TodoViewGroupByGroup" icon="AllIcons.Actions.GroupBy" popup="true">
<separator text="Group By"/>
<action class="com.intellij.ide.todo.TodoPanel$MyShowModulesAction" id="TodoViewGroupByShowModules"/>
<action class="com.intellij.ide.todo.TodoPanel$MyShowPackagesAction" id="TodoViewGroupByShowPackages"/>
<action class="com.intellij.ide.todo.TodoPanel$MyFlattenPackagesAction" id="TodoViewGroupByFlattenPackage"/>
</group>
</group>
<action id="FileChooser.LightEditGotoOpenedFile"
class="com.intellij.ide.lightEdit.actions.LightEditGotoOpenedFileAction"

View File

@@ -90,5 +90,6 @@
<orderEntry type="module" module-name="intellij.platform.util.coroutines" />
<orderEntry type="library" name="assertJ" level="project" />
<orderEntry type="module" module-name="intellij.platform.testFramework.junit5" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.todo" />
</component>
</module>

179
platform/todo/api-dump.txt Normal file
View File

@@ -0,0 +1,179 @@
c:com.intellij.ide.todo.AllTodosTreeStructure
- com.intellij.ide.todo.ToDoSettings
- com.intellij.ide.util.treeView.AbstractTreeStructureBase
- <init>(com.intellij.openapi.project.Project):V
- accept(com.intellij.psi.PsiFile):Z
com.intellij.ide.todo.HighlightedRegionProvider
- a:getHighlightedRegions():java.lang.Iterable
f:com.intellij.ide.todo.MultiLineTodoRenderer
- javax.swing.JPanel
- javax.swing.tree.TreeCellRenderer
- <init>():V
- getTreeCellRendererComponent(javax.swing.JTree,java.lang.Object,Z,Z,Z,I,Z):java.awt.Component
f:com.intellij.ide.todo.SmartTodoItemPointer
- <init>(com.intellij.psi.search.TodoItem,com.intellij.openapi.editor.Document):V
- equals(java.lang.Object):Z
- getAdditionalRangeMarkers():java.util.List
- getDocument():com.intellij.openapi.editor.Document
- getRangeMarker():com.intellij.openapi.editor.RangeMarker
- getTodoItem():com.intellij.psi.search.TodoItem
- hashCode():I
com.intellij.ide.todo.ToDoSettings
- a:getIsPackagesShown():Z
- a:isModulesShown():Z
f:com.intellij.ide.todo.ToDoSummary
- <init>():V
a:com.intellij.ide.todo.TodoPanel
- com.intellij.openapi.ui.SimpleToolWindowPanel
- com.intellij.ide.OccurenceNavigator
- com.intellij.openapi.Disposable
- com.intellij.openapi.actionSystem.DataProvider
- psf:LOG:com.intellij.openapi.diagnostic.Logger
- sf:TODO_PANEL_DATA_KEY:com.intellij.openapi.actionSystem.DataKey
- pf:myProject:com.intellij.openapi.project.Project
- pf:myTodoView:com.intellij.ide.todo.TodoView
- <init>(com.intellij.ide.todo.TodoView,com.intellij.ide.todo.TodoPanelSettings,Z,com.intellij.ui.content.Content):V
- p:createAutoScrollToSourceAction():com.intellij.openapi.actionSystem.AnAction
- p:createCenterComponent():javax.swing.JComponent
- p:createGroupByActionGroup():com.intellij.openapi.actionSystem.DefaultActionGroup
- pa:createTreeBuilder(javax.swing.JTree,com.intellij.openapi.project.Project):com.intellij.ide.todo.TodoTreeBuilder
- dispose():V
- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
- getNextOccurenceActionName():java.lang.String
- getPreviousOccurenceActionName():java.lang.String
- p:getSelectedFile():com.intellij.psi.PsiFile
- pf:getTree():com.intellij.ui.treeStructure.Tree
- pf:getTreeBuilder():com.intellij.ide.todo.TodoTreeBuilder
- pf:getUsagePreviewPanel():com.intellij.usages.impl.UsagePreviewPanel
- goNextOccurence():com.intellij.ide.OccurenceNavigator$OccurenceInfo
- goPreviousOccurence():com.intellij.ide.OccurenceNavigator$OccurenceInfo
- hasNextOccurence():Z
- hasPreviousOccurence():Z
- p:rebuildWithAlarm(com.intellij.util.Alarm):V
- selectItem(com.intellij.psi.search.TodoItem):V
- p:setDisplayName(java.lang.String):V
- uiDataSnapshot(com.intellij.openapi.actionSystem.DataSink):V
a:com.intellij.ide.todo.TodoTreeBuilder
- com.intellij.openapi.Disposable
- sf:NODE_DESCRIPTOR_COMPARATOR:java.util.Comparator
- pf:myDirtyFileSet:java.util.Set
- pf:myFile2Highlighter:java.util.Map
- pf:myProject:com.intellij.openapi.project.Project
- <init>(javax.swing.JTree,com.intellij.openapi.project.Project):V
- pf:clearCache():V
- p:collectFiles(java.util.function.Consumer):V
- f:dispose():V
- getAllFiles():java.util.Iterator
- getFiles(com.intellij.openapi.module.Module):java.util.Iterator
- getFiles(com.intellij.psi.PsiDirectory):java.util.Iterator
- getFiles(com.intellij.psi.PsiDirectory,Z):java.util.Iterator
- getFilesUnderDirectory(com.intellij.psi.PsiDirectory):java.util.Iterator
- getFirstPointerForElement(java.lang.Object):com.intellij.ide.todo.nodes.TodoItemNode
- getHighlighter(com.intellij.psi.PsiFile,com.intellij.openapi.editor.Document):com.intellij.openapi.editor.highlighter.EditorHighlighter
- getLastPointerForElement(java.lang.Object):com.intellij.ide.todo.nodes.TodoItemNode
- pf:getModel():com.intellij.ui.tree.StructureTreeModel
- getNextPointer(com.intellij.ide.todo.nodes.TodoItemNode):com.intellij.ide.todo.nodes.TodoItemNode
- getPreviousPointer(com.intellij.ide.todo.nodes.TodoItemNode):com.intellij.ide.todo.nodes.TodoItemNode
- pf:getProject():com.intellij.openapi.project.Project
- p:getSearchHelper():com.intellij.psi.search.PsiTodoSearchHelper
- pf:getTree():javax.swing.JTree
- pf:hasDirtyFiles():Z
- f:init():V
- p:isAutoExpandNode(com.intellij.ide.util.treeView.NodeDescriptor):Z
- isDirectoryEmpty(com.intellij.psi.PsiDirectory):Z
- isDisposed():Z
- pf:isUpdatable():Z
- pf:markFileAsDirty(com.intellij.openapi.vfs.VirtualFile):V
- p:onUpdateFinished():V
- p:onUpdateStarted():V
- pf:rebuildCache():java.util.concurrent.CompletableFuture
- select(java.lang.Object):V
- pf:setModel(com.intellij.ui.tree.StructureTreeModel):V
- pf:setUpdatable(Z):V
- f:updateTree():org.jetbrains.concurrency.Promise
com.intellij.ide.todo.TodoTreeBuilderFactory
- a:createTreeBuilder(javax.swing.JTree,com.intellij.openapi.project.Project):com.intellij.ide.todo.TodoTreeBuilder
c:com.intellij.ide.todo.TodoView
- com.intellij.openapi.Disposable
- com.intellij.openapi.components.PersistentStateComponent
- <init>(com.intellij.openapi.project.Project):V
- dispose():V
- getCurrentFilePanel():com.intellij.ide.todo.TodoPanel
- initToolWindow(com.intellij.openapi.wm.ToolWindow):V
- f:refresh():java.util.concurrent.CompletableFuture
- f:refresh(java.util.List):V
a:com.intellij.ide.todo.nodes.BaseToDoNode
- com.intellij.ide.util.treeView.AbstractTreeNode
- p:<init>(com.intellij.openapi.project.Project,java.lang.Object,com.intellij.ide.todo.TodoTreeBuilder):V
- contains(java.lang.Object):Z
- a:getFileCount(java.lang.Object):I
- a:getTodoItemCount(java.lang.Object):I
f:com.intellij.ide.todo.nodes.ModuleToDoNode
- com.intellij.ide.todo.nodes.BaseToDoNode
- <init>(com.intellij.openapi.project.Project,com.intellij.openapi.module.Module,com.intellij.ide.todo.TodoTreeBuilder):V
- contains(java.lang.Object):Z
- getChildren():java.util.Collection
- getFileCount(com.intellij.openapi.module.Module):I
- getTestPresentation():java.lang.String
- getTodoItemCount(com.intellij.openapi.module.Module):I
- getWeight():I
- update(com.intellij.ide.projectView.PresentationData):V
c:com.intellij.ide.todo.nodes.SummaryNode
- com.intellij.ide.todo.nodes.BaseToDoNode
- <init>(com.intellij.openapi.project.Project,com.intellij.ide.todo.ToDoSummary,com.intellij.ide.todo.TodoTreeBuilder):V
- p:createModuleTodoNodeForFile(java.util.ArrayList,com.intellij.openapi.roots.ProjectFileIndex,com.intellij.openapi.vfs.VirtualFile):V
- getChildren():java.util.Collection
- getFileCount(com.intellij.ide.todo.ToDoSummary):I
- getTestPresentation():java.lang.String
- getTodoItemCount(com.intellij.ide.todo.ToDoSummary):I
- getWeight():I
- update(com.intellij.ide.projectView.PresentationData):V
c:com.intellij.ide.todo.nodes.ToDoRootNode
- com.intellij.ide.todo.nodes.BaseToDoNode
- <init>(com.intellij.openapi.project.Project,java.lang.Object,com.intellij.ide.todo.TodoTreeBuilder,com.intellij.ide.todo.ToDoSummary):V
- p:createSummaryNode(com.intellij.ide.todo.ToDoSummary):com.intellij.ide.todo.nodes.SummaryNode
- getChildren():java.util.Collection
- getFileCount(java.lang.Object):I
- getSummaryNode():java.lang.Object
- getTestPresentation():java.lang.String
- getTodoItemCount(java.lang.Object):I
- update(com.intellij.ide.projectView.PresentationData):V
f:com.intellij.ide.todo.nodes.TodoDirNode
- com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode
- <init>(com.intellij.openapi.project.Project,com.intellij.psi.PsiDirectory,com.intellij.ide.todo.TodoTreeBuilder):V
- getChildrenImpl():java.util.Collection
- getFileCount(com.intellij.psi.PsiDirectory):I
- getTodoItemCount(com.intellij.psi.PsiDirectory):I
- getWeight():I
f:com.intellij.ide.todo.nodes.TodoFileNode
- com.intellij.ide.projectView.impl.nodes.PsiFileNode
- <init>(com.intellij.openapi.project.Project,com.intellij.psi.PsiFile,com.intellij.ide.todo.TodoTreeBuilder,Z):V
- s:findAllTodos(com.intellij.psi.PsiFile,com.intellij.psi.search.PsiTodoSearchHelper):java.util.List
- getChildrenImpl():java.util.List
- getWeight():I
- isAlwaysShowPlus():Z
f:com.intellij.ide.todo.nodes.TodoItemNode
- com.intellij.ide.todo.nodes.BaseToDoNode
- com.intellij.ide.todo.HighlightedRegionProvider
- <init>(com.intellij.openapi.project.Project,com.intellij.ide.todo.SmartTodoItemPointer,com.intellij.ide.todo.TodoTreeBuilder):V
- canRepresent(java.lang.Object):Z
- contains(java.lang.Object):Z
- getAdditionalLines():java.util.List
- getChildren():java.util.Collection
- getFileCount(com.intellij.ide.todo.SmartTodoItemPointer):I
- getHighlightedRegions():java.util.List
- getTestPresentation():java.lang.String
- getTodoItemCount(com.intellij.ide.todo.SmartTodoItemPointer):I
- getWeight():I
- update(com.intellij.ide.projectView.PresentationData):V
c:com.intellij.ide.todo.nodes.TodoTreeHelper
- <init>(com.intellij.openapi.project.Project):V
- p:addDirsToChildren(java.util.List,java.util.ArrayList,com.intellij.ide.todo.TodoTreeBuilder):V
- addPackagesToChildren(java.util.ArrayList,com.intellij.openapi.module.Module,com.intellij.ide.todo.TodoTreeBuilder):V
- p:collectContentRoots(com.intellij.openapi.module.Module):java.util.List
- contains(com.intellij.ide.projectView.ProjectViewNode,java.lang.Object):Z
- getDirectoryChildren(com.intellij.psi.PsiDirectory,com.intellij.ide.todo.TodoTreeBuilder,Z):java.util.Collection
- s:getInstance(com.intellij.openapi.project.Project):com.intellij.ide.todo.nodes.TodoTreeHelper
- getProject():com.intellij.openapi.project.Project
- getSelectedElement(java.lang.Object):com.intellij.psi.PsiElement
- skipDirectory(com.intellij.psi.PsiDirectory):Z

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
<orderEntry type="module" module-name="intellij.platform.core.ui" />
<orderEntry type="library" name="StreamEx" level="project" />
<orderEntry type="module" module-name="intellij.platform.ide.impl" />
<orderEntry type="module" module-name="intellij.platform.indexing.impl" />
<orderEntry type="module" module-name="intellij.platform.editor.ex" />
</component>
</module>

View File

@@ -0,0 +1,32 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<fileBasedIndex implementation="com.intellij.psi.impl.cache.impl.todo.TodoIndex"/>
<statistics.applicationUsagesCollector implementation="com.intellij.ide.todo.TodoConfigurationCollector"/>
<!-- T.O.D.O -->
<applicationConfigurable groupId="editor" instance="com.intellij.ide.todo.configurable.TodoConfigurable" id="preferences.toDoOptions"
key="title.todo"
bundle="messages.IdeBundle"/>
<daemon.changeLocalityDetector implementation="com.intellij.ide.todo.MultiLineTodoLocalityDetector"/>
<projectService serviceImplementation="com.intellij.ide.todo.TodoView" client="all"/>
<toolWindow id="TODO" anchor="bottom" icon="AllIcons.Toolwindows.ToolWindowTodo"
factoryClass="com.intellij.ide.todo.TodoToolWindowFactory" canCloseContents="true"/>
<toolWindowExtractorMode id="TODO" mode="per_client"/>
<projectService serviceImplementation="com.intellij.ide.todo.TodoViewChangesSupport"/>
</extensions>
<actions>
<group id="TodoMainGroup">
<add-to-group group-id="Other.KeymapGroup"/>
<group id="TodoViewGroupByGroup" icon="AllIcons.Actions.GroupBy" popup="true">
<separator text="Group By"/>
<action class="com.intellij.ide.todo.TodoPanel$MyShowModulesAction" id="TodoViewGroupByShowModules"/>
<action class="com.intellij.ide.todo.TodoPanel$MyShowPackagesAction" id="TodoViewGroupByShowPackages"/>
<action class="com.intellij.ide.todo.TodoPanel$MyFlattenPackagesAction" id="TodoViewGroupByFlattenPackage"/>
</group>
</group>
</actions>
</idea-plugin>

View File

@@ -0,0 +1,23 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
@ApiStatus.Internal
public class AllTodosTreeBuilder extends TodoTreeBuilder {
public AllTodosTreeBuilder(@NotNull JTree tree,
@NotNull Project project) {
super(tree, project);
}
@Override
protected @NotNull TodoTreeStructure createTreeStructure() {
return new AllTodosTreeStructure(myProject);
}
}

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;

View File

@@ -1,18 +1,4 @@
/*
* Copyright 2000-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;
import com.intellij.codeWithMe.ClientId;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;

View File

@@ -1,18 +1,4 @@
/*
* Copyright 2000-2009 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;
import com.intellij.openapi.project.Project;

View File

@@ -0,0 +1,9 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;
import com.intellij.ui.HighlightedRegion;
public interface HighlightedRegionProvider{
Iterable<HighlightedRegion> getHighlightedRegions();
}

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;
import com.intellij.codeInsight.daemon.ChangeLocalityDetector;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;

View File

@@ -1,10 +1,8 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;
import com.intellij.ConfigurableFactory;
import com.intellij.icons.AllIcons;
import com.intellij.ide.IdeBundle;
import com.intellij.ide.todo.configurable.TodoConfigurable;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.project.DumbAware;
@@ -54,18 +52,11 @@ public final class SetTodoFilterAction extends ActionGroup implements DumbAware
}
group.addSeparator();
group.add(new DumbAwareAction(IdeBundle.messagePointer("action.todo.edit.filters"),
IdeBundle.messagePointer("action.todo.edit.filters.description"), AllIcons.General.Settings) {
IdeBundle.messagePointer("action.todo.edit.filters.description"),
AllIcons.General.Settings) {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
TodoConfigurable todoConfigurable = ConfigurableFactory.Companion.getInstance().getTodoConfigurable(project);
// Rider overrides the result of the method [getTodoConfigurable]
if (todoConfigurable.getClass().equals(TodoConfigurable.class)) {
ShowSettingsUtil.getInstance().showSettingsDialog(project, TodoConfigurable.class);
}
else {
ShowSettingsUtil.getInstance().editConfigurable(project, todoConfigurable);
}
ShowSettingsUtil.getInstance().showSettingsDialog(project, IdeBundle.message("title.todo"));
}
}
);

View File

@@ -1,4 +1,4 @@
// 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.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;

View File

@@ -1,4 +1,4 @@
// 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.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;
import com.intellij.ide.todo.nodes.SummaryNode;

View File

@@ -5,9 +5,11 @@ package com.intellij.ide.todo;
import com.intellij.ide.projectView.ProjectViewNode;
import com.intellij.ide.todo.nodes.ModuleToDoNode;
import com.intellij.ide.util.treeView.NodeDescriptor;
import org.jetbrains.annotations.ApiStatus;
import java.util.Comparator;
@ApiStatus.Internal
public final class TodoFileDirAndModuleComparator implements Comparator<NodeDescriptor<?>>{
public static final TodoFileDirAndModuleComparator INSTANCE =new TodoFileDirAndModuleComparator();

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo;
import com.intellij.ide.projectView.ProjectViewNode;

View File

@@ -36,10 +36,11 @@ import com.intellij.ui.tree.StructureTreeModel;
import com.intellij.ui.tree.TreeVisitor;
import com.intellij.ui.treeStructure.Tree;
import com.intellij.usages.impl.UsagePreviewPanel;
import com.intellij.util.PlatformIcons;
import com.intellij.util.*;
import com.intellij.util.PlatformIcons;
import com.intellij.util.ui.tree.TreeModelAdapter;
import com.intellij.util.ui.tree.TreeUtil;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -576,8 +577,9 @@ public abstract class TodoPanel extends SimpleToolWindowPanel implements Occuren
}
}
public static final class MyShowPackagesAction extends ToggleAction implements DumbAware {
public MyShowPackagesAction() {
@ApiStatus.Internal
static final class MyShowPackagesAction extends ToggleAction implements DumbAware {
MyShowPackagesAction() {
super(IdeBundle.messagePointer("action.group.by.packages"), PlatformIcons.GROUP_BY_PACKAGES);
}
@@ -608,7 +610,8 @@ public abstract class TodoPanel extends SimpleToolWindowPanel implements Occuren
}
}
public static final class MyShowModulesAction extends ToggleAction implements DumbAware {
@ApiStatus.Internal
static final class MyShowModulesAction extends ToggleAction implements DumbAware {
public MyShowModulesAction() {
super(IdeBundle.messagePointer("action.group.by.modules"), AllIcons.Actions.GroupByModule);
}
@@ -641,7 +644,8 @@ public abstract class TodoPanel extends SimpleToolWindowPanel implements Occuren
}
}
public static final class MyFlattenPackagesAction extends ToggleAction implements DumbAware {
@ApiStatus.Internal
static final class MyFlattenPackagesAction extends ToggleAction implements DumbAware {
public MyFlattenPackagesAction() {
super(IdeBundle.messagePointer("action.flatten.view"), PlatformIcons.FLATTEN_PACKAGES_ICON);
}

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo
import com.intellij.codeWithMe.ClientId

View File

@@ -10,7 +10,6 @@ import com.intellij.ide.util.treeView.AbstractTreeNode;
import com.intellij.ide.util.treeView.NodeDescriptor;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.highlighter.EditorHighlighter;
import com.intellij.openapi.module.Module;
@@ -38,6 +37,7 @@ import com.intellij.util.concurrency.annotations.RequiresEdt;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.tree.TreeUtil;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.VisibleForTesting;
@@ -51,8 +51,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
public abstract class TodoTreeBuilder implements Disposable {
private static final Logger LOG = Logger.getInstance(TodoTreeBuilder.class);
public static final Comparator<NodeDescriptor<?>> NODE_DESCRIPTOR_COMPARATOR =
Comparator.<NodeDescriptor<?>>comparingInt(NodeDescriptor::getWeight).thenComparingInt(NodeDescriptor::getIndex);
@@ -62,6 +60,7 @@ public abstract class TodoTreeBuilder implements Disposable {
* All files that have T.O.D.O items are presented as tree. This tree help a lot
* to separate these files by directories.
*/
@ApiStatus.Internal
protected final @NotNull FileTree myFileTree = new FileTree();
/**
* This set contains "dirty" files. File is "dirty" if it's currently unknown
@@ -123,6 +122,7 @@ public abstract class TodoTreeBuilder implements Disposable {
return myTree;
}
@ApiStatus.Internal
protected final @NotNull TodoTreeBuilderCoroutineHelper getCoroutineHelper() {
return myCoroutineHelper;
}
@@ -177,8 +177,10 @@ public abstract class TodoTreeBuilder implements Disposable {
}
}
@ApiStatus.Internal
protected abstract @NotNull TodoTreeStructure createTreeStructure();
@ApiStatus.Internal
public final TodoTreeStructure getTodoTreeStructure() {
return myTreeStructure;
}
@@ -491,6 +493,7 @@ public abstract class TodoTreeBuilder implements Disposable {
}
}
@ApiStatus.Internal
protected static @Nullable TodoNodeVisitor getVisitorFor(@NotNull Object obj) {
if (obj instanceof TodoItemNode) {
SmartTodoItemPointer value = ((TodoItemNode)obj).getValue();

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo
import com.intellij.codeWithMe.ClientId
@@ -15,7 +15,6 @@ import com.intellij.util.concurrency.annotations.RequiresReadLock
import com.intellij.util.ui.tree.TreeUtil
import kotlinx.coroutines.*
import kotlinx.coroutines.future.asCompletableFuture
import org.jetbrains.annotations.ApiStatus
import java.util.concurrent.CompletableFuture
private val ASYNC_BATCH_SIZE by lazy { RegistryManager.getInstance().get("ide.tree.ui.async.batch.size") }

View File

@@ -13,12 +13,14 @@ import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.psi.search.PsiTodoSearchHelper;
import com.intellij.psi.search.TodoPattern;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@ApiStatus.Internal
public abstract class TodoTreeStructure extends AbstractTreeStructureBase implements ToDoSettings {
protected TodoTreeBuilder myBuilder;
protected AbstractTreeNode<?> myRootElement;

View File

@@ -99,11 +99,13 @@ public class TodoView implements PersistentStateComponent<TodoView.State>, Dispo
return myProject;
}
@ApiStatus.Internal
@Override
public void loadState(@NotNull State state) {
this.state = state;
}
@ApiStatus.Internal
@Override
public @NotNull State getState() {
if (myContentManager != null) {
@@ -119,6 +121,7 @@ public class TodoView implements PersistentStateComponent<TodoView.State>, Dispo
}
@TestOnly
@ApiStatus.Internal
public enum Scope {
AllTodos,
ChangeList,
@@ -225,6 +228,7 @@ public class TodoView implements PersistentStateComponent<TodoView.State>, Dispo
}
}
@ApiStatus.Internal
protected @NotNull AllTodosTreeBuilder createAllTodoBuilder(@NotNull JTree tree,
@NotNull Project project) {
return new AllTodosTreeBuilder(tree, project);
@@ -306,6 +310,7 @@ public class TodoView implements PersistentStateComponent<TodoView.State>, Dispo
return CompletableFuture.allOf(futures);
}
@ApiStatus.Internal
public @Nullable Content addCustomTodoView(@NotNull TodoTreeBuilderFactory factory,
@NlsContexts.TabTitle String title,
@NotNull TodoPanelSettings settings) {

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2020 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-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo
import com.intellij.lang.LangBundle

View File

@@ -16,6 +16,7 @@ import com.intellij.util.ui.FormBuilder;
import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.table.IconTableCellRenderer;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
@@ -25,6 +26,7 @@ import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
@ApiStatus.Internal
public class TodoConfigurable implements SearchableConfigurable, Configurable.NoScroll {
private static final int HEADER_GAP = JBUIScale.scale(20);

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2019 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-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo.configurable;

View File

@@ -21,10 +21,13 @@ import com.intellij.ide.todo.TodoTreeBuilder;
import com.intellij.ide.todo.TodoTreeStructure;
import com.intellij.ide.util.treeView.AbstractTreeNode;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
public abstract class BaseToDoNode<Value> extends AbstractTreeNode<Value> {
@ApiStatus.Internal
protected final ToDoSettings myToDoSettings;
@ApiStatus.Internal
protected final TodoTreeBuilder myBuilder;
protected BaseToDoNode(Project project, @NotNull Value value, TodoTreeBuilder builder) {
@@ -37,6 +40,7 @@ public abstract class BaseToDoNode<Value> extends AbstractTreeNode<Value> {
return false;
}
@ApiStatus.Internal
protected TodoTreeStructure getTreeStructure() {
return myBuilder.getTodoTreeStructure();
}

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo.nodes;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo.nodes;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2020 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-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo.nodes;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2020 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-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo.nodes;

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.todo.nodes
import com.intellij.ide.projectView.PresentationData

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.psi.impl.cache.impl;
@@ -24,12 +24,14 @@ import com.intellij.util.Processor;
import com.intellij.util.containers.ConcurrentBitSet;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.indexing.*;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Map;
import java.util.function.IntPredicate;
@ApiStatus.Internal
public final class IndexTodoCacheManagerImpl implements TodoCacheManager {
private final Project myProject;

View File

@@ -25,14 +25,12 @@ import java.util.Map;
import static com.intellij.util.indexing.hints.FileTypeSubstitutionStrategy.AFTER_SUBSTITUTION;
/**
* @author Eugene Zhuravlev
*/
@ApiStatus.Internal
public final class TodoIndex extends SingleEntryFileBasedIndexExtension<Map<TodoIndexEntry, Integer>> {
/** @deprecated Use {@link com.intellij.psi.impl.cache.TodoCacheManager} methods instead **/
@Deprecated
@ApiStatus.Internal
public static final ID<Integer, Map<TodoIndexEntry, Integer>> NAME = ID.create("TodoIndex");
public static final ID<Integer, Map<TodoIndexEntry, Integer>> NAME = TodoIndexId.INSTANCE.getName();
public TodoIndex() {
ApplicationManager.getApplication().getMessageBus().simpleConnect()

View File

@@ -22,5 +22,6 @@
<orderEntry type="module" module-name="intellij.platform.diagnostic" />
<orderEntry type="module" module-name="intellij.platform.statistics" />
<orderEntry type="library" name="fastutil-min" level="project" />
<orderEntry type="module" module-name="intellij.platform.todo" />
</component>
</module>

View File

@@ -67,5 +67,6 @@
<orderEntry type="module" module-name="intellij.platform.ide.remote" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.testFramework.junit5" scope="TEST" />
<orderEntry type="library" scope="TEST" name="kotlin-reflect" level="project" />
<orderEntry type="module" module-name="intellij.platform.todo" scope="TEST" />
</component>
</module>