Module Ecaml.Major_mode

include Ecaml__.Major_mode_intf.Major_mode
type t
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
include Core_kernel.Equal.S with type t := t
type t
val equal : t Core_kernel.Equal.equal
val symbol : t -> Symbol.t

Accessors

module Name : sig ... end
val name : t -> Name.t
val hook : t -> Ecaml__.Major_mode_intf.Hook.normal Ecaml__.Major_mode_intf.Hook.t
val keymap : t -> Keymap.t
val keymap_var : t -> Keymap.t Var.t
val syntax_table : t -> Syntax_table.t
module type S = Ecaml__.Major_mode_intf.S with type t := t and type name := Name.t
val wrap_existing : string -> Core_kernel.Source_code_position.t -> (module S)

wrap_existing mode_name wraps the existing Emacs major mode named mode_name, and stores it in the table of all major modes indexed by symbol. wrap_existing raises if a major mode associated with this symbol was already wrapped.

val find_or_wrap_existing : Core_kernel.Source_code_position.t -> Symbol.t -> t

find_or_wrap_existing looks up the major mode associated with this symbol by a previous call to wrap_existing or creates one with the Undistinguished name.

val change_to : t -> in_:Ecaml__.Import.Buffer.t -> unit Async_kernel.Deferred.t
module Fundamental : S

(describe-function 'fundamental-mode) (Info-goto-node "(elisp)Major Modes")

module Prog : S

(describe-function 'prog-mode) (Info-goto-node "(elisp)Basic Major Modes")

module Special : S

(describe-function 'special-mode) (Info-goto-node "(elisp)Basic Major Modes")

module Text : S

(describe-function 'text-mode) (Info-goto-node "(elisp)Basic Major Modes")

module Dired : S

(describe-function 'dired-mode)

module Tuareg : S

(describe-function 'tuareg-mode)

module Makefile : S

(describe-function 'makefile-mode)

module Lisp : S

(describe-function 'lisp-mode)

module Scheme : S

(describe-function 'scheme-mode)

module Emacs_lisp : S

(describe-function 'emacs-lisp-mode)

val define_derived_mode : Symbol.t -> Core_kernel.Source_code_position.t -> docstring:string -> ?⁠define_keys:(string * Symbol.t) list -> mode_line:string -> ?⁠parent:t -> ?⁠initialize:((unit, 'a) Defun.Returns.t * (unit -> 'a)) -> unit -> (module S)

(describe-function 'define-derived-mode) (Info-goto-node "(elisp)Derived Modes")

Additionally, each key_sequence, symbol in define_keys is added to the new major mode's keymap.

val is_derived : t -> from:t -> bool
val major_mode_var : Symbol.t Buffer_local.t

(describe-variable 'major-mode)

module For_testing : sig ... end