code: function _handleNewItemInProject(isFolder) {
          if (fileNewInProgress) {
              ProjectManager.forceFinishRename();
              return;
          }
          fileNewInProgress = true;
  
          // Determine the directory to put the new file
          // If a file is currently selected in the tree, put it next to it.
          // If a directory is currently selected in the tree, put it in it.
          // If an Untitled document is selected or nothing is selected in the tree, put it at the root of the project.
          var baseDirEntry,
              selected = ProjectManager.getFileTreeContext();
          if ((!selected) || (selected instanceof InMemoryFile)) {
              selected = ProjectManager.getProjectRoot();
          }
  
          if (selected.isFile) {
              baseDirEntry = FileSystem.getDirectoryForPath(selected.parentPath);
          }
  
          baseDirEntry = baseDirEntry || selected;
  
          // Create the new node. The createNewItem function does all the heavy work
          // of validating file name, creating the new file and selecting.
          function createWithSuggestedName(suggestedName) {
              return ProjectManager.createNewItem(baseDirEntry, suggestedName, false, isFolder)
                  .always(function () { fileNewInProgress = false; });
          }
  
          return _getUntitledFileSuggestion(baseDirEntry, Strings.UNTITLED, isFolder)
              .then(createWithSuggestedName, createWithSuggestedName.bind(undefined, Strings.UNTITLED));
      }
docs: Bottleneck function for creating new files and folders in the project tree.
  @private
  @param {boolean} isFolder - true if creating a new folder, false if creating a new file