Module Ecaml.Marker
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__.Import.Value.Subtype
type value
type t
= private value
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 thanList.map symbols ~f:Symbol.to_value
.
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val eq : t -> t -> bool
eq t1 t2 = Value.eq (to_value t1) (to_value t2)
, i.e.eq
checks whether the Emacs values underlyingt1
andt2
are physically equal. This is different thanphys_equal t1 t2
, because we don't always wrapeq
Emacs values inphys_equal
OCaml values. I.e.phys_equal t1 t2
implieseq t1 t2
, but not the converse.
val is_in_subtype : value -> bool
include Ecaml_value__.Valueable0.S with type t := t
val of_value_exn : Ecaml_value__.Value0.t -> t
val to_value : t -> Ecaml_value__.Value0.t
val type_ : t type_
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 buffer : t -> Ecaml__.Import.Buffer.t option
(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 -> Ecaml__.Import.Buffer.t -> Position.t -> unit
(describe-function 'set-marker)
(Info-goto-node "(elisp)Moving Markers")