   ignoreRepositoryPath: (path) ->
     config.get("core.hideGitIgnoredFiles") and git?.isPathIgnored(fsUtils.join(@getPath(), path))
 
+  # Public: Given a path, this resolves it relative to the project directory.
+  #
+  # filePath - The {String} name of the path to convert
+  #
+  # Returns a {String}.
   resolve: (filePath) ->
     filePath = fsUtils.join(@getPath(), filePath) unless filePath[0] == '/'
     fsUtils.absolute filePath
 
+  # Public: Given a path, this makes it relative to the project directory.
+  #
+  # filePath - The {String} name of the path to convert
+  #
+  # Returns a {String}.
   relativize: (fullPath) ->
     return fullPath unless fullPath.lastIndexOf(@getPath()) is 0
     fullPath.replace(@getPath(), "").replace(/^\//, '')
 
+  # Public: Identifies if the project is using soft tabs.
+  #
+  # Returns a {Boolean}.
   getSoftTabs: -> @softTabs
+
+  # Public: Sets the project to use soft tabs.
+  #
+  # softTabs - A {Boolean} which, if `true`, sets soft tabs
   setSoftTabs: (@softTabs) ->
 
+  # Public: Identifies if the project is using soft wrapping.
+  #
+  # Returns a {Boolean}.
   getSoftWrap: -> @softWrap
+
+  # Public: Sets the project to use soft wrapping.
+  #
+  # softTabs - A {Boolean} which, if `true`, sets soft wrapping
   setSoftWrap: (@softWrap) ->
 
+  # Public: Given a path to a file, this constructs and associates a new {EditSession}.
+  #
+  # filePath - The {String} path of the file to associate with
+  # editSessionOptions - Options that you can pass to the `EditSession` constructor
+  #
+  # Returns an {EditSession}.
   buildEditSession: (filePath, editSessionOptions={}) ->
     if ImageEditSession.canOpen(filePath)
       new ImageEditSession(filePath)
     else
       @buildEditSessionForBuffer(@bufferForPath(filePath), editSessionOptions)
 
+  # Internal:
   buildEditSessionForBuffer: (buffer, editSessionOptions) ->
     options = _.extend(@defaultEditSessionOptions(), editSessionOptions)
     options.project = this

    else
      @buildBuffer(null, text)

  buildBuffer: (filePath, text) ->
    buffer = new Buffer(filePath, text)
    @buffers.push buffer

    @trigger 'edit-session-created', editSession
    editSession

  # Internal:
  defaultEditSessionOptions: ->
    tabLength: @tabLength
    softTabs: @getSoftTabs()
    softWrap: @getSoftWrap()

  # Public: Retrieves all the {EditSession}s in the project; that is, the `EditSession`s for all open files.
  #
  # Returns an {Array} of {EditSession}s.
  getEditSessions: ->
    new Array(@editSessions...)

  # Internal:
  eachEditSession: (callback) ->
    callback(editSession) for editSession in @getEditSessions()
    @on 'edit-session-created', (editSession) -> callback(editSession)
  
  # Public: Removes an {EditSession} association from the project.
  #
  # Returns the removed {EditSession}.
  removeEditSession: (editSession) ->
    _.remove(@editSessions, editSession)
  
  # Public: Retrieves all the {Buffer}s in the project; that is, the buffers for all open files.
  #
  # Returns an {Array} of {Buffer}s.
  getBuffers: ->
    buffers = []
    for editSession in @editSessions when not _.include(buffers, editSession.buffer)
      buffers.push editSession.buffer
    buffers

  # Internal:
  eachBuffer: (args...) ->
    subscriber = args.shift() if args.length > 1
    callback = args.shift()
