 
   # Public: Sets the range of the marker.
   #
-  # range - A {Range} or range-compatible {Array}. The range will be clipped
-  #         before it is assigned.
-  # properties - An optional hash of properties to associate with the marker.
-  #   :reversed -  If true, the marker will to be in a reversed orientation.
+  # * `range` A {Range} or range-compatible {Array}. The range will be clipped
+  #   before it is assigned.
+  # * `properties` (optional) {Object} properties to associate with the marker.
+  #   * `reversed`  {Boolean} If true, the marker will to be in a reversed orientation.
   setRange: (range, properties) ->
     params = @extractParams(properties)
     params.tailed = true

# marker to become invalid, for example if the text surrounding the marker is
# deleted. See {TextBuffer::markRange} for invalidation strategies.
#
# Change events:
# When markers change in position for any reason, the emit a 'changed' event with
# the following properties:
#
# * oldHeadPosition:
#     A {Point} representing the former head position
# * newHeadPosition:
#     A {Point} representing the new head position
# * oldTailPosition:
#     A {Point} representing the former tail position
# * newTailPosition:
#     A {Point} representing the new tail position
# * wasValid:
#     A {Boolean} indicating whether the marker was valid before the change
# * isValid:
#     A {Boolean} indicating whether the marker is now valid
# * hadTail:
#     A {Boolean} indicating whether the marker had a tail before the change
# * hasTail:
#     A {Boolean} indicating whether the marker now has a tail
# * oldProperties:
#     An {Object} containing the marker's custom properties before the change.
# * newProperties:
#     An {Object} containing the marker's custom properties after the change.
# * textChanged:
#     A {Boolean} indicating whether this change was caused by a textual change
#     to the buffer or whether the marker was manipulated directly via its public
#     API.
module.exports =
class Marker
  Emitter.includeInto(this)

  # will be reported as its current tail position until the tail is planted
  # again.
  #
  # * `properties` (optional) {Object} properties to associate with the marker.
  clearTail: (properties) ->
    params = @extractParams(properties)
    params.tailed = false
