Module Ecaml.Hook

A hook is a variable where you can store a function or functions to be called on a particular occasion by an existing program. Emacs provides hooks for the sake of customization.

Hooks installed through Ecaml are wrapped in an exception handler that prints the error to the *Messages* buffer and exits the function normally.

(Info-goto-node "(elisp)Hooks")

type 'a t
include sig ... end
val sexp_of_t : ('a ‑> Base.Sexp.t) ‑> 'a t ‑> Base.Sexp.t
type file = file:string ‑> unit
type normal = unit ‑> unit
module Type : sig ... end
val create : 'a Type.t ‑> Symbol.t ‑> 'a t
val var : _ t ‑> Function.t list Var.t
module Where : sig ... end
module Function : sig ... end
val add : ?⁠buffer_local:bool ‑> ?⁠where:Where.t ‑> 'a t ‑> 'a Function.t ‑> unit

(describe-function 'add-hook)(Info-goto-node "(elisp)Setting Hooks")

val remove : ?⁠buffer_local:bool ‑> 'a t ‑> 'a Function.t ‑> unit

(describe-function 'remove-hook)(Info-goto-node "(elisp)Setting Hooks")

val clear : _ t ‑> unit
val run : normal t ‑> unit

(describe-function 'run-hooks)(Info-goto-node "(elisp)Running Hooks")

val after_load : file t

(describe-variable 'after-load-functions)(Info-goto-node "(elisp)Hooks for Loading")

val after_load_once : file ‑> unit

after_load_once f adds f to after_load, and then removes it when it runs, so that f only runs once.

val after_save : normal t

(describe-variable 'after-save-hook)(Info-goto-node "(elisp)Saving Buffers")

val kill_buffer : normal t

(describe-variable 'kill-buffer-hook)(Info-goto-node "(elisp)Killing Buffers")