Fix rule not being added to newly-created package

Need to refresh the VFS prior to retrieving the
VirtualFile.

BUG=30085970

Change-Id: Idf220fafe52c1f855209bb25e66b7edac1b9d607
diff --git a/blaze-base/src/com/google/idea/blaze/base/lang/buildfile/actions/BuildFileModifierImpl.java b/blaze-base/src/com/google/idea/blaze/base/lang/buildfile/actions/BuildFileModifierImpl.java
index b8b7d36..e455a6e 100644
--- a/blaze-base/src/com/google/idea/blaze/base/lang/buildfile/actions/BuildFileModifierImpl.java
+++ b/blaze-base/src/com/google/idea/blaze/base/lang/buildfile/actions/BuildFileModifierImpl.java
@@ -16,6 +16,7 @@
 package com.google.idea.blaze.base.lang.buildfile.actions;
 
 import com.google.common.base.Joiner;
+import com.google.common.collect.ImmutableList;
 import com.google.idea.blaze.base.buildmodifier.BuildFileModifier;
 import com.google.idea.blaze.base.lang.buildfile.psi.BuildFile;
 import com.google.idea.blaze.base.lang.buildfile.psi.Expression;
@@ -28,8 +29,12 @@
 import com.intellij.openapi.command.WriteCommandAction;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.project.Project;
+import com.intellij.openapi.util.Computable;
+import com.intellij.openapi.vfs.LocalFileSystem;
 import com.intellij.psi.PsiElement;
 
+import java.io.File;
+
 /**
  * Implementation of BuildFileModifier. Modifies the PSI tree directly.
  */
@@ -42,15 +47,21 @@
                          BlazeContext context,
                          Label newRule,
                          Kind ruleKind) {
-    BuildFile buildFile = BuildReferenceManager.getInstance(project).resolveBlazePackage(newRule.blazePackage());
-    if (buildFile == null) {
-      LOG.error("No BUILD file found at location: " + newRule.blazePackage());
-      return false;
-    }
-    WriteCommandAction.runWriteCommandAction(project, () -> {
+    return WriteCommandAction.runWriteCommandAction(project, (Computable<Boolean>) () -> {
+      BuildReferenceManager manager = BuildReferenceManager.getInstance(project);
+      File file = manager.resolvePackage(newRule.blazePackage());
+      if (file == null) {
+        return null;
+      }
+      LocalFileSystem.getInstance().refreshIoFiles(ImmutableList.of(file));
+      BuildFile buildFile = manager.resolveBlazePackage(newRule.blazePackage());
+      if (buildFile == null) {
+        LOG.error("No BUILD file found at location: " + newRule.blazePackage());
+        return false;
+      }
       buildFile.add(createRule(project, ruleKind, newRule.ruleName().toString()));
+      return true;
     });
-    return true;
   }
 
   private PsiElement createRule(Project project, Kind ruleKind, String ruleName) {