Function: derived-mode-init-mode-variables

derived-mode-init-mode-variables is an autoloaded and byte-compiled function defined in derived.el.gz.

Signature

(derived-mode-init-mode-variables MODE)

Documentation

Initialize variables for a new MODE.

Right now, if they don't already exist, set up a blank keymap, an empty syntax table, and an empty abbrev table -- these will be merged the first time the mode is used.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/derived.el.gz
;; Utility functions for defining a derived mode.

;;;###autoload
(defun derived-mode-init-mode-variables (mode)
  "Initialize variables for a new MODE.
Right now, if they don't already exist, set up a blank keymap, an
empty syntax table, and an empty abbrev table -- these will be merged
the first time the mode is used."

  (if (boundp (derived-mode-map-name mode))
      t
    (eval `(defvar ,(derived-mode-map-name mode)
	       (make-sparse-keymap)
	       ,(format "Keymap for %s." mode)))
    (put (derived-mode-map-name mode) 'derived-mode-unmerged t))

  (if (boundp (derived-mode-syntax-table-name mode))
      t
    (eval `(defvar ,(derived-mode-syntax-table-name mode)
	     ;; Make a syntax table which doesn't specify anything
	     ;; for any char.  Valid data will be merged in by
	     ;; derived-mode-merge-syntax-tables.
	     (make-char-table 'syntax-table nil)
	     ,(format "Syntax table for %s." mode)))
    (put (derived-mode-syntax-table-name mode) 'derived-mode-unmerged t))

  (if (boundp (derived-mode-abbrev-table-name mode))
      t
    (eval `(defvar ,(derived-mode-abbrev-table-name mode)
	     (progn
	       (define-abbrev-table (derived-mode-abbrev-table-name ',mode) nil)
	       (make-abbrev-table))
	     ,(format "Abbrev table for %s." mode)))))