Why IntellijIDEA custom plugin cannot find file in project Follow
I am writing custom plugin, which creates pom.xml file with required dependencies and than i want to import project with the help of IntellijIDEA. I am going to do it with this code
MavenOpenProjectProvider openProjectProvider = new MavenOpenProjectProvider();
And thats why i need to have pomMvnFile of VirtualFile type. I am trying to find VirtualFile with this code:
FilenameIndex.getFilesByName(activeProject, "pom.xml", GlobalSearchScope.projectScope(activeProject));
When i open already existed maven project, than i can find VirtualFile. But when i open the same project and do 'Unlink maven project' (without deleting any files), than i cannot find pom.xml file. Can anybody explain why this happended and how i can get VirtualFile?
Please sign in to leave a comment.
Please make sure the Virtual File System (VFS) is updated/synced after your plugin creates the new pom.xml file, see https://plugins.jetbrains.com/docs/intellij/virtual-file-system.html#synchronous-and-asynchronous-refreshes. Otherwise, VFS cannot locate it and thus returns null.
Alternatively, there's a number of utility methods to locate VirtualFile by Path/IO File in com.intellij.openapi.vfs.VfsUtil#findFileXXXX.
Thanks for help, com.intellij.openapi.vfs.VfsUtil.findFile worked for me. And now i know why FilenameIndex.getFilesByName doesn't work for me, it's because pom.xml file in my case if ignoring by IntellijIDEA and it's not in index.