elisp: Generic Modes

 
 22.2.8 Generic Modes
 --------------------
 
 “Generic modes” are simple major modes with basic support for comment
 syntax and Font Lock mode.  To define a generic mode, use the macro
 ‘define-generic-mode’.  See the file ‘generic-x.el’ for some examples of
 the use of ‘define-generic-mode’.
 
  -- Macro: define-generic-mode mode comment-list keyword-list
           font-lock-list auto-mode-list function-list &optional
           docstring
      This macro defines a generic mode command named MODE (a symbol, not
      quoted).  The optional argument DOCSTRING is the documentation for
      the mode command.  If you do not supply it, ‘define-generic-mode’
      generates one by default.
 
      The argument COMMENT-LIST is a list in which each element is either
      a character, a string of one or two characters, or a cons cell.  A
      character or a string is set up in the mode’s syntax table as a
      comment starter.  If the entry is a cons cell, the CAR is set up as
      a comment starter and the CDR as a comment ender.  (Use ‘nil’ for
      the latter if you want comments to end at the end of the line.)
      Note that the syntax table mechanism has limitations about what
      comment starters and enders are actually possible.  SeeSyntax
      Tables.
 
      The argument KEYWORD-LIST is a list of keywords to highlight with
      ‘font-lock-keyword-face’.  Each keyword should be a string.
      Meanwhile, FONT-LOCK-LIST is a list of additional expressions to
      highlight.  Each element of this list should have the same form as
      an element of ‘font-lock-keywords’.  SeeSearch-based
      Fontification.
 
      The argument AUTO-MODE-LIST is a list of regular expressions to add
      to the variable ‘auto-mode-alist’.  They are added by the execution
      of the ‘define-generic-mode’ form, not by expanding the macro call.
 
      Finally, FUNCTION-LIST is a list of functions for the mode command
      to call for additional setup.  It calls these functions just before
      it runs the mode hook variable ‘MODE-hook’.