anchor.diff:  
     List<ws.Resource> _getSelection() => _filesController.getSelection();
   
  +  ws.Folder _getFolder([List<ws.Resource> resources]) {
  +    if (resources != null && resources.isNotEmpty) {
  +      if (resources.first.isFile) {
  +        return resources.first.parent;
  +      } else {
  +        return resources.first;
  +      }
  +
  +    } else {
  +      if (focusManager.currentResource != null) {
  +       ws.Resource resource = focusManager.currentResource;
  +       if (resource.isFile) {
  +         if (resource.project != null) {
  +           return resource.parent;
  +         }
  +       } else {
  +         return resource;
  +       }
  +      }
  +    }
  +    return null;
  +  }
  +
     void _closeOpenEditor(ws.Resource resource) {
       if (resource is ws.File &&  editorManager.isFileOpened(resource)) {
         editorArea.closeFile(resource);
  
positive.code:             spark.selectInEditor(file, forceOpen: true, replaceCurrent: true);
            });
          });
        } else {
          spark.workspace.createFileSyncFs(name).then((file) {
            if (file != null) {
              Timer.run(() {
                spark.selectInEditor(file, forceOpen: true, replaceCurrent: true);
              });
            }
          });
        }
      }
    }
  
    String get category => 'folder';
  
    bool appliesTo(Object object) => _isSingleFolder(object);
  }
  
  class FileNewAsAction extends SparkAction {
  
negative.code:     _nameElement = _triggerOnReturn("#fileName");
    }
  
    void _invoke([List<ws.Resource> resources]) {
      folder = spark._getFolder();
      if (folder != null) {
        _nameElement.value = '';
        _show();
      }
    }
  
  