Variable: js--class-styles

js--class-styles is a variable defined in js.el.gz.

Value

Large value
((:name "Plain" :class-decl "^\\s-*\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)\\.prototype\\s-*=\\s-*{" :prototype t :contexts
	(toplevel)
	:framework javascript)
 (:name "MochiKit" :class-decl "^\\s-*MochiKit\\.Base\\.update\\s-*(\\s-*\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)" :prototype t :contexts
	(toplevel)
	:framework mochikit)
 (:name "Prototype (Obsolete)" :class-decl "^\\s-*\\(?:var\\s-+\\)?\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)\\s-*=\\s-*Class\\.create()" :contexts
	(toplevel)
	:framework prototype)
 (:name "Prototype (Modern)" :class-decl "^\\s-*\\(?:var\\s-+\\)?\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)\\s-*=\\s-*Class\\.create\\s-*(\\s-*\\(?:\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)\\s-*,\\s-*\\)?{?" :contexts
	(toplevel)
	:framework prototype)
 (:name "Prototype (Object.extend)" :class-decl "^\\s-*Object\\.extend\\s-*(\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)\\s-*,\\s-*{" :prototype t :contexts
	(toplevel)
	:framework prototype)
 (:name "Prototype (Object.extend) 2" :class-decl "^\\s-*\\(?:var\\s-+\\)?\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)\\s-*=\\s-*Object\\.extend\\s-*(" :prototype t :contexts
	(toplevel)
	:framework prototype)
 (:name "Dojo" :class-decl "^\\s-*dojo\\.declare\\s-*(\"\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)" :contexts
	(toplevel)
	:framework dojo)
 (:name "ExtJS (style 1)" :class-decl "^\\s-*Ext\\.extend\\s-*(\\s-*\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)\\s-*,\\s-*\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)" :prototype t :contexts
	(toplevel)
	:framework extjs)
 (:name "ExtJS (style 2)" :class-decl "^\\s-*\\(?:var\\s-+\\)?\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)\\s-*=\\s-*Ext\\.extend\\s-*(\\s-*\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)" :contexts
	(toplevel)
	:framework extjs)
 (:name "Merrill Press" :class-decl "^\\s-*var\\s-+\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)\\s-*=\\s-*\\([[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\(?:\\.[[:alpha:]_$]\\(?:\\s_\\|\\sw\\)*\\)*\\)\\.extend\\(?:Final\\)?\\s-*(\\s-*{?\\s-*$" :contexts
	(toplevel)
	:framework merrillpress))

Documentation

List of JavaScript class definition styles.

A class definition style is a plist with the following keys:

:name is a human-readable name of the class type

:class-decl is a regular expression giving the start of the
class. Its first group must match the name of its class. If there is a parent class, the second group should match, and it should be the name of the class.

If :prototype is present and non-nil, the parser will merge declarations for this constructs with others at the same lexical level that have the same name. Otherwise, multiple definitions will create multiple top-level entries. Don't use :prototype unnecessarily: it has an associated cost in performance.

If :strip-prototype is present and non-nil, then if the class name as matched contains.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/js.el.gz
(defconst js--class-styles
  `((:name            "Plain"
     :class-decl      ,js--plain-class-re
     :prototype       t
     :contexts        (toplevel)
     :framework       javascript)

    (:name            "MochiKit"
     :class-decl      ,js--mochikit-class-re
     :prototype       t
     :contexts        (toplevel)
     :framework       mochikit)

    (:name            "Prototype (Obsolete)"
     :class-decl      ,js--prototype-obsolete-class-decl-re
     :contexts        (toplevel)
     :framework       prototype)

    (:name            "Prototype (Modern)"
     :class-decl      ,js--prototype-class-decl-re
     :contexts        (toplevel)
     :framework       prototype)

    (:name            "Prototype (Object.extend)"
     :class-decl      ,js--prototype-objextend-class-decl-re-1
     :prototype       t
     :contexts        (toplevel)
     :framework       prototype)

    (:name            "Prototype (Object.extend) 2"
     :class-decl      ,js--prototype-objextend-class-decl-re-2
     :prototype       t
     :contexts        (toplevel)
     :framework       prototype)

    (:name            "Dojo"
     :class-decl      ,js--dojo-class-decl-re
     :contexts        (toplevel)
     :framework       dojo)

    (:name            "ExtJS (style 1)"
     :class-decl      ,js--extjs-class-decl-re-1
     :prototype       t
     :contexts        (toplevel)
     :framework       extjs)

    (:name            "ExtJS (style 2)"
     :class-decl      ,js--extjs-class-decl-re-2
     :contexts        (toplevel)
     :framework       extjs)

    (:name            "Merrill Press"
     :class-decl      ,js--mp-class-decl-re
     :contexts        (toplevel)
     :framework       merrillpress))

  "List of JavaScript class definition styles.

A class definition style is a plist with the following keys:

:name is a human-readable name of the class type

:class-decl is a regular expression giving the start of the
class.  Its first group must match the name of its class.  If there
is a parent class, the second group should match, and it should be
the name of the class.

If :prototype is present and non-nil, the parser will merge
declarations for this constructs with others at the same lexical
level that have the same name.  Otherwise, multiple definitions
will create multiple top-level entries.  Don't use :prototype
unnecessarily: it has an associated cost in performance.

If :strip-prototype is present and non-nil, then if the class
name as matched contains.")