IntelliJ 插件开发 - 仅循环 git 跟踪的文件

问题描述 投票:0回答:1

目前我正在开发一个 IntelliJ 插件,通过这个插件我想迭代仅由 git 跟踪的文件列表(因此排除 .gitignores 中的文件)。

我可以通过 ProjectFileIndex 循环访问文件,然后使用带有 ContentIterator 的 iterateContent 方法。这对于所有项目文件都适用,但是我想知道是否有一种方法可以仅使用 git 跟踪的文件来执行此操作。我已经研究过 git4idea 的 API,但找不到任何提供此功能的类。总的来说,我对 Kotlin 和 IntelliJ 插件开发完全陌生。

有关于如何正确执行此操作的任何建议吗?

java kotlin intellij-idea intellij-plugin ideavim
1个回答
0
投票

最终我在 com.intellij.openapi.vcs.changes.ChangeListManager 类中使用了

isIgnoredFile(file: VirtualFile)
函数以及我已经在使用的 ProjectFileIndex

ProjectFileIndex 实例有一个方法 iterateContent,您可以在其中定义自己的 ContentIterator,在此 ContentIteraror 中,您可以使用

isIgnoredFile
实例中的
ChangeListManager
方法来过滤掉 VCS 忽略的文件。

© www.soinside.com 2019 - 2024. All rights reserved.