A Marker.t
specifies a position in a buffer relative to the surrounding text. A
marker changes its offset from the beginning of the buffer automatically whenever text
is inserted or deleted, so that it stays with the two characters on either side of it.
(Info-goto-node "(elisp)Markers")
include Value.Subtype
We expose private value
for free identity conversions when the value is nested in
some covariant type, e.g. (symbols : Symbol.t list :> Value.t list)
rather than
List.map symbols ~f:Symbol.to_value
.
include sig ... end
val sexp_of_t : t ‑> Sexplib.Sexp.t
eq t1 t2 = Value.eq (to_value t1) (to_value t2)
, i.e. eq
checks whether the
Emacs values underlying t1
and t2
are physically equal. This is different than
phys_equal t1 t2
, because we don't always wrap eq
Emacs values in phys_equal
OCaml values. I.e. phys_equal t1 t2
implies eq t1 t2
, but not the converse.
module Insertion_type : sig ... end
When you insert text directly at the place where a marker points, there are two
possible ways to relocate that marker: it can point before the inserted text, or point
after it. You can specify which one a given marker should do by setting its
"insertion type". (Info-goto-node "(elisp)Marker Insertion Types")
.
val insertion_type : t ‑> Insertion_type.t
(describe-function 'marker-insertion-type)
(Info-goto-node "(elisp)Marker Insertion Types")
val position : t ‑> Position.t option
(describe-function 'marker-position)
(Info-goto-node "(elisp)Information from Markers")
val set_insertion_type : t ‑> Insertion_type.t ‑> unit
(describe-function 'set-marker-insertion-type)
(Info-goto-node "(elisp)Marker Insertion Types")
val set : t ‑> Buffer.t ‑> Position.t ‑> unit
(describe-function 'set-marker)
(Info-goto-node "(elisp)Moving Markers")