package ecaml
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 Ecaml_value.Value.Subtype
type t = private Ecaml_value.Value.t
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
.
val sexp_of_t : t -> Ppx_sexp_conv_lib.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.
val is_in_subtype : Ecaml_value.Value.t -> bool
val of_value_exn : Ecaml_value__.Value0.t -> t
val to_value : t -> Ecaml_value__.Value0.t
val type_ : t Ecaml_value.Value.Type.t
val t : t Ecaml_value.Value.Type.t
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")
.
(describe-function 'marker-buffer)
(Info-goto-node "(elisp)Information from Markers")
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 create : unit -> t
(describe-function 'make-marker)
(Info-goto-node "(elisp)Creating 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")