@Override public void beforeFileMovement(@NotNull VirtualFileMoveEvent event){
  MasonSettings masonSettings=MasonSettings.getInstance(getProject());
  List<VirtualFile> componentsRoots=masonSettings.getComponentsRootsVirtualFiles();
  if (componentsRoots.isEmpty()) {
    return;
  }
  VirtualFile movedFile=event.getFile();
  Set<VirtualFile> rootsSet=new THashSet<VirtualFile>(componentsRoots);
  if (movedFile.isDirectory()) {
    if (VfsUtil.isUnder(movedFile,rootsSet) || containsAtLeastOneFile(movedFile,componentsRoots)) {
      movedFile.putUserData(FORCE_REINDEX,true);
    }
  }
 else   if (movedFile.getFileType() instanceof MasonFileType) {
    if (VfsUtil.isUnder(movedFile,rootsSet)) {
      movedFile.putUserData(FORCE_REINDEX,true);
    }
  }
}

@ Override public void beforeFileMovement ( @ NotNull VirtualFileMoveEvent event ) { MasonSettings masonSettings = MasonSettings . getInstance ( getProject ( ) ) ; List < VirtualFile > componentsRoots = masonSettings . getComponentsRootsVirtualFiles ( ) ; if ( componentsRoots . isEmpty ( ) ) { return ; } VirtualFile movedFile = event . getFile ( ) ; Set < VirtualFile > rootsSet = new THashSet < VirtualFile > ( componentsRoots ) ; if ( movedFile . isDirectory ( ) ) { if ( VfsUtil . isUnder ( movedFile , rootsSet ) || containsAtLeastOneFile ( movedFile , componentsRoots ) ) { movedFile . putUserData ( FORCE_REINDEX , true ) ; } } else if ( movedFile . getFileType ( ) instanceof MasonFileType ) { if ( VfsUtil . isUnder ( movedFile , rootsSet ) ) { movedFile . putUserData ( FORCE_REINDEX , true ) ; } } }
fired before the movement of a file is processed .
