LoginSignup
2
2

More than 5 years have passed since last update.

IntelliJ Pluginで特定のファイル名のPsiFileを取得する

Posted at

プロジェクトの中の values/strings.xmlvalues-ja/strings.xml を取得したい時、リソースディレクトリの場所を探してstrings.xmlを見つけるのは大変です。

そんなとき、FilenameIndex.getFilesByName(project, name, scope) を使うと簡単に取得できます。

使い方は簡単で、Scopeをセットして呼び出すとPsiFileの配列が返ってきます。

PsiFile[] files = FilenameIndex.getFilesByName(project, "strings.xml", GlobalSearchScope.projectScope(project));

// values/strings.xmlとvalues-ja/strings.xmlがある場合、filesには2つのPsiFileが格納される

Scopeには、どの範囲を探すかをセットします。
例えば、 GlobalSearchScope.allScope(project)をセットするとAndroidのフレームワークやLibraryの中にあるファイルも取得できます。
GlobalSearchScope.projectScope(project)をセットすると、プロジェクト内のファイルのみ取得できます。

参考) How do I get a PSI file?

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2