Module Ecaml.Customization

include Ecaml__.Customization_intf.Customization
module Group : sig ... end
module Type : sig ... end

(Info-goto-node "(elisp)Customization Types")

type 'a t
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
val value : 'a t -> 'a
val set_value : 'a t -> 'a -> unit
val var : 'a t -> 'a Var.t
val symbol : _ t -> Symbol.t
val standard_value : 'a t -> 'a
val defcustom : ?⁠show_form:bool -> Symbol.t -> Core_kernel.Source_code_position.t -> docstring:string -> group:Group.t -> type_:'a Ecaml__.Import.Value.Type.t -> customization_type:Type.t -> standard_value:'a -> ?⁠on_set:('a -> unit) -> unit -> 'a t

(describe-function 'defcustom) (Info-goto-node "(elisp)Variable Definitions")

on_set, if supplied, is called when the user attempts to set the customization, either via the customization interface or via custom-set-variables. on_set can validate the input and perform other side effects needed to keep OCaml data structures in sync with the setting. If on_set raises, the customization is not set.

val customize_variable : Symbol.t -> unit

(describe-function 'customize-variable) (Info-goto-node "(emacs)Specific customization")

val customize_group : Group.t -> unit

(describe-function 'customize-group) (Info-goto-node "(emacs)Specific customization")

val defcustom_enum : Symbol.t -> Core_kernel.Source_code_position.t -> (module Enum_arg with type t = 'a) -> docstring:string -> group:Group.t -> standard_value:'a -> ?⁠on_set:('a -> unit) -> unit -> 'a t
module Private : sig ... end