;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!\207" [require cl-lib font-lock mmm-compat mmm-vars mmm-class] 2) #@61 Add submode regions according to an existing submode class. (defalias 'mmm-ify-by-class #[(class) "\301\302!=?\205\303!\210\304!\210\305 \207" [class intern "" mmm-apply-class mmm-add-to-history mmm-update-font-lock-buffer] 3 (#$ . 226) (list (intern (completing-read "Submode Class: " (cl-remove-duplicates (mapcar #'(lambda (spec) (list (symbol-name (car spec)))) (append (cl-remove-if #'(lambda (spec) (plist-get (cdr spec) :private)) mmm-classes-alist) (cl-remove-if #'caddr mmm-autoloaded-classes))) :test #'equal) nil t)))]) #@66 Add a submode region for SUBMODE coinciding with current region. (defalias 'mmm-ify-region #[(submode front back) "\303\304\305 \306\n&\210\307 \310\311#\307\n\311\211#\312\304\305 \306\n\257!\210\313!\207" [submode front back mmm-ify :submode :front :back mmm-make-marker t nil mmm-add-to-history mmm-enable-font-lock] 7 (#$ . 768) "aSubmode: \nr"]) #@158 Add SUBMODE regions to the buffer delimited by FRONT and BACK. With prefix argument, prompts for all additional keywords arguments. See `mmm-classes-alist'. (defalias 'mmm-ify-by-regexp #[(submode front front-offset back back-offset save-matches) "\306\307\300!\205\205\310\311!D\307\301!\205 \205\310\312! D\307\302!\205.\n\205.\310\313!\nD\307\303!\205= \205=\310\314! D\307\304!\205L\f\205L\310\315!\fD\307\305!\205[ \205[\310\316! D&\317\320\"\210\321!\210)\322!\207" [submode front back front-offset back-offset save-matches append boundp intern ":submode" ":front" ":back" ":front-offset" ":back-offset" ":save-matches" apply mmm-ify mmm-add-to-history mmm-enable-font-lock args] 8 (#$ . 1133) "aSubmode: \nsFront Regexp: \nnOffset from Front Regexp: \nsBack Regexp: \nnOffset from Back Regexp: \nnNumber of matched substrings to save: "]) #@196 Re-apply all applicable submode classes to current buffer. Clears all current submode regions, reapplies all past interactive mmm-ification, and applies `mmm-classes' and mode-extension classes. (defalias 'mmm-parse-buffer #[nil "\300\301!\210\302 \210\300\303!\207" [message "MMM-ifying buffer..." mmm-apply-all "MMM-ifying buffer...done"] 2 (#$ . 2012) nil]) #@201 Re-apply all applicable submode classes between START and STOP. Clears all current submode regions, reapplies all past interactive mmm-ification, and applies `mmm-classes' and mode-extension classes. (defalias 'mmm-parse-region #[(start stop) "\302\303!\210\304\305\306 $\210\302\307!\207" [start stop message "MMM-ifying region..." mmm-apply-all :start :stop "MMM-ifying region...done"] 5 (#$ . 2380) "r"]) #@482 Re-parse LINES lines before and after point (default 1). Clears all current submode regions, reapplies all past interactive mmm-ification, and applies `mmm-classes' and mode-extension classes. This command is intended for use when you have just typed what should be the delimiters of a submode region and you want to create the region. However, you may want to look into the various types of delimiter auto-insertion that MMM Mode provides. See, for example, `mmm-insert-region'. (defalias 'mmm-parse-block #[(&optional lines) "\304\305!\210\306!\211G\307U\203 \211A\242\202\310\311\312 GD\" \242\n W\203/\313\314\n\315 $\210+\304\316!\207" [lines #1=#:--cl-rest-- start stop message "MMM-ifying block..." mmm-get-block 2 signal wrong-number-of-arguments (start stop) mmm-apply-all :start :stop "MMM-ifying block...done"] 6 (#$ . 2796) "p"]) (defalias 'mmm-get-block #[(lines) "\302\212 [y\210\303 \210`)\212 y\210\304\210`*D\207" [inhibit-point-motion-hooks lines t beginning-of-line nil] 2]) #@128 Clear and reparse the area of the current submode region. Use this command if a submode region's boundaries have become wrong. (defalias 'mmm-reparse-current-region #[nil "`\305\306 \"@*\211\205,\212\307\n!b\210\310y\210`)\212\311\n!b\210\312y\210`)\313\f \"*)\207" [type pos ovl end beg all mmm-overlays-at mmm-front-start -1 mmm-back-end 1 mmm-parse-region] 4 (#$ . 3810) nil]) #@59 Deletes the submode region point is currently in, if any. (defalias 'mmm-clear-current-region #[nil "\302`\303\304 \"@*!\207" [type pos delete-overlay all mmm-overlays-at] 4 (#$ . 4203) nil]) #@49 Deletes all submode regions from START to STOP. (defalias 'mmm-clear-regions #[(start stop) "\302 \"\207" [start stop mmm-clear-overlays] 3 (#$ . 4404) "r"]) #@52 Deletes all submode regions in the current buffer. (defalias 'mmm-clear-all-regions #[nil "\300 \207" [mmm-clear-overlays] 1 (#$ . 4569) nil]) #@508 End current submode region. If ARG is nil, end it at the most appropriate place, usually its current back boundary. If ARG is non-nil, end it at point. If the current region is correctly bounded, the first does nothing, but the second deletes that delimiter as well. If the region's BACK property is a string, it is inserted as above and the overlay moved if necessary. If it is a function, it is called with two arguments--the overlay, and (if ARG 'middle t)--and must do the entire job of this function. (defalias 'mmm-end-current-region #[(&optional arg) "\3062\201\307\211\310 \"@*\211\205\311\216\312\313 \314\216\212\315\n!\2033 \203.\316\317!\210\2023\320\306\307\"\210+\321\n\322\"\211;\203[\212 \204I\323\n!b\210\212c\210)\324\n\325\n!`#\210)\202p\326!\203p\n \203m\327\202n\312\"\210+\330\212\331y\210`)\212\332y\210`)\")0\207" [type pos ovl combine-after-change-calls save-match-data-internal arg --cl-block-mmm-end-current-region-- nil mmm-overlays-at #[nil "\300 \207" [combine-after-change-execute] 1] t match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] mmm-match-back replace-match "" throw overlay-get back overlay-end move-overlay overlay-start functionp middle mmm-refontify-maybe -1 1] 5 (#$ . 4719) "P"]) #@40 Narrow to the submode region at point. (defalias 'mmm-narrow-to-submode-region #[(&optional pos) "\303\304 \"@*\211\205\305\n!\306\n!})\207" [pos type ovl nil mmm-overlays-at overlay-start overlay-end] 4 (#$ . 6017) nil]) #@476 Insert a submode region based on last character in invoking keys. Keystrokes after `mmm-mode-prefix-key' which are not bound to an MMM Mode command (see `mmm-command-modifiers') are passed on to this function. If they have the modifiers `mmm-insert-modifiers', then they are looked up, sans those modifiers, in all current submode classes to find an insert skeleton. For example, in Mason, `p' (with appropriate prefix and modifiers) will insert a <%perl>... region. (defalias 'mmm-insert-region #[(arg) "\306 \211\211GSH\307 !\310 !\311\f\n\"\205\"\312\313\314\n\f\" \" \",\207" [seq event mods key mmm-insert-modifiers arg this-command-keys event-modifiers event-basic-type cl-subsetp mmm-insert-by-key append cl-set-difference] 6 (#$ . 6253) "P"]) #@488 Insert a submode region based on event KEY. Inspects all the classes of the current buffer to find a matching :insert key sequence. See `mmm-classes-alist'. ARG, if present, is passed on to `skeleton-proxy-new' to control wrapping. KEY must be a list (MODIFIERS... . BASIC-KEY) where MODIFIERS are symbols such as shift, control, etc. and BASIC-KEY is a character code or a symbol such as tab, return, etc. Note that if there are no MODIFIERS, the dotted list becomes simply BASIC-KEY. (defalias 'mmm-insert-by-key #[(key &optional arg) "\306!\211@ A@\307 8 \205m\310 \310-./0\203$\3101\311 \f2#\2101\2113G\312U\203@3\211A3\242\202H\313\314\3153GD\"43\211A3\24253\211A3\24263\242'\316\n\317\"\316\n\320\"\316\n\321\"\322'6{!\32254{!\310\211\211789:;<=>\323>\203\245\212\214\324 ?\325\216>;!,\202\251\316\n\326\"!9\327=!\203\304\212\214\324 ?\330\216=;!,\202\327=\203\323\331;=\"A\202\327\316\n\332\"8\316\n\333\"\203\344\f\202\327function match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] :submode functionp #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] assoc :face :skel-name #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] :save-name string-match :front mmm-format-matches mmm-make-region :name :back :match-front :match-back :evaporation front :beg-sticky t :end-sticky :creation-hook mmm-enable-font-lock undo old-undo after-change-functions mmm-xemacs skeleton-positions arg #2=#:--cl-rest-- back end beg name face submode back-form front-form match-name match-face match-submode save-match-data-internal] 27 (#$ . 7024)]) #@287 Get the insertion info for KEY from all classes in CLASSLIST. Return (CLASS SKEL STR) where CLASS is the class spec a match was found in, SKEL is the skeleton to insert, and STR is the argument. CLASSLIST defaults to the return value of `mmm-get-all-classes', including global classes. (defalias 'mmm-get-insertion-spec #[(key &optional classlist) "\206\306\307!\310\211\310\211\310\307\211\310 :\203\221 @\311\n!\312 \313\"\314\f\"AA\211A:\204G A\314 @\f\"AA \203Y E\310\211\202Z\307\203\221\312 \315\"\211\203\203\316\"\211\203~\310\211\202\307)\202\204\307)\203\221 A\310\202. \207" [classlist #1=#:--cl-var-- classname class inserts skel mmm-get-all-classes t nil mmm-get-class-spec plist-get :insert assoc :classes mmm-get-insertion-spec str #2=#:--cl-var-- #3=#:--cl-var-- #4=#:--cl-var-- key it] 4 (#$ . 9246)]) #@61 Display help on currently available MMM insertion commands. (defalias 'mmm-insertion-help #[nil "r\306\307!q\210p\310 \210 \311\211\312\211\312\313 \210\314\315!\210+\211\316\317!\210\316\320!\210\316\321!\210\322\323\324 \"\325!\210+\207" [default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks get-buffer-create "*Help*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ "Available MMM Mode Insertion Commands:\n" "Key Inserts\n" "--- -------\n\n" mapcar mmm-display-insertion-key mmm-get-all-insertion-keys internal-temp-output-buffer-show inhibit-read-only #2=#:buf standard-output] 4 (#$ . 10135) nil]) #@151 Print an insertion binding to standard output. SPEC should be (KEY NAME ...) where KEY is an insertion key and NAME is a symbol naming the insertion. (defalias 'mmm-display-insertion-key #[(spec) "\306\307\310\"\311 \n@\"\312 !S\313] \233 :\203\"\f\211AC\241\210\202% C\314\313\315\316\317\311 C\"\"!#\210\320!\210\320\nA@!\210\320\321!+\207" [str mmm-insert-modifiers spec key lastkey mmm-mode-prefix-key make-string 16 32 append safe-length 0 store-substring key-description apply vector princ "\n"] 9 (#$ . 10876)]) #@167 Return an alist of all currently available insertion keys. Elements look like (KEY NAME ...) where KEY is an insertion key and NAME is a symbol naming the insertion. (defalias 'mmm-get-all-insertion-keys #[(&optional classlist) "\306\206\307\310!\311\211\311\310 :\203@ @\312\n!\313\f\314 \315\"\"\314 \316\"\211\2037\313\f\317!\") A\311\202\f-\320\321\322\323\324\310&\207" [classlist #1=#:--cl-var-- classname class keys #2=#:--cl-var-- cl-remove-duplicates mmm-get-all-classes t nil mmm-get-class-spec append plist-get :insert :classes mmm-get-all-insertion-keys :test equal :key #[(x) "@A@B\207" [x] 2] :from-end it] 9 (#$ . 11411)]) (provide 'mmm-cmds)