;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\207" [require cl-lib mmm-vars mmm-region] 2) #@132 Get the class specification for CLASS. CLASS can be either a symbol to look up in `mmm-classes-alist' or a class specifier itself. (defalias 'mmm-get-class-spec #[(class) "9\203+ \236A\2067\n\236A@\203%\303\n\236A@!\203% \236A\2067\304\305C\"\207<\2032\207\304\305C\"\207" [class mmm-classes-alist mmm-autoloaded-classes load signal mmm-invalid-submode-class] 3 (#$ . 181)]) #@65 Get the value of the parameter PARAM for CLASS, or nil if none. (defalias 'mmm-get-class-parameter #[(class param) "\302 !\235A@\207" [param class mmm-get-class-spec] 3 (#$ . 577)]) #@105 Set the value of the parameter PARAM for CLASS to VALUE. Creates a new parameter if one is not present. (defalias 'mmm-set-class-parameter #[(class param value) "\305!\n \235\211\203 A\f\240\202 \n\fD\244*\207" [class spec param current value mmm-get-class-spec] 4 (#$ . 767)]) #@220 Apply the submode class CLASS from START to STOP in FACE. If FACE is nil, the face for CLASS is used, or the default face if none is specified by CLASS. (fn CLASS &optional (START (point-min)) (STOP (point-max)) FACE) (defalias 'mmm-apply-class #[(class &rest #1=#:--cl-rest--) "\203\f\211A\242\202 e\203\211A\242\202d\211A\242\2030\305\306\307\310G\\D\"\210\f\311=?\205N\312\313\314 \315\n\316\317\f!\320 D\"&\210\321\f!\210\322 +\207" [#1# start stop face class signal wrong-number-of-arguments mmm-apply-class 4 t apply mmm-ify :start :stop append mmm-get-class-spec :face mmm-run-class-hook mmm-set-mode-line] 10 (#$ . 1059)]) #@291 Apply all submode classes in CLASSES, in order. All classes are applied regardless of any errors that may occur in other classes. If any errors occur, `mmm-apply-classes' exits with an error once all classes have been applied. (fn CLASSES &key (START (point-min)) (STOP (point-max)) FACE) (defalias 'mmm-apply-classes #[(classes &rest #1=#:--cl-rest--) "\306\307\"\206\n\310eDA@\306\311\"\206\310dDA@\306\312\"A@\f\203M\f@\313>\2036\fAA\211\202$\314>A@\203D\310\211\202$\315\316\f@\"\210\202#)\310\310\211\203\223@\3171p\320 \n $0\210\202\212\211A@\211 \235\203\201 \202\205 B)\211)\210A\211\204[* \205\234\321\322 \",\207" [#1# start stop face #2=#:--cl-keys-- invalid-classes plist-member :start nil :stop :face (:start :stop :face :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:start :stop :face)" (mmm-invalid-submode-class) mmm-apply-class signal mmm-invalid-submode-class classes class --dolist-tail-- err #3=#:va] 6 (#$ . 1720)]) #@196 MMM-ify from START to STOP by all submode classes. The classes come from mode/ext, `mmm-classes', `mmm-global-classes', and interactive history. (fn &key (START (point-min)) (STOP (point-max))) (defalias 'mmm-apply-all #[(&rest #1=#:--cl-rest--) "\304\305\"\206\n\306eDA@\304\307\"\206\306dDA@ \203F @\310>\203/ AA\211\202\311>A@\203=\306\211\202\312\313 @\"\210\202)\314 \n\315#\210\316\317\320!\305 \307\n%\210\321 \210\322\323!\203h\324 !\210\323\n!\210\325 \n\"*\207" [#1# start stop #2=#:--cl-keys-- plist-member :start nil :stop (:start :stop :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:start :stop)" mmm-clear-overlays strict mmm-apply-classes mmm-get-all-classes t mmm-update-submode-region fboundp syntax-propertize syntax-ppss-flush-cache mmm-refontify-maybe] 7 (#$ . 2746)]) #@814 Create submode regions from START to STOP according to arguments. If CLASSES is supplied, it must be a list of valid CLASSes. Otherwise, the rest of the arguments are for an actual class being applied. See `mmm-classes-alist' for information on what they all mean. (fn &rest ALL &key CLASSES HANDLER SUBMODE MATCH-SUBMODE (START (point-min)) (STOP (point-max)) FRONT BACK SAVE-MATCHES (CASE-FOLD-SEARCH t) (BEG-STICKY (not (number-or-marker-p front))) (END-STICKY (not (number-or-marker-p back))) INCLUDE-FRONT INCLUDE-BACK (FRONT-OFFSET 0) (BACK-OFFSET 0) (FRONT-DELIM nil) (BACK-DELIM nil) (DELIMITER-MODE mmm-delimiter-mode) FRONT-FACE BACK-FACE FRONT-VERIFY BACK-VERIFY FRONT-FORM BACK-FORM CREATION-HOOK FACE MATCH-FACE SAVE-NAME MATCH-NAME (_FRONT-MATCH 0) (_BACK-MATCH 0) END-NOT-BEGIN &allow-other-keys) (defalias 'mmm-ify #[(&rest all) "\306\307\"A@\306\310\"A@\306\311\"A@\306\312\"A@\306\313\"\206&\314eDA@\306\315\"\2063\314dDA@>\306\316\"A@:\306\317\"A@?\306\320\"A@@\306\321\"\206W\322A@A\306\323\"\206i\314\324:!?DA@B\306\325\"\206{\314\324?!?DA@C\306\326\"A@D\306\327\"A@E\306\330\"\206\227\331A@F\306\332\"\206\243\333A@G\306\334\"A@H\306\335\"A@I\306\336\"\206\302\314JDA@K\306\337\"A@L\306\340\"A@M\306\341\"A@N\306\342\"A@O\306\343\"A@P\306\344\"A@Q\306\345\"A@R\306\346\"A@S\306\347\"A@T\306\350\"A@U\306\351\"A@V\306\352\"\206&\353A@W\306\354\"\2062\355A@X\306\356\"A@Y\357\313 \315>\323B\325C\330F\332G\334H\335I\352\360\354\360\257\" \203r\361 \313 \315>\346S&\202y\n\203}\362\n\"\202y\212\214\363 Z\364\216 b\210\314\211[\\\314\211]^\314\211_`\314\211ab\314\211cd\314\211ef\365g\362\366\313`$\211f\211Af\242[f\211Af\242\\f\211Af\242]f\211Af\242^f\211Af\242_f\211Af\242`f\211Af\242af\211Af\242bf\211Af\242cf\211Af\242df@e[\203v\\\203l\3671d\370a\206* [\\\346b\2066S\316]\317^\371\372\373_\374`\323B\325C\375c\336K\337L\340M\345R&\210eb0\210\202p\210db\210\202pdb\210\314g\202\257.\314.!\207" [all classes handler submode _match-submode start plist-member :classes :handler :submode :match-submode :start nil :stop :front :back :save-matches :case-fold-search (nil t) :beg-sticky number-or-marker-p :end-sticky :include-front :include-back :front-offset (nil 0) :back-offset (nil 0) :front-delim :back-delim :delimiter-mode :front-face :back-face :front-verify :back-verify :front-form :back-form :creation-hook :face :match-face :save-name :match-name :front-match (nil 0) :back-match (nil 0) :end-not-begin append 0 mmm-apply-classes apply match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] t mmm-match-region (mmm-error) mmm-make-region :evaporation front :match-front :match-back :name stop back _save-matches case-fold-search beg-sticky end-sticky _include-front _include-back front-offset back-offset front-delim back-delim mmm-delimiter-mode delimiter-mode front-face back-face _front-verify _back-verify _front-form _back-form creation-hook face _match-face _save-name _match-name _front-match _back-match _end-not-begin save-match-data-internal beg end front-pos back-pos matched-front matched-back matched-submode matched-face matched-name invalid-resume ok-resume #1=#:--cl-var-- #2=#:--cl-var--] 31 (#$ . 3595)]) #@752 Find the first valid region between point and STOP. Return (BEG END FRONT-POS BACK-POS FRONT-FORM BACK-FORM SUBMODE FACE NAME INVALID-RESUME OK-RESUME) specifying the region. See `mmm-match-and-verify' for the valid values of FRONT and BACK (markers, regexps, or functions). A nil value for END means that MATCH-SUBMODE failed to find a valid submode. INVALID-RESUME is the point at which the search should continue if the region is invalid, and OK-RESUME if the region is valid. (fn &key START STOP FRONT BACK FRONT-VERIFY BACK-VERIFY FRONT-DELIM BACK-DELIM INCLUDE-FRONT INCLUDE-BACK FRONT-OFFSET BACK-OFFSET FRONT-FORM BACK-FORM SAVE-MATCHES MATCH-SUBMODE MATCH-FACE FRONT-MATCH BACK-MATCH END-NOT-BEGIN SAVE-NAME MATCH-NAME &allow-other-keys) (defalias 'mmm-match-region #[(&rest #1=#:--cl-rest--) "\306\307\"A@\306\310\"A@\306\311\"A@\306\312\"A@\306\313\"A@\306\314\"A@,\306\315\"A@-\306\316\"A@.\306\317\"A@/\306\320\"A@0\306\321\"A@1\306\322\"A@2\306\323\"A@3\306\324\"A@4\306\325\"A@5\306\326\"A@6\306\327\"A@7\306\330\"A@8\306\331\"A@9\306\332\"A@:\306\333\"A@;\306\334\"A@<\3352\277\336 \n $\205\276\337/18#-\205\314\337\340-8#8\225\3413!3=>?6\205 \3421\366\212\214\343 @\344\21663!,0\202 \210\345\335?\346\211\211\211\211\211\211\211=\346\257 \"\347E34CAB=F\257 ,.0.\207" [#1# start stop front back front-verify plist-member :start :stop :front :back :front-verify :back-verify :front-delim :back-delim :include-front :include-back :front-offset :back-offset :front-form :back-form :save-matches :match-submode :match-face :front-match :back-match :end-not-begin :save-name :match-name --cl-block-mmm-match-region-- mmm-match-and-verify mmm-match->point t mmm-get-form (mmm-no-matching-submode) match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] throw nil functionp #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] mmm-format-matches #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] assoc back-verify front-delim back-delim include-front include-back front-offset back-offset front-form back-form save-matches match-submode match-face front-match back-match end-not-begin save-name match-name invalid-resume front-pos beg save-match-data-internal face name submode end back-pos ok-resume] 13 (#$ . 6966)]) #@202 Find a point of starting or stopping from the match data. If BEGINP, start at (match-beginning MATCH), else (match-end MATCH), and move OFFSET. Handles all values of OFFSET--see `mmm-classes-alist'. (defalias 'mmm-match->point #[(beginp offset match) "\212\203\n \224\202\f \225b\210\n<\203\n\202\nC\305\211\203<\f@\211\247\2032 \206-\306u\210\2025 \210\fA\211\204 *`)\207" [beginp match offset spec --dolist-tail-- nil 0] 3 (#$ . 9650)]) #@485 Find first match for POS between point and STOP satisfying VERIFY. Return non-nil if a match was found, and set match data. POS can be a number-or-marker, a regexp, or a function. If POS is a number-or-marker, it is used as-is. If it is a string, it is searched for as a regexp until VERIFY returns non-nil. If it is a function, it is called with argument STOP and must return non-nil iff a match is found, and set the match data. Note that VERIFY is ignored unless POS is a regexp. (defalias 'mmm-match-and-verify #[(pos start stop &optional verify) "\306!\203 Y\203\nX\203b\210\307\310!\207;\203B\311\312\n\313#\211\203;\f\203;\212\214\314 \315\216\f ,\203 \205@\311)\207\316!\205K\n!\207" [pos start stop #1=#:--cl-flag-- verify save-match-data-internal number-or-marker-p looking-at "" t re-search-forward limit match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] functionp] 4 (#$ . 10115)]) #@297 Return the delimiter form specified by FORM. If FORM is nil, call `mmm-default-get-form'. If FORM is a string, return it. If FORM is a function, call it. If FORM is a list, return its `car' (usually in this case, FORM is a one-element list containing a function to be used as the delimiter form. (defalias 'mmm-get-form #[(form) ";\203\207\204\302 \207\303!\203\212\214\304 \305\216 ,\207<\205&@\207" [form save-match-data-internal mmm-default-get-form functionp match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3]] 2 (#$ . 11081)]) (defalias 'mmm-default-get-form #[nil "\300\301\302!!\207" [regexp-quote match-string 0] 3]) (provide 'mmm-class)