;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\207" [require cl-lib font-lock mmm-compat mmm-utils mmm-vars mmm-auto mmm-region mmm-class mmm-univ] 2) #@1814 Minor mode to allow multiple major modes in one buffer. Without ARG, toggle MMM Mode. With ARG, turn MMM Mode on iff ARG is positive and off otherwise. Commands Available: \ \{mmm-mode-map} BASIC CONCEPTS The idea of MMM Mode is to allow multiple major modes to coexist in the same buffer. There is one "primary" major mode that controls most of the buffer, and a number of "submodes" that each hold sway over certain regions. The submode regions are usually highlighted by a background color for ease of recognition. While the point is in a submode region, the following changes (are supposed to) occur: 1. The local keymap and the syntax table are that of the submode. 2. The mode line changes to show what submode region is active. 3. The major mode menu and mouse popup menu are that of the submode. 4. Some local variables of the submode shadow the default mode's. 5. Font-lock fontifies correctly for the submode. 6. Indentation function dispatches to the appropriate submode. 7. User-specified hooks run when the point enters or exits a submode. The user may specify a number of hooks which may run when the point transitions between submodes, or between the primary mode and a submode. When a major mode is entered, the hook mmm-x-enter-hook is run, where x is the name of the major mode. When a major mode is left, the hook mmm-y-exit-hook is run, where y is the name of the major mode. Users may also specify hooks with names of the form mmm-x-y-hook which are run when the point leaves a mode named x, and enters a mode named y. For further information, including installation and configuration instructions, see the Info file mmm.info which is included with the distribution of MMM Mode. Many of MMM's configuration variables are available through M-x customize-group RET mmm. (defalias 'mmm-mode #[(&optional arg) "\203\f\302!\303V\202 ?\203\304 \207\305 \207" [arg mmm-mode prefix-numeric-value 0 mmm-mode-on mmm-mode-off] 2 (#$ . 319) "P"]) (byte-code "\301\302\303D\"\207" [mmm-mode-string add-to-list minor-mode-alist mmm-mode] 4) #@35 Turn on MMM Mode. See `mmm-mode'. (defalias 'mmm-mode-on #[nil "\306 \307H\310=\206\311\312 !\206 >\206\n\206 ?\205\222\f?\205\222\313\314!\2030\314\315!\210\316!\210\317\320D\321\322 D\323'\236A!BB(\324\320\"\210\325 \210\326 \210\327\330!\210\331\332\333!\203e\327\333!\210\320\327\334!\210\335\327\336!\210)\315\3371\201\340 0\210\202\214*\341\342\343*!\")\210\344\345!\210\346 \207" [major-mode mmm-never-modes noninteractive mmm-in-temp-buffer mmm-mode mmm-primary-mode buffer-name 0 32 window-minibuffer-p selected-window fboundp c-make-styles-buffer-local t mmm-update-mode-info font-lock-cache-state nil font-lock-cache-position make-marker copy-tree mmm-set-local-variables mmm-add-hooks mmm-fixup-skeleton make-local-variable font-lock-fontify-region-function mmm-fontify-region boundp syntax-begin-function syntax-propertize-function mmm-syntax-propertize-function indent-line-function (mmm-error) mmm-apply-all message "%s" error-message-string run-hooks mmm-mode-hook mmm-run-major-hook mmm-region-saved-locals-defaults mmm-region-saved-locals-for-dominant mmm-indent-line-function err] 5 (#$ . 2405) nil]) #@36 Turn off MMM Mode. See `mmm-mode'. (defalias 'mmm-mode-off #[nil "\205(\305 \210\306 \210\307 \210\310 \210\311 \210\312 \210 \313N\314 \210\315 \210\316\211\316\317 \207" [mmm-mode mmm-primary-mode font-lock-fontify-region-function mmm-primary-mode-display-name mmm-buffer-mode-display-name mmm-remove-hooks mmm-clear-overlays mmm-clear-history mmm-clear-mode-ext-classes mmm-clear-local-variables mmm-update-submode-region mmm-fontify-region-function mmm-update-font-lock-buffer mmm-refontify-maybe nil mmm-set-mode-line] 3 (#$ . 3565) nil]) #@28 Keymap for MMM Minor Mode. (defvar mmm-mode-map (make-sparse-keymap) (#$ . 4121)) #@56 Keymap for MMM Minor Mode after `mmm-mode-prefix-key'. (defvar mmm-mode-prefix-map (make-sparse-keymap) (#$ . 4209)) #@33 Keymap for MMM Minor Mode menu. (defvar mmm-mode-menu-map (make-sparse-keymap "MMM") (#$ . 4332)) (defalias 'mmm-define-key #[(key binding &optional keymap) "\305\206 \306\307\n C\"!\f#\207" [keymap mmm-mode-prefix-map mmm-command-modifiers key binding define-key vector append] 6]) (byte-code "\203\300 \210\306\307\310\"\210\306\311\312\"\210\306\313\314\"\210\306\315\316\"\210\306\317\320\"\210\306\321\322\"\210\306\323\322\"\210\306\324\325\"\210\306\326\327\"\210\306\330\331\"\210\306\332\333\"\210\334 \335\336#\210\334 \337\340#\210\334 \341\n! #\210\334\f #\210\334@\342\343#\210\334@\344\345#\210\334@\346\347#\210\334@\350\351#\210\334@\352\353#\210\334@\354\355#\210\334@\356\357#\210\334@\360\361#\210\334@\362\363#\210\334@\364\365#\210\334@\366\367#\210\334@\370\371#\210\334@\372\373#\210\334@\374\375#\210\334@\376\377#\210\334@\201A\201B#\210\334\f\201C\201D@B#\210\201E\201F\201G\fB\"\210\201H\201G!\207" [mmm-use-old-command-keys mmm-mode-prefix-map help-char prefix-help-command mmm-mode-map mmm-mode-prefix-key mmm-define-key 99 mmm-ify-by-class 120 mmm-ify-by-regexp 114 mmm-ify-region 98 mmm-parse-buffer 103 mmm-parse-region 37 mmm-parse-block 53 107 mmm-clear-current-region 32 mmm-reparse-current-region 101 mmm-end-current-region 122 mmm-narrow-to-submode-region define-key [104] mmm-insertion-help [t] mmm-insert-region vector [off] ("MMM Mode Off" . mmm-mode-off) [sep0] (menu-item "----") [clhist] ("Clear History" . mmm-clear-history) [end] ("End Current" . mmm-end-current-region) [clear] ("Clear Current" . mmm-clear-current-region) [reparse] ("Reparse Current" . mmm-reparse-current-region) [sep10] (menu-item "----") [ins-help] ("List Insertion Keys" . mmm-insertion-help) [sep20] (menu-item "----") [region] (menu-item "MMM-ify Region" mmm-ify-region :enable mark-active) [regexp] ("MMM-ify by Regexp" . mmm-ify-by-regexp) [class] ("Apply Submode Class" . mmm-ify-by-class) [sep30] (menu-item "----") [parse-region] (menu-item "Parse Region" mmm-parse-region :enable mark-active) [parse-buffer] ("Parse Buffer" . mmm-parse-buffer) mmm-mode-menu-map [parse-block] ("Parse Block" . mmm-parse-block) [menu-bar mmm] "MMM" add-to-list minor-mode-map-alist mmm-mode provide] 5)