mirror of https://github.com/Chizi123/.emacs.d.git

Chizi123
2018-11-21 e75a20334813452c6912c090d70a0de2c805f94d
commit | author | age
5cb5f7 1 ;ELC
C 2 ;;; Compiled
3 ;;; in Emacs version 26.1
4 ;;; with all optimizations.
5
6 ;;; This file contains utf-8 non-ASCII characters,
7 ;;; and so cannot be loaded into Emacs 22 or earlier.
8 (and (boundp 'emacs-version)
9      (< (aref emacs-version (1- (length emacs-version))) ?A)
10      (string-lessp emacs-version "23")
11      (error "`%s' was compiled for Emacs 23 or later" #$))
12
13 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14
15
16 (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305!\204%\306\305\307\310B\"\210\311\305\312\313#\210\314\305\315\316#\210\300\207" [require dash thingatpt help-mode fboundp defvar-local defalias macro #[770 "\300\301F\302\303DDE\207" [progn defvar make-variable-buffer-local quote] 8 "Define VAR as a buffer-local variable with default value VAL.\nLike `defvar' but additionally marks the variable as being automatically\nbuffer-local wherever it is set.\n\n(fn VAR VAL &optional DOCSTRING)"] put edebug-form-spec defvar function-put doc-string-elt 3] 4)
17 #@536 Generate a cheat sheet of all the smartparens interactive functions.
18
19 Without a prefix argument, print only the short documentation and examples.
20
21 With non-nil prefix argument ARG, show the full documentation for each function.
22
23 You can follow the links to the function or variable help page.
24 To get back to the full list, use \[help-go-back].
25
26 You can use `beginning-of-defun' and `end-of-defun' to jump to
27 the previous/next entry.
28
29 Examples are fontified using the `font-lock-string-face' for
30 better orientation.
31
32 (fn &optional ARG)
33 (defalias 'sp-cheat-sheet #[256 "\211?\262\303\304\305\306\307\310!!\"A\311\211:\203:@\262:\2033@\312=\2033\313A!\2033AB\262A\262\202\211\237\266\203r\314\315!q\210p\316\317\320!\210\321 \210\322 \210\323\324!\210\325\326C\327\330!\"\210\317\320!\210\311\331\203\217@\211>\204\203\203~\211>\204\203\211B\262\210\211T\262A\262\202e\266\211\237\262\331\203@\332!\333\232\204\372`\311\334\332!\335\336#c\210\337c\210\340!\210\212\203\353b\210\341\324!\210\324y\210\342\343!\203\323\341\344!\210\202\327\341\324!\210`\262\345\346\311\316#\203\353\211\212\324y\210`)|\210)\334\347\350\351\352\"\347Q\335\336#c\266\210\211T\262A\262\202\226\266eb\210\345\353\311\316#\203#\354\355!\356@A\335\357$\266\202 eb\210\345\360\311\316#\2039\356`S`\335\361$\210\202&eb\210\345\362\311\316#\203P\356\324\224\324\225\335\363$\210\202<eb\210\345\364\311\316#\203g\356\331\224\331\225\335\365$\210\202S\366 \210eb\210+\367\315!\207" [load-history help-xref-following standard-output (smartparens-mode smartparens-global-mode turn-on-smartparens-mode turn-off-smartparens-mode sp-wrap-cancel sp-remove-active-pair-overlay sp-splice-sexp-killing-around show-smartparens-mode show-smartparens-global-mode turn-on-show-smartparens-mode turn-off-show-smartparens-mode) (sp-use-paredit-bindings sp-use-smartparens-bindings) assoc-string file-truename locate-library "smartparens" nil defun commandp get-buffer-create "*Smartparens cheat sheet*" t read-only-mode -1 erase-buffer help-mode smartparens-mode 1 help-setup-xref sp-cheat-sheet called-interactively-p interactive 0 symbol-name "advice-compilation" propertize face font-lock-function-name-face " is " describe-function-1 forward-paragraph looking-at "^It is bound" 2 re-search-forward "^Examples:" "\n\n" make-string 72 8213 "\\(->\\|​\\)" bounds-of-thing-at-point line put-text-property font-lock-string-face "|" font-lock-warning-face "^It is bound to \\(.*?\\)\\." font-lock-keyword-face ";;.*?$" font-lock-comment-face help-make-xrefs pop-to-buffer] 14 (#$ . 979) "P"])
34 #@99 Describe user's system.
35
36 The output of this function can be used in bug reports.
37
38 (fn STARTERKIT)
39 (defalias 'sp-describe-system #[257 "\305\306\307\310\"A@\211\203#\311\312!    >\204\313\314\315D\"\210\316H!\202$\317\262\320\n!\321\303!\2050 \322\323\324\325 #\320\f!&\326r\327\330!q\210\331 \210\332c\210c\210p)!\210\333!\207" [package-alist cl-struct-package-desc-tags major-mode smartparens-strict-mode system-type format "- `smartparens` version: %s\n- Active `major-mode`: `%s`\n- Smartparens strict mode: %s\n- Emacs version (`M-x emacs-version`): %s\n- Starterkit/Distribution: %s\n- OS: %s" assoc smartparens package-version-join type-of signal wrong-type-argument package-desc 2 "<Please specify manually>" symbol-name boundp replace-regexp-in-string "\n" "" emacs-version pop-to-buffer get-buffer-create "*sp-describe-system*" erase-buffer "The content of the buffer underneath the line was\ncopied to your clipboard.  You can also edit it in this buffer\nand then copy the results manually.\n------------------------------------------------\n" kill-new] 10 (#$ . 3606) (byte-code "\300\301\302\303\304E\"C\207" [completing-read "Starterkit/Distribution used: " "Spacemacs" "Evil" "Vanilla"] 5)])
40 #@41 Function to restrict the forward search
41 (defvar sp-forward-bound-fn nil (#$ . 4831))
42 (make-variable-buffer-local 'sp-forward-bound-fn)
43 #@42 Function to restrict the backward search
44 (defvar sp-backward-bound-fn nil (#$ . 4972))
45 (make-variable-buffer-local 'sp-backward-bound-fn)
46 #@155 Get the bound to limit the forward search for looking for pairs.
47
48 If it returns nil, the original bound passed to the search
49 function will be considered.
50 (defalias 'sp--get-forward-bound #[0 "\205 \207" [sp-forward-bound-fn] 1 (#$ . 5117)])
51 #@156 Get the bound to limit the backward search for looking for pairs.
52
53 If it returns nil, the original bound passed to the search
54 function will be considered.
55 (defalias 'sp--get-backward-bound #[0 "\205 \207" [sp-backward-bound-fn] 1 (#$ . 5369)])
56 #@37 Keymap used for `smartparens-mode'.
57 (defvar smartparens-mode-map (make-sparse-keymap) (#$ . 5623))
58 (byte-code "\300\301\302\"\210\303\301\302\304#\207" [defvaralias sp-keymap smartparens-mode-map make-obsolete-variable "2015-01-01"] 4)
59 #@115 Paredit inspired bindings.
60
61 Alist containing the default paredit bindings to corresponding
62 smartparens functions.
63 (defvar sp-paredit-bindings '(("C-M-f" . sp-forward-sexp) ("C-M-b" . sp-backward-sexp) ("C-M-u" . sp-backward-up-sexp) ("C-M-d" . sp-down-sexp) ("C-M-p" . sp-backward-down-sexp) ("C-M-n" . sp-up-sexp) ("M-s" . sp-splice-sexp) ("M-<up>" . sp-splice-sexp-killing-backward) ("M-<down>" . sp-splice-sexp-killing-forward) ("M-r" . sp-splice-sexp-killing-around) ("M-(" . sp-wrap-round) ("C-)" . sp-forward-slurp-sexp) ("C-<right>" . sp-forward-slurp-sexp) ("C-}" . sp-forward-barf-sexp) ("C-<left>" . sp-forward-barf-sexp) ("C-(" . sp-backward-slurp-sexp) ("C-M-<left>" . sp-backward-slurp-sexp) ("C-{" . sp-backward-barf-sexp) ("C-M-<right>" . sp-backward-barf-sexp) ("M-S" . sp-split-sexp) ("M-j" . sp-join-sexp) ("M-?" . sp-convolute-sexp)) (#$ . 5866))
64 #@78 Populates the `smartparens-mode-map' from the BINDINGS alist.
65
66 (fn BINDINGS)
67 (defalias 'sp--populate-keymap #[257 "\211\301\205@\302\303@!A#\266\211T\262A\262\202\207" [smartparens-mode-map 0 define-key read-kbd-macro] 8 (#$ . 6738)])
68 #@61 Initiate `smartparens-mode-map' with `sp-paredit-bindings'.
69 (defalias 'sp-use-paredit-bindings #[0 "\301!\207" [sp-paredit-bindings sp--populate-keymap] 2 (#$ . 6992) nil])
70 #@52 Alist containing the default smartparens bindings.
71 (defvar sp-smartparens-bindings '(("C-M-f" . sp-forward-sexp) ("C-M-b" . sp-backward-sexp) ("C-M-d" . sp-down-sexp) ("C-M-a" . sp-backward-down-sexp) ("C-S-d" . sp-beginning-of-sexp) ("C-S-a" . sp-end-of-sexp) ("C-M-e" . sp-up-sexp) ("C-M-u" . sp-backward-up-sexp) ("C-M-n" . sp-next-sexp) ("C-M-p" . sp-previous-sexp) ("C-M-k" . sp-kill-sexp) ("C-M-w" . sp-copy-sexp) ("M-<delete>" . sp-unwrap-sexp) ("M-<backspace>" . sp-backward-unwrap-sexp) ("C-<right>" . sp-forward-slurp-sexp) ("C-<left>" . sp-forward-barf-sexp) ("C-M-<left>" . sp-backward-slurp-sexp) ("C-M-<right>" . sp-backward-barf-sexp) ("M-D" . sp-splice-sexp) ("C-M-<delete>" . sp-splice-sexp-killing-forward) ("C-M-<backspace>" . sp-splice-sexp-killing-backward) ("C-S-<backspace>" . sp-splice-sexp-killing-around) ("C-]" . sp-select-next-thing-exchange) ("C-M-]" . sp-select-next-thing) ("C-M-SPC" . sp-mark-sexp) ("M-F" . sp-forward-symbol) ("M-B" . sp-backward-symbol)) (#$ . 7172))
72 #@65 Initiate `smartparens-mode-map' with `sp-smartparens-bindings'.
73 (defalias 'sp-use-smartparens-bindings #[0 "\301!\207" [sp-smartparens-bindings sp--populate-keymap] 2 (#$ . 8180) nil])
74 #@291 Set up the default keymap based on `sp-base-key-bindings'.
75
76 SYMBOL is the symbol being set, that is `sp-base-key-bindings'.
77
78 VALUE is the saved value (as a symbol), can be one of:
79 - sp
80 - paredit
81
82 This function is also used as a setter for this customize value.
83
84 (fn &optional SYMBOL VALUE)
85 (defalias 'sp--set-base-key-bindings #[512 "\203    \300\"\210\211\301\267\202\302 \207\303 \207\304\207" [set-default #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sp 15 paredit 18)) sp-use-smartparens-bindings sp-use-paredit-bindings nil] 5 (#$ . 8373)])
86 #@236 Override the key bindings with values from `sp-override-key-bindings'.
87
88 SYMBOL is `sp-override-key-bindings', VALUE is the value being set.
89
90 This function is also used as a setter for this customize value.
91
92 (fn &optional SYMBOL VALUE)
93 (defalias 'sp--update-override-key-bindings #[512 "\203    \300\"\210\301 \210\302!\207" [set-default sp--set-base-key-bindings sp--populate-keymap] 5 (#$ . 8970)])
94 (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&    \210\300\314\302\303\315DD\316\306\317\310\320\312\313&    \207" [custom-declare-variable sp-base-key-bindings funcall function #[0 "\300\207" [nil] 1] "A default set of key bindings for commands provided by smartparens.\n\nParedit binding adds the bindings in `sp-paredit-bindings' to the\ncorresponding smartparens commands.  It does not add bindings to\nany other commands, or commands that do not have a paredit\ncounterpart.\n\nSmartparens binding adds the bindings in\n`sp-smartparens-bindings' to most common smartparens commands.\nThese are somewhat inspired by paredit, but in many cases differ.\n\nNote that neither \"paredit\" nor \"smartparens\" bindings add a\nbinding for all the provided commands." :type (radio (const :tag "Don't use any default set of bindings" nil) (const :tag "Use smartparens set of bindings" sp) (const :tag "Use paredit set of bindings" paredit)) :set sp--set-base-key-bindings :group smartparens sp-override-key-bindings #[0 "\300\207" [nil] 1] "An alist of bindings and commands that should override the base key set.\n\nIf you wish to override a binding from the base set, set the\nvalue for the binding to the `kbd' recognizable string constant\nand command to the command symbol you wish to bind there.\n\nIf you wish to disable a binding from the base set, set the value\nfor the command to nil.\n\nExamples:\n (\"C-M-f\" . sp-forward-sexp)\n (\"C-<right>\" . nil)\n\nSee `sp-base-key-bindings'." (alist :key-type string :value-type symbol) sp--update-override-key-bindings] 10)
95 #@49 Character used to escape quotes inside strings.
96 (defvar sp-escape-char nil (#$ . 10963))
97 (make-variable-buffer-local 'sp-escape-char)
98 #@35 Character used to start comments.
99 (defvar sp-comment-char nil (#$ . 11103))
100 (make-variable-buffer-local 'sp-comment-char)
101 #@125 List of pairs for autoinsertion or wrapping.
102
103 Maximum length of opening or closing pair is
104 `sp-max-pair-length' characters.
105 (defvar sp-pair-list nil (#$ . 11232))
106 (make-variable-buffer-local 'sp-pair-list)
107 #@51 List of pair definitions used for current buffer.
108 (defvar sp-local-pairs nil (#$ . 11444))
109 (make-variable-buffer-local 'sp-local-pairs)
110 #@47 Symbol holding the last successful operation.
111 (defvar sp-last-operation nil (#$ . 11586))
112 (make-variable-buffer-local 'sp-last-operation)
113 #@67 compiler-macro for inlining `sp-state-p'.
114
115 (fn CL-WHOLE-ARG CL-X)
116 (defalias 'sp-state-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sp-state-p (and (memq (type-of cl-x) cl-struct-sp-state-tags) t)) nil] 9 (#$ . 11730)])
117 (put 'sp-state-p 'compiler-macro 'sp-state-p--cmacro)
118 #@13 
119
120 (fn CL-X)
121 (defalias 'sp-state-p #[257 "\301!>\205    \302\207" [cl-struct-sp-state-tags type-of t] 3 (#$ . 12053)])
122 (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put sp-state-p side-effect-free error-free put sp-state cl-deftype-satisfies] 5)
123 #@78 compiler-macro for inlining `sp-state-delayed-hook'.
124
125 (fn CL-WHOLE-ARG CL-X)
126 (defalias 'sp-state-delayed-hook--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sp-state-delayed-hook (or (sp-state-p cl-x) (signal 'wrong-type-argument (list 'sp-state cl-x))) (aref cl-x 1)) nil] 9 (#$ . 12320)])
127 (put 'sp-state-delayed-hook 'compiler-macro 'sp-state-delayed-hook--cmacro)
128 #@66 Access slot "delayed-hook" of `sp-state' struct CL-X.
129
130 (fn CL-X)
131 (defalias 'sp-state-delayed-hook #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sp-state-tags type-of signal wrong-type-argument sp-state 1] 5 (#$ . 12733)])
132 (byte-code "\300\301\302\303#\300\207" [function-put sp-state-delayed-hook side-effect-free t] 4)
133 #@83 compiler-macro for inlining `sp-state-delayed-insertion'.
134
135 (fn CL-WHOLE-ARG CL-X)
136 (defalias 'sp-state-delayed-insertion--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sp-state-delayed-insertion (or (sp-state-p cl-x) (signal 'wrong-type-argument (list 'sp-state cl-x))) (aref cl-x 2)) nil] 9 (#$ . 13080)])
137 (put 'sp-state-delayed-insertion 'compiler-macro 'sp-state-delayed-insertion--cmacro)
138 #@71 Access slot "delayed-insertion" of `sp-state' struct CL-X.
139
140 (fn CL-X)
141 (defalias 'sp-state-delayed-insertion #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sp-state-tags type-of signal wrong-type-argument sp-state 2] 5 (#$ . 13518)])
142 (byte-code "\300\301\302\303#\300\207" [function-put sp-state-delayed-insertion side-effect-free t] 4)
143 #@88 compiler-macro for inlining `sp-state-last-syntax-ppss-point'.
144
145 (fn CL-WHOLE-ARG CL-X)
146 (defalias 'sp-state-last-syntax-ppss-point--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sp-state-last-syntax-ppss-point (or (sp-state-p cl-x) (signal 'wrong-type-argument (list 'sp-state cl-x))) (aref cl-x 3)) nil] 9 (#$ . 13880)])
147 (put 'sp-state-last-syntax-ppss-point 'compiler-macro 'sp-state-last-syntax-ppss-point--cmacro)
148 #@76 Access slot "last-syntax-ppss-point" of `sp-state' struct CL-X.
149
150 (fn CL-X)
151 (defalias 'sp-state-last-syntax-ppss-point #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sp-state-tags type-of signal wrong-type-argument sp-state 3] 5 (#$ . 14343)])
152 (byte-code "\300\301\302\303#\300\207" [function-put sp-state-last-syntax-ppss-point side-effect-free t] 4)
153 #@89 compiler-macro for inlining `sp-state-last-syntax-ppss-result'.
154
155 (fn CL-WHOLE-ARG CL-X)
156 (defalias 'sp-state-last-syntax-ppss-result--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sp-state-last-syntax-ppss-result (or (sp-state-p cl-x) (signal 'wrong-type-argument (list 'sp-state cl-x))) (aref cl-x 4)) nil] 9 (#$ . 14720)])
157 (put 'sp-state-last-syntax-ppss-result 'compiler-macro 'sp-state-last-syntax-ppss-result--cmacro)
158 #@77 Access slot "last-syntax-ppss-result" of `sp-state' struct CL-X.
159
160 (fn CL-X)
161 (defalias 'sp-state-last-syntax-ppss-result #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sp-state-tags type-of signal wrong-type-argument sp-state 4] 5 (#$ . 15188)])
162 (byte-code "\300\301\302\303#\300\207" [function-put sp-state-last-syntax-ppss-result side-effect-free t] 4)
163 #@75 compiler-macro for inlining `sp-state-pair-list'.
164
165 (fn CL-WHOLE-ARG CL-X)
166 (defalias 'sp-state-pair-list--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sp-state-pair-list (or (sp-state-p cl-x) (signal 'wrong-type-argument (list 'sp-state cl-x))) (aref cl-x 5)) nil] 9 (#$ . 15568)])
167 (put 'sp-state-pair-list 'compiler-macro 'sp-state-pair-list--cmacro)
168 #@63 Access slot "pair-list" of `sp-state' struct CL-X.
169
170 (fn CL-X)
171 (defalias 'sp-state-pair-list #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sp-state-tags type-of signal wrong-type-argument sp-state 5] 5 (#$ . 15966)])
172 (byte-code "\300\301\302\303#\300\207" [function-put sp-state-pair-list side-effect-free t] 4)
173 #@77 compiler-macro for inlining `sp-state-local-pairs'.
174
175 (fn CL-WHOLE-ARG CL-X)
176 (defalias 'sp-state-local-pairs--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sp-state-local-pairs (or (sp-state-p cl-x) (signal 'wrong-type-argument (list 'sp-state cl-x))) (aref cl-x 6)) nil] 9 (#$ . 16304)])
177 (put 'sp-state-local-pairs 'compiler-macro 'sp-state-local-pairs--cmacro)
178 #@65 Access slot "local-pairs" of `sp-state' struct CL-X.
179
180 (fn CL-X)
181 (defalias 'sp-state-local-pairs #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sp-state-tags type-of signal wrong-type-argument sp-state 6] 5 (#$ . 16712)])
182 (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put sp-state-local-pairs side-effect-free t defalias copy-sp-state copy-sequence] 4)
183 #@176 compiler-macro for inlining `make-sp-state'.
184
185 (fn CL-WHOLE &cl-quote &key DELAYED-HOOK DELAYED-INSERTION LAST-SYNTAX-PPSS-POINT LAST-SYNTAX-PPSS-RESULT PAIR-LIST LOCAL-PAIRS)
186 (defalias 'make-sp-state--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\211\203R\211@\307>\203:\211AA\262\202'\310>A@\203I\311\262\202'\312\313@\"\210\202'\210\314\315\316\311 \311      & \207" [plist-member :delayed-hook :delayed-insertion :last-syntax-ppss-point :last-syntax-ppss-result :pair-list :local-pairs (:delayed-hook :delayed-insertion :last-syntax-ppss-point :last-syntax-ppss-result :pair-list :local-pairs :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:delayed-hook :delayed-insertion :last-syntax-ppss-point :last-syntax-ppss-result :pair-list :local-pairs)" cl--defsubst-expand (delayed-hook delayed-insertion last-syntax-ppss-point last-syntax-ppss-result pair-list local-pairs) (cl-block make-sp-state (record 'sp-state delayed-hook delayed-insertion last-syntax-ppss-point last-syntax-ppss-result pair-list local-pairs))] 20 (#$ . 17104)])
187 (put 'make-sp-state 'compiler-macro 'make-sp-state--cmacro)
188 #@156 Constructor for objects of type `sp-state'.
189
190 (fn &key DELAYED-HOOK DELAYED-INSERTION LAST-SYNTAX-PPSS-POINT LAST-SYNTAX-PPSS-RESULT PAIR-LIST LOCAL-PAIRS)
191 (defalias 'make-sp-state #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\211\203R\211@\307>\203:\211AA\262\202'\310>A@\203I\311\262\202'\312\313@\"\210\202'\210\314\315&\207" [plist-member :delayed-hook :delayed-insertion :last-syntax-ppss-point :last-syntax-ppss-result :pair-list :local-pairs (:delayed-hook :delayed-insertion :last-syntax-ppss-point :last-syntax-ppss-result :pair-list :local-pairs :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:delayed-hook :delayed-insertion :last-syntax-ppss-point :last-syntax-ppss-result :pair-list :local-pairs)" record sp-state] 15 (#$ . 18308)])
192 (byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303&    \207" [function-put make-sp-state side-effect-free t cl-struct-define sp-state "Smartparens state for the current buffer." cl-structure-object record nil ((cl-tag-slot) (delayed-hook) (delayed-insertion) (last-syntax-ppss-point) (last-syntax-ppss-result) (pair-list) (local-pairs)) cl-struct-sp-state-tags] 11)
193 #@43 Smartparens state for the current buffer.
194 (defvar sp-state (byte-code "\300\301\302\211\211\211\211\211&\207" [record sp-state nil] 8) (#$ . 19541))
195 (make-variable-buffer-local 'sp-state)
196 #@154 Location of point before last command.
197
198 This is only updated when some pair-overlay is active.  Do not
199 rely on the value of this variable anywhere else!
200 (defvar sp-previous-point -1 (#$ . 19737))
201 (make-variable-buffer-local 'sp-previous-point)
202 #@126 Save the value of point before attemt to wrap a region.
203
204 Used for restoring the original state if the wrapping is
205 cancelled.
206 (defvar sp-wrap-point nil (#$ . 19988))
207 (make-variable-buffer-local 'sp-wrap-point)
208 #@125 Save the value of mark before attemt to wrap a region.
209
210 Used for restoring the original state if the wrapping is
211 cancelled.
212 (defvar sp-wrap-mark nil (#$ . 20204))
213 (make-variable-buffer-local 'sp-wrap-mark)
214 #@155 Characters typed during the wrapping selection.
215
216 If wrapping is cancelled, these characters are re-inserted to the
217 location of point before the wrapping.
218 (defvar sp-last-inserted-characters "" (#$ . 20417))
219 (make-variable-buffer-local 'sp-last-inserted-characters)
220 #@21 Last inserted pair.
221 (defvar sp-last-inserted-pair nil (#$ . 20688))
222 (make-variable-buffer-local 'sp-last-inserted-pair)
223 #@196 The pair whose insertion is being delayed.
224
225 The insertion of this pair is delayed to be carried out in
226 `sp--post-command-hook-handler'.  The format is (opening delim
227 .  beg of the opening delim)
228 (defvar sp-delayed-pair nil (#$ . 20815))
229 (make-variable-buffer-local 'sp-delayed-pair)
230 #@97 Information about the last wrapped region.
231 The format is the same as returned by `sp-get-sexp'.
232 (defvar sp-last-wrapped-region nil (#$ . 21104))
233 (make-variable-buffer-local 'sp-last-wrapped-region)
234 #@108 Non-nil if point is inside a string.
235
236 Used to remember the state from before `self-insert-command' is
237 run.
238 (defvar sp-point-inside-string nil (#$ . 21309))
239 #@59 Non-nil if buffer was modified before `pre-command-hook'.
240 (defvar sp-buffer-modified-p nil (#$ . 21471))
241 #@58 Position of `point' before `this-command' gets executed.
242 (defvar sp-pre-command-point nil (#$ . 21582))
243 #@138 Maximum length of an opening or closing delimiter.
244
245 Only the pairs defined by `sp-pair' are considered.  Tag pairs
246 can be of any length.
247 (defconst sp-max-pair-length 10 (#$ . 21693))
248 #@273 Maximum length of a pair prefix.
249
250 Because prefixes for pairs can be specified using regular
251 expressions, they can potentially be of arbitrary length.  This
252 settings solves the problem where the parser would decide to
253 backtrack the entire buffer which would lock up Emacs.
254 (defconst sp-max-prefix-length 100 (#$ . 21883))
255 #@106 List of pair definitions.
256
257 Maximum length of opening or closing pair is
258 `sp-max-pair-length' characters.
259 (defvar sp-pairs '((t (:open "\\\\(" :close "\\\\)" :actions (insert wrap autoskip navigate)) (:open "\\{" :close "\\}" :actions (insert wrap autoskip navigate)) (:open "\\(" :close "\\)" :actions (insert wrap autoskip navigate)) (:open "\\\"" :close "\\\"" :actions (insert wrap autoskip navigate)) (:open "\"" :close "\"" :actions (insert wrap autoskip navigate escape) :unless (sp-in-string-quotes-p) :post-handlers (sp-escape-wrapped-region sp-escape-quotes-after-insert)) (:open "'" :close "'" :actions (insert wrap autoskip navigate escape) :unless (sp-in-string-quotes-p sp-point-after-word-p) :post-handlers (sp-escape-wrapped-region sp-escape-quotes-after-insert)) (:open "(" :close ")" :actions (insert wrap autoskip navigate)) (:open "[" :close "]" :actions (insert wrap autoskip navigate)) (:open "{" :close "}" :actions (insert wrap autoskip navigate)) (:open "`" :close "`" :actions (insert wrap autoskip navigate)))) (#$ . 22211))
260 #@68 List of tag definitions.  See `sp-local-tag' for more information.
261 (defvar sp-tags nil (#$ . 23268))
262 #@64 If non-nil, only consider tags while searching for next thing.
263 (defvar sp-prefix-tag-object nil (#$ . 23375))
264 #@139 If non-nil, only consider pairs while searching for next thing.
265
266 Pairs are defined as expressions delimited by pairs from
267 `sp-pair-list'.
268 (defvar sp-prefix-pair-object nil (#$ . 23492))
269 #@140 If non-nil, only consider symbols while searching for next thing.
270
271 Symbol is defined as a chunk of text recognized by
272 `sp-forward-symbol'.
273 (defvar sp-prefix-symbol-object nil (#$ . 23685))
274 (byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\210\310\302\311\312\313DD\314\315\316\317\320&\210\310\321\311\312\322DD\323\315\324\317\320&\210\310\325\311\312\326DD\327\315\330\317\320&\210\310\331\311\312\332DD\333\315\334\317\320&\207" [defvaralias sp--lisp-modes sp-lisp-modes nil (saved-value saved-variable-comment) put make-obsolete-variable "2015-11-08" custom-declare-variable funcall function #[0 "\300\207" [(cider-repl-mode clojure-mode clojurec-mode clojurescript-mode clojurex-mode common-lisp-mode emacs-lisp-mode eshell-mode geiser-repl-mode gerbil-mode inf-clojure-mode inferior-emacs-lisp-mode inferior-lisp-mode inferior-scheme-mode lisp-interaction-mode lisp-mode monroe-mode racket-mode racket-repl-mode scheme-interaction-mode scheme-mode slime-repl-mode stumpwm-mode)] 1] "List of Lisp-related modes." :type (repeat symbol) :group smartparens sp-clojure-modes #[0 "\300\207" [(cider-repl-mode clojure-mode clojurec-mode clojurescript-mode clojurex-mode inf-clojure-mode)] 1] "List of Clojure-related modes." (repeat symbol) sp-no-reindent-after-kill-modes #[0 "\300\207" [(python-mode coffee-mode asm-mode makefile-gmake-mode haml-mode)] 1] "List of modes that should not reindent after kill." (repeat symbol) sp-no-reindent-after-kill-indent-line-functions #[0 "\300\207" [(insert-tab)] 1] "List of `indent-line-function's that should not reindent after kill." (repeat symbol)] 8)
275 #@21 List of HTML modes.
276 (defvar sp--html-modes '(sgml-mode html-mode rhtml-mode nxhtml-mode nxml-mode web-mode jinja2-mode html-erb-mode js-jsx-mode js2-jsx-mode rjsx-mode) (#$ . 25377))
277 #@305 List of predefined messages to be displayed by `sp-message'.
278
279 Each element is a list consisting of a keyword and one or more
280 strings, which are chosen based on the `sp-message-width'
281 variable.  If the latter is t, the first string is chosen as
282 default, which should be the most verbose option available.
283 (defvar sp-message-alist '((:unmatched-expression "Search failed: there is an unmatched expression somewhere or we are at the beginning/end of file" "Unmatched expression") (:unbalanced-region "Can not kill the region: the buffer would end up in an unbalanced state after deleting the active region" "Killing the region would make the buffer unbalanced" "Unbalanced region") (:delimiter-in-string "Ignored: opening or closing pair is inside a string or comment and matching pair is outside (or vice versa)") (:no-matching-tag "Search failed: no matching tag found" "No matching tag") (:invalid-context-prev "Invalid context: previous h-sexp ends after the next one" "Invalid context") (:invalid-context-cur "Invalid context: current h-sexp starts after the next one" "Invalid context") (:no-structure-found "Previous sexp starts after current h-sexp or no structure was found" "No valid structure found") (:invalid-structure "Ignored: this operation would result in invalid structure" "Ignored because of invalid structure") (:cant-slurp "Ignored: we can not slurp without breaking strictly balanced expression" "Can not slurp without breaking balance") (:cant-slurp-context "Ignored: we can not slurp into different context (comment -> code)" "Can not slurp into different context") (:cant-insert-closing-delimiter "We can not insert unbalanced closing delimiter in strict mode" "Can not insert unbalanced delimiter") (:blank-sexp "Point is in blank sexp, nothing to barf" "Point is in blank sexp") (:point-not-deep-enough "Point has to be at least two levels deep to swap the enclosing delimiters" "Point has to be at least two levels deep" "Point not deep enough") (:different-type "The expressions to be joined are of different type" "Expressions are of different type")) (#$ . 25567))
284 (custom-declare-group 'smartparens nil "Smartparens minor mode." :group 'editing :prefix "sp-")
285 #@101 Non-nil if Smartparens mode is enabled.
286 Use the command `smartparens-mode' to change this variable.
287 (defvar smartparens-mode nil (#$ . 27764))
288 (make-variable-buffer-local 'smartparens-mode)
289 #@204 Toggle smartparens mode.
290
291 You can enable pre-set bindings by customizing
292 `sp-base-key-bindings' variable.  The current content of
293 `smartparens-mode-map' is:
294
295  \{smartparens-mode-map}
296
297 (fn &optional ARG)
298 (defalias 'smartparens-mode #[256 "\301 \302=\203 ?\202\303!\304V\211\203(\305 \210\306\307\310\311\312$\210\313\314!\210\2022\315\307\310\312#\210\313\316!\210\313\317\203<\320\202=\321\"\210\322\323!\203a\301 \203Q\211\301 \232\203a\324\325\326\203\\\327\202]\330#\266\210\331 \210\207" [smartparens-mode current-message toggle prefix-numeric-value 0 sp--init add-hook self-insert-uses-region-functions sp-wrap--can-wrap-p nil local run-hooks smartparens-enabled-hook remove-hook smartparens-disabled-hook smartparens-mode-hook smartparens-mode-on-hook smartparens-mode-off-hook called-interactively-p any " in current buffer" message "Smartparens mode %sabled%s" "en" "dis" force-mode-line-update] 8 (#$ . 27961) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
299 (defvar smartparens-mode-hook nil)
300 (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\211%\207" [smartparens-mode-map smartparens-mode-hook variable-documentation put "Hook run after entering or leaving `smartparens-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode smartparens-mode (" SP" (:eval (if smartparens-strict-mode "/s" ""))) nil] 6)
301 #@44 Keymap used for `smartparens-strict-mode'.
302 (defvar smartparens-strict-mode-map (byte-code "\300 \301\302\303#\210\301\304\303#\210\301\305\306#\210\301\307\306#\210\301\310\306#\210\301\311\312#\210\301\313\314#\210\301\315\316#\210\301\317\320#\210\301\321\322#\210\301\323\324#\210\211\207" [make-sparse-keymap define-key [remap delete-char] sp-delete-char [remap delete-forward-char] [remap backward-delete-char-untabify] sp-backward-delete-char [remap backward-delete-char] [remap delete-backward-char] [remap kill-word] sp-kill-word [remap kill-line] sp-kill-hybrid-sexp [remap backward-kill-word] sp-backward-kill-word [remap kill-region] sp-kill-region [remap delete-region] sp-delete-region [remap kill-whole-line] sp-kill-whole-line] 5) (#$ . 29430))
303 #@115 Non-nil if Smartparens-Strict mode is enabled.
304 Use the command `smartparens-strict-mode' to change this variable.
305 (defvar smartparens-strict-mode nil (#$ . 30208))
306 (make-variable-buffer-local 'smartparens-strict-mode)
307 #@602 Toggle the strict smartparens mode.
308
309 When strict mode is active, `delete-char', `kill-word' and their
310 backward variants will skip over the pair delimiters in order to
311 keep the structure always valid (the same way as `paredit-mode'
312 does).  This is accomplished by remapping them to
313 `sp-delete-char' and `sp-kill-word'.  There is also function
314 `sp-kill-symbol' that deletes symbols instead of words, otherwise
315 working exactly the same (it is not bound to any key by default).
316
317 When strict mode is active, this is indicated with "/s"
318 after the smartparens indicator in the mode list.
319
320 (fn &optional ARG)
321 (defalias 'smartparens-strict-mode #[256 "\305 \306=\203 ?\202\307!\310V\211\203D    \204\301\311!\210\312\313\n\"\204,\300 B\nB\314\315\316\317#\210\314\320\316\317#\210\321\322\323\324\325$\210\326\202s\327\330\n\"\314\315\316\331#\210\314\320\316\331#\210\332\322\323\325#\210\333\334\304!\335\"@\333\334\304!\336\"@\337\206o!\266\340\341\203}\342\202~\343\"\210\344\345!\203\242\305 \203\222\211\305 \232\203\242\346\347\350\203\235\351\202\236\352#\266\210\353 \210\207" [smartparens-strict-mode smartparens-mode minor-mode-overriding-map-alist smartparens-strict-mode-map sp-autoskip-closing-pair current-message toggle prefix-numeric-value 0 1 -find-indices #[257 "\211@\300=\207" [smartparens-strict-mode] 3 "\n\n(fn IT)"] put sp-backward-delete-char delete-selection sp--delete-selection-supersede-p sp-delete-char add-hook self-insert-uses-region-functions sp--self-insert-uses-region-strict-p nil local always -remove #[257 "\211@\300=\207" [smartparens-strict-mode] 3 "\n\n(fn IT)"] supersede remove-hook plist-get symbol-plist standard-value saved-value eval run-hooks smartparens-strict-mode-hook smartparens-strict-mode-on-hook smartparens-strict-mode-off-hook called-interactively-p any " in current buffer" message "Smartparens-Strict mode %sabled%s" "en" "dis" force-mode-line-update] 8 (#$ . 30433) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
322 (defvar smartparens-strict-mode-hook nil)
323 (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [smartparens-strict-mode-map smartparens-strict-mode-hook variable-documentation put "Hook run after entering or leaving `smartparens-strict-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode smartparens-strict-mode nil boundp] 6)
324 (defvar smartparens-strict-mode-major-mode nil)
325 (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317& \207" [make-variable-buffer-local smartparens-strict-mode-major-mode custom-declare-variable smartparens-global-strict-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Smartparens-Global-Strict mode is enabled.\nSee the `smartparens-global-strict-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `smartparens-global-strict-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group smartparens :type boolean] 12)
326 #@413 Toggle Smartparens-Strict mode in all buffers.
327 With prefix ARG, enable Smartparens-Global-Strict mode if ARG is positive;
328 otherwise, disable it.  If called from Lisp, enable the mode if
329 ARG is omitted or nil.
330
331 Smartparens-Strict mode is enabled in all buffers where
332 `turn-on-smartparens-strict-mode' would do it.
333 See `smartparens-strict-mode' for more information on Smartparens-Strict mode.
334
335 (fn &optional ARG)
336 (defalias 'smartparens-global-strict-mode #[256 "\302 \303\300\304=\203\305\300!?\202\306!\307V\"\210\203.\310\311\312\"\210\310\313\314\"\210\310\315\316\"\210\202=\317\311\312\"\210\317\313\314\"\210\317\315\316\"\210\320 \211\203c\211@r\211q\210\203S\321 \210\202[    \203[\301\322!\210)A\266\202\202?\210\323\324\305\300!\203p\325\202q\326\"\210\327\330!\203\233\331\300!\210\302 \203\211\211\302 \232\203\233\332\333\334\305\300!\203\226\335\202\227\336#\266\210\337 \210\305\300!\207" [smartparens-global-strict-mode smartparens-strict-mode current-message set-default toggle default-value prefix-numeric-value 0 add-hook after-change-major-mode-hook smartparens-global-strict-mode-enable-in-buffers find-file-hook smartparens-global-strict-mode-check-buffers change-major-mode-hook smartparens-global-strict-mode-cmhh remove-hook buffer-list turn-on-smartparens-strict-mode -1 run-hooks smartparens-global-strict-mode-hook smartparens-global-strict-mode-on-hook smartparens-global-strict-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Smartparens-Global-Strict mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 33633) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
337 (defvar smartparens-global-strict-mode-hook nil)
338 (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [smartparens-global-strict-mode-map smartparens-global-strict-mode-hook variable-documentation put "Hook run after entering or leaving `smartparens-global-strict-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode smartparens-global-strict-mode nil boundp] 6)
339 (defvar smartparens-strict-mode-set-explicitly nil nil)
340 (make-variable-buffer-local 'smartparens-strict-mode-set-explicitly)
341 (defalias 'smartparens-strict-mode-set-explicitly #[0 "\301\211\207" [smartparens-strict-mode-set-explicitly t] 2])
342 (byte-code "\300\301\302\303#\210\304\305\301\"\207" [put smartparens-strict-mode-set-explicitly definition-name smartparens-global-strict-mode add-hook smartparens-strict-mode-hook] 4)
343 (defvar smartparens-global-strict-mode-buffers nil)
344 (defalias 'smartparens-global-strict-mode-enable-in-buffers #[0 "\211\2056\211@\305!\203/r\211q\210    \204,\n =\204,\f\203)\304\306!\210\307 \210\202,\307 \210 )A\266\202\202\207" [smartparens-global-strict-mode-buffers smartparens-strict-mode-set-explicitly smartparens-strict-mode-major-mode major-mode smartparens-strict-mode buffer-live-p -1 turn-on-smartparens-strict-mode] 4])
345 (put 'smartparens-global-strict-mode-enable-in-buffers 'definition-name 'smartparens-global-strict-mode)
346 (defalias 'smartparens-global-strict-mode-check-buffers #[0 "\301 \210\302\303\304\305\"\207" [smartparens-global-strict-mode-buffers smartparens-global-strict-mode-enable-in-buffers nil remove-hook post-command-hook smartparens-global-strict-mode-check-buffers] 3])
347 (put 'smartparens-global-strict-mode-check-buffers 'definition-name 'smartparens-global-strict-mode)
348 (defalias 'smartparens-global-strict-mode-cmhh #[0 "\300\301p\"\210\302\303\304\"\207" [add-to-list smartparens-global-strict-mode-buffers add-hook post-command-hook smartparens-global-strict-mode-check-buffers] 3])
349 (byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\207" [put smartparens-global-strict-mode-cmhh definition-name smartparens-global-strict-mode custom-declare-variable sp-ignore-modes-list funcall function #[0 "\300\207" [(minibuffer-inactive-mode)] 1] "Modes where smartparens mode is inactive if allowed globally." :type (repeat symbol) :group smartparens] 8)
350 #@36 Turn on `smartparens-strict-mode'.
351 (defalias 'turn-on-smartparens-strict-mode #[0 "    \235\206\302\303!?\205\304N\305=?\205\306\307!\207" [major-mode sp-ignore-modes-list derived-mode-p comint-mode mode-class special smartparens-strict-mode 1] 2 (#$ . 37749) nil])
352 #@37 Turn off `smartparens-strict-mode'.
353 (defalias 'turn-off-smartparens-strict-mode #[0 "\300\301!\207" [smartparens-strict-mode -1] 2 (#$ . 38026) nil])
354 #@151 Initialize the buffer local smartparens state.
355
356  This includes pair bindings and other buffer local variables
357 that depend on the active `major-mode'.
358 (defalias 'sp--init #[0 "\303\300\304\211\211\211\211\211&\305 \210\306\307\211W\205=\211    \204&\211z\310U\203&\311!\n\2045\211z\312U\2035\311!\210\211T\262\202\207" [sp-state sp-escape-char sp-comment-char record nil sp--update-local-pairs 256 0 92 string 60] 8 (#$ . 38183)])
359 #@74 Initialize the buffer if it is not already initialized.
360
361 See `sp--init'.
362 (defalias 'sp--maybe-init #[0 "?\205\301 \207" [sp-pair-list sp--init] 1 (#$ . 38631)])
363 #@47 Remove OPEN from `sp-local-pairs'.
364
365 (fn OPEN)
366 (defalias 'sp--remove-local-pair #[257 "\301\302\203#@\303\304\"\232\204\211B\262\210\211T\262A\262\202\266\211\237\262\211\207" [sp-local-pairs nil 0 plist-get :open] 8 (#$ . 38801)])
367 #@71 Update `sp-pair-list' according to current value of `sp-local-pairs'.
368 (defalias 'sp--update-sp-pair-list #[0 "\302\303\304\305\"\"\211\207" [sp-local-pairs sp-pair-list -sort #[514 "@G@GV\207" [] 4 "\n\n(fn X Y)"] mapcar #[257 "\300\301\"\300\302\"B\207" [plist-get :open :close] 5 "\n\n(fn IT)"]] 5 (#$ . 39056)])
369 #@174 Update local pairs after change or at mode initialization.
370
371 This commands load all the parent major mode definitions and
372 merges them into current buffer's `sp-local-pairs'.
373 (defalias 'sp--update-local-pairs #[0 "\301\302C\"\211\303\205@\304!\266\211T\262A\262\202\266\202\207" [major-mode -fix #[257 "\211@\300N\211\203\211B\202\207" [derived-mode-parent] 4 "\n\n(fn X)"] 0 sp-update-local-pairs] 6 (#$ . 39384)])
374 #@404 Update `sp-local-pairs' with CONFIGURATION.
375
376 The pairs are only updated in current buffer not in all buffers
377 with the same major mode!  If you want to update all buffers of
378 the specific major-modes use `sp-local-pair'.
379
380 CONFIGURATION can be a symbol to be looked up in `sp-pairs' or a
381 property list corresponding to the arguments of `sp-local-pair'
382 or a list of such property lists.
383
384 (fn CONFIGURATION)
385 (defalias 'sp-update-local-pairs #[257 "\2119\203\305\236A!\202\306\307\"\203\305C!\202\305!\310    \311\203A@\312\313\"\2035\211B\262\210\211T\262A\262\202#\266\211\237\262\314 \210\315\n! >\204Z\316\317\302\nD\"\210\n\211\320    I\266\315\n! >\204p\316\317\302\nD\"\210\n\211\321\fI\207" [sp-pairs sp-local-pairs sp-state cl-struct-sp-state-tags sp-pair-list sp--merge-pair-configurations plist-member :open nil 0 plist-get :actions sp--update-sp-pair-list type-of signal wrong-type-argument 6 5] 8 (#$ . 39823)])
386 #@86 Execute BODY in every existing buffer using `major-mode' MODE.
387
388 (fn MODE &rest BODY)
389 (defalias 'sp-with-buffers-using-mode '(macro . #[385 "\300\301\302\303\304\305DBBEE\207" [--each (buffer-list) with-current-buffer it when derived-mode-p] 9 (#$ . 40773)]))
390 (byte-code "\300\301\302\303#\300\207" [function-put sp-with-buffers-using-mode lisp-indent-function 1] 4)
391 #@203 Run `sp--update-local-pairs' in all buffers.
392
393 This is necessary to update all the buffer-local definitions.  If
394 MODES is non-nil, only update buffers with `major-mode' equal to
395 MODES.
396
397 (fn &rest MODES)
398 (defalias 'sp--update-local-pairs-everywhere #[128 "\301!\262\302 \303\205]@r\211q\210\203P\203M\304\305\306\303\203D\203D@\2033\305\262\2028\307!\262\210\211T\262A\262\202\266\211\262!\203P\310 \210)\210\211T\262A\262\202\207" [smartparens-mode -flatten buffer-list 0 ---truthy\? nil t derived-mode-p sp--update-local-pairs] 12 (#$ . 41150)])
399 (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\207" [custom-declare-variable smartparens-enabled-hook funcall function #[0 "\300\207" [nil] 1] "Called after `smartparens-mode' is turned on." :type hook :group smartparens smartparens-disabled-hook #[0 "\300\207" [nil] 1] "Called after `smartparens-mode' is turned off."] 8)
400 (defvar smartparens-mode-major-mode nil)
401 (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317& \207" [make-variable-buffer-local smartparens-mode-major-mode custom-declare-variable smartparens-global-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Smartparens-Global mode is enabled.\nSee the `smartparens-global-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `smartparens-global-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group smartparens :type boolean] 12)
402 #@371 Toggle Smartparens mode in all buffers.
403 With prefix ARG, enable Smartparens-Global mode if ARG is positive;
404 otherwise, disable it.  If called from Lisp, enable the mode if
405 ARG is omitted or nil.
406
407 Smartparens mode is enabled in all buffers where
408 `turn-on-smartparens-mode' would do it.
409 See `smartparens-mode' for more information on Smartparens mode.
410
411 (fn &optional ARG)
412 (defalias 'smartparens-global-mode #[256 "\302 \303\300\304=\203\305\300!?\202\306!\307V\"\210\203.\310\311\312\"\210\310\313\314\"\210\310\315\316\"\210\202=\317\311\312\"\210\317\313\314\"\210\317\315\316\"\210\320 \211\203c\211@r\211q\210\203S\321 \210\202[    \203[\301\322!\210)A\266\202\202?\210\323\324\305\300!\203p\325\202q\326\"\210\327\330!\203\233\331\300!\210\302 \203\211\211\302 \232\203\233\332\333\334\305\300!\203\226\335\202\227\336#\266\210\337 \210\305\300!\207" [smartparens-global-mode smartparens-mode current-message set-default toggle default-value prefix-numeric-value 0 add-hook after-change-major-mode-hook smartparens-global-mode-enable-in-buffers find-file-hook smartparens-global-mode-check-buffers change-major-mode-hook smartparens-global-mode-cmhh remove-hook buffer-list turn-on-smartparens-mode -1 run-hooks smartparens-global-mode-hook smartparens-global-mode-on-hook smartparens-global-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Smartparens-Global mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 42795) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
413 (defvar smartparens-global-mode-hook nil)
414 (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [smartparens-global-mode-map smartparens-global-mode-hook variable-documentation put "Hook run after entering or leaving `smartparens-global-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode smartparens-global-mode nil boundp] 6)
415 (defvar smartparens-mode-set-explicitly nil nil)
416 (make-variable-buffer-local 'smartparens-mode-set-explicitly)
417 (defalias 'smartparens-mode-set-explicitly #[0 "\301\211\207" [smartparens-mode-set-explicitly t] 2])
418 (byte-code "\300\301\302\303#\210\304\305\301\"\207" [put smartparens-mode-set-explicitly definition-name smartparens-global-mode add-hook smartparens-mode-hook] 4)
419 (defvar smartparens-global-mode-buffers nil)
420 (defalias 'smartparens-global-mode-enable-in-buffers #[0 "\211\2056\211@\305!\203/r\211q\210    \204,\n =\204,\f\203)\304\306!\210\307 \210\202,\307 \210 )A\266\202\202\207" [smartparens-global-mode-buffers smartparens-mode-set-explicitly smartparens-mode-major-mode major-mode smartparens-mode buffer-live-p -1 turn-on-smartparens-mode] 4])
421 (put 'smartparens-global-mode-enable-in-buffers 'definition-name 'smartparens-global-mode)
422 (defalias 'smartparens-global-mode-check-buffers #[0 "\301 \210\302\303\304\305\"\207" [smartparens-global-mode-buffers smartparens-global-mode-enable-in-buffers nil remove-hook post-command-hook smartparens-global-mode-check-buffers] 3])
423 (put 'smartparens-global-mode-check-buffers 'definition-name 'smartparens-global-mode)
424 (defalias 'smartparens-global-mode-cmhh #[0 "\300\301p\"\210\302\303\304\"\207" [add-to-list smartparens-global-mode-buffers add-hook post-command-hook smartparens-global-mode-check-buffers] 3])
425 (put 'smartparens-global-mode-cmhh 'definition-name 'smartparens-global-mode)
426 #@408 Turn on `smartparens-mode'.
427
428 This function is used to turn on `smartparens-global-mode'.
429
430 By default `smartparens-global-mode' ignores buffers with
431 `mode-class' set to special, but only if they are also not comint
432 buffers.
433
434 Additionally, buffers on `sp-ignore-modes-list' are ignored.
435
436 You can still turn on smartparens in these mode manually (or
437 in mode's startup-hook etc.) by calling `smartparens-mode'.
438 (defalias 'turn-on-smartparens-mode #[0 "    \235\206\302\303!?\205\304N\305=?\205\306\307!\207" [major-mode sp-ignore-modes-list derived-mode-p comint-mode mode-class special smartparens-mode t] 2 (#$ . 46272) nil])
439 #@30 Turn off `smartparens-mode'.
440 (defalias 'turn-off-smartparens-mode #[0 "\300\301!\207" [smartparens-mode -1] 2 (#$ . 46907) nil])
441 (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\210\315\312\316\317#\210\300\320\302\303\321DD\322\306\323\310\311&\210\324\320!\210\300\325\302\303\326DD\327\306\307\310\311&\210\324\325!\210\300\330\302\303\331DD\332\306\307\310\311&\210\300\333\302\303\334DD\335\306\307\310\311&\210\300\336\302\303\337DD\340\306\307\310\311&\210\300\341\302\303\342DD\343\306\307\310\311&\210\300\344\302\303\345DD\346\306\307\310\311&\210\300\347\302\303\350DD\351\306\352\310\311&\210\300\353\302\303\354DD\355\306\307\310\311&\210\300\356\302\303\357DD\360\306\307\310\311&\210\300\361\302\303\362DD\363\306\307\310\311&\210\300\364\302\303\365DD\366\306\367\310\311&\210\300\370\302\303\371DD\372\306\373\310\311&\210\300\374\302\303\375DD\376\306\307\310\311&\210\300\377\302\303\201@DD\201A\306\307\310\311&\210\300\201B\302\303\201CDD\201D\306\307\310\311&\210\300\201E\302\303\201FDD\201G\306\307\310\311&\210\300\201H\302\303\201IDD\201J\306\201K\310\311&\210\300\201L\302\303\201MDD\201N\306\201O\310\311&\210\300\201P\302\303\201QDD\201R\306\307\310\311&\210\300\201S\302\303\201TDD\201U\306\307\310\311&\210\300\201V\302\303\201WDD\201X\306\201Y\310\311&\210\300\201Z\302\303\201[DD\201\\\306\201]\310\311&\210\300\201^\302\303\201_DD\201`\306\307\310\311&\210\300\201a\302\303\201bDD\201c\306\307\310\311&\210\300\201d\302\303\201eDD\201f\306\307\310\311&\210\300\201g\302\303\201hDD\201i\306\201j\310\311&\210\300\201k\302\303\201lDD\201m\306\201n\310\311&\210\300\201o\302\303\201pDD\201q\306\307\310\311&\210\300\201r\302\303\201sDD\201t\306\201u\310\311&\210\300\201v\302\303\201wDD\201x\306\201y\310\311&\210\300\201z\302\303\201{DD\201|\306\201}\310\311&\210\300\201~\302\303\201DD\201\200\306\307\310\311&\210\300\201\201\302\303\201\202DD\201\203\306\307\310\311&\210\300\201\204\302\303\201\205DD\201\206\306\307\310\311&\210\300\201\207\302\303\201\210DD\201\211\306\307\310\311&\210\300\201\212\302\303\201\213DD\201\214\306\201\215\310\311&\210\300\201\216\302\303\201\217DD\201\220\306\307\310\311&\207" [custom-declare-variable sp-autoinsert-pair funcall function #[0 "\300\207" [t] 1] "If non-nil, autoinsert pairs.  See `sp-insert-pair'." :type boolean :group smartparens sp-autoinsert-quote-if-followed-by-closing-pair #[0 "\300\207" [nil] 1] "If non-nil autoinsert quotes when the point is followed by closing delimiter.\n\nThis option only changes behaviour of the insertion process if\npoint is inside a string.  In other words, if string is not\nclosed and next character is a closing pair.\n\nFor example, in a situation like this:\n\n  [\"some text|]\n\nafter pressing \", one would probably want to insert the closing\nquote, not a nested pair (\\\"\\\"), to close the string literal\nin the array.  To enable such behaviour, set this variable to\nnil.\n\nNote: the values of this varible seem to be backward, i.e. it is\n\"enabled\" when the value is nil.  This was an unfortunate\nchoice of wording.  It is kept this way to preserve backward\ncompatibility.  The intended meaning is \"insert the pair if\nfollowed by closing pair?\", t = yes." make-obsolete-variable "the option was removed and no longer has any effect." "1.10" sp-autoskip-closing-pair #[0 "\300\207" [always-end] 1] "Determine the behaviour when skipping closing delimiters.\n\nIf t, skip the following closing pair if the expression is\nactive (that is right after insertion).  This is controlled by\n`sp-cancel-autoskip-on-backward-movement'.\n\nIf set to \"always-end\", skip the closing pair even if the\nexpression is not active and point is at the end of the\nexpression.  This only works for expressions with\nsingle-character delimiters.\n\nIf set to \"always\", `sp-up-sexp' is called whenever the closing\ndelimiter is typed inside a sexp of the same type.  This is the\nparedit-like behaviour.  This setting only works for\nsingle-character delimiters and does not work for string-like\ndelimiters.\n\nSee `sp-autoskip-opening-pair' for similar setting for\nstring-like delimiters.\n\nSee also `sp-skip-closing-pair'." (radio (const :tag "Never skip closing delimiter" nil) (const :tag "Skip closing delimiter in active expressions" t) (const :tag "Always skip closing delimiter if at the end of sexp" always-end) (const :tag "Always skip closing delimiter" always)) make-variable-buffer-local sp-autoskip-opening-pair #[0 "\300\207" [nil] 1] "Determine the behaviour when skipping opening delimiters.\n\nIf non-nil, skip into the following string-like expression\ninstead of inserting a new pair." sp-cancel-autoskip-on-backward-movement #[0 "\300\207" [t] 1] "If non-nil, deactivate the active expression on backward movement.\n\nNote: the name of this variable is a historic coincidence and\nwill change in some future release to reflect its real purpose.\n\nSee also `sp-skip-closing-pair'." sp-autodelete-pair #[0 "\300\207" [t] 1] "If non-nil, auto delete pairs.  See `sp-delete-pair'." sp-autodelete-closing-pair #[0 "\300\207" [t] 1] "If non-nil, auto delete the whole closing-pair.  See `sp-delete-pair'." sp-autodelete-opening-pair #[0 "\300\207" [t] 1] "If non-nil, auto delete the whole opening-pair.  See `sp-delete-pair'." sp-undo-pairs-separately #[0 "\300\207" [nil] 1] "If non-nil, put an `undo-boundary' before each inserted pair.\n\nCalling undo after smartparens complete a pair will remove only\nthe pair before undoing any previous insertion.\n\nWARNING: This option is implemented by hacking the\n`buffer-undo-list'.  Turning this option on might have\nirreversible consequences on the buffer's undo information and in\nsome cases might remove important information.  Usage of package\n`undo-tree' is recommended if you ever need to revert to a state\nunreachable by undo." sp-successive-kill-preserve-whitespace #[0 "\300\207" [1] 1] "Control the behaviour of `sp-kill-sexp' on successive kills.\n\nIn the description, we consider more than one space\n\"superfluous\", however, newlines are preserved." (radio (const :tag "Always preserve the whitespace" 0) (const :tag "Remove superfluous whitespace after last kill" 1) (const :tag "Remove superfluous whitespace after all kills" 2)) sp-autowrap-region #[0 "\300\207" [t] 1] "If non-nil, wrap the active region with pair." sp-wrap-show-possible-pairs #[0 "\300\207" [t] 1] "If non-nil, show possible pairs which can complete the wrapping." sp-autodelete-wrap #[0 "\300\207" [t] 1] "If non-nil, autodelete opening and closing pair of most recent wrapping.\n\nDeletion command must be the very first command after the\ninsertion, otherwise normal behaviour is applied." sp-wrap-repeat-last #[0 "\300\207" [1] 1] "Context in which smartparens repeats the last wrap.\n\nIf the last operation was a wrap and we insert another pair at\nthe beginning or end of the last wrapped region, repeat the\nwrap on this region with current pair." (radio (const :tag "Do not repeat wrapping" 0) (const :tag "Only repeat if current tag is the same as the last one" 1) (const :tag "Always repeat if the point is after the opening/closing delimiter of last wrapped region" 2)) sp-wrap-entire-symbol #[0 "\300\207" [nil] 1] "If non-nil, do NOT wrap the entire symbol, only the part after point.\n\nIf set to \"Enable globally\", smart symbol wrapping is active\neverywhere.  This is the default option.\n\nIf set to \"Disable globally\", smart symbol wrapping is disabled\neverywhere.\n\nOtherwise, a list of major modes where smart symbol wrapping is\n*disabled* can be supplied.\n\nExamples:\n\n foo-ba|r-baz -> (|foo-bar-baz) ;; if enabled\n\n foo-ba|r-baz -> foo-ba(|r-baz) ;; if disabled" (choice (const :tag "Enable globally" nil) (const :tag "Disable globally" globally) (repeat :tag "Disable in these major modes" symbol)) sp-wrap-from-point #[0 "\300\207" [nil] 1] "If non-nil, do not wrap from the beginning of next expression but from point.\n\nHowever, if the point is inside a symbol/word, the entire\nsymbol/word is wrapped.  To customize this behaviour, see\nvariable `sp-wrap-entire-symbol'." sp-wrap-respect-direction #[0 "\300\207" [nil] 1] "When non-nil respect the wrap direction.\n\nWhen non-nil, wrapping with opening pair always jumps to the\nbeginning of the region and wrapping with closing pair always\njumps to the end of the region.\n\n  |fooM -> [ -> |[foo]M\n  Mfoo| -> [ -> |[foo]M\n  |fooM -> ] -> M[foo]|\n  Mfoo| -> ] -> M[foo]|\n\nWhen nil, closing pair places the point at the end of the region\nand the opening pair leaves the point at its original\nposition (before or after the region).\n\n  |fooM -> [ -> [|fooM]\n  Mfoo| -> [ -> M[foo]|\n  |fooM -> ] -> M[foo]|\n  Mfoo| -> ] -> M[foo]|" sp-escape-wrapped-region #[0 "\300\207" [t] 1] "If non-nil, escape special chars inside the just wrapped region." sp-escape-quotes-after-insert #[0 "\300\207" [t] 1] "If non-nil, escape string quotes if typed inside string." sp-navigate-consider-sgml-tags #[0 "\300\207" [(html-mode)] 1] "List of modes where sgml tags are considered to be sexps." (repeat symbol) sp-navigate-use-textmode-stringlike-parser #[0 "\300\207" [((derived . text-mode))] 1] "List of modes where textmode stringlike parser is used.\n\nSee `sp-get-textmode-stringlike-expression'.\n\nEach element of the list can either be a symbol which is then\nchecked against `major-mode', or a cons (derived . PARENT-MODE),\nwhere PARENT-MODE is checked using `derived-mode-p'." (repeat (choice (symbol :tag "Major mode") (cons :tag "Derived mode" (const derived) (symbol :tag "Parent major mode name")))) sp-navigate-consider-symbols #[0 "\300\207" [t] 1] "If non-nil, consider symbols outside balanced expressions as such.\n\nSymbols are recognized by function `sp-forward-symbol'.  This\nsetting affect all the navigation and manipulation functions\nwhere it make sense.\n\nAlso, special handling of strings is enabled, where the whole\nstring delimited with \"\" is considered as one token.\n\nWARNING: This is a legacy setting and changing its value to NIL\nmay break many things.  It is kept only for backward\ncompatibility and will be removed in the next major release." sp-navigate-comments-as-sexps #[0 "\300\207" [t] 1] "If non-nil, consider comments as sexps in `sp-get-enclosing-sexp'.\n\nIf this option is enabled, unbalanced expressions in comments are\nnever automatically closed (see `sp-navigate-close-if-unbalanced')." sp-navigate-skip-match #[0 "\301BC\207" [sp-lisp-modes sp--elisp-skip-match] 2] "Major-mode dependent specifications of skip functions.\n\nAlist where the key is a list of major-modes and the value is a\nfunction used to skip over matches in `sp-get-paired-expression'.\nThis function takes three arguments: the currently matched\ndelimiter, beginning of match and end of match.  If this function\nreturns true, the current match will be skipped.\n\nYou can use this to skip over expressions that serve multiple\nfunctions, such as if/end pair or unary if in Ruby or * in\nmarkdown when it signifies list item instead of emphasis.  If the\nexception is only relevant to one pair, you should rather\nuse :skip-match option in `sp-local-pair'." (alist :key-type (repeat symbol) :value-type symbol) sp-navigate-reindent-after-up #[0 "\301BC\207" [sp-lisp-modes interactive] 2] "Modes where sexps should be reindented after `sp-up-sexp'.\n\nThe whitespace between the closing delimiter and last \"thing\"\ninside the expression is removed.  It works analogically for the\n`sp-backward-up-sexp'.\n\nNote that this also happens when `sp-skip-closing-pair' is\ninvoked (usually in strict mode when the closing delimiter is\ntyped) as it calls `sp-up-sexp' internally.  This behaviour can\nbe customized by various settings of `sp-autoskip-closing-pair'\nand `sp-autoskip-opening-pair'.\n\nIf the mode is in the list \"interactive\", only reindent the sexp\nif the command was called interactively.  This is recommended for\ngeneral use.\n\nIf the mode is in the list \"always\", reindend the sexp even if the\ncommand was called programatically." (alist :options (interactive always) :value-type (repeat symbol)) sp-navigate-reindent-after-up-in-string #[0 "\300\207" [t] 1] "If non-nil, `sp-up-sexp' will reindent inside strings.\n\nIf `sp-navigate-reindent-after-up' is enabled and the point is\ninside a string, this setting determines if smartparens should\nreindent the current (string) sexp or not." sp-navigate-close-if-unbalanced #[0 "\300\207" [nil] 1] "If non-nil, insert the closing pair of the un-matched pair on `sp-up-sexp'.\n\nThe closing delimiter is inserted after the symbol at\npoint (using `sp-previous-sexp')." sp-navigate-interactive-always-progress-point #[0 "\300\207" [nil] 1] "Make point always move in the direction of navigation.\n\nIf non-nil and the function is called interactively,\n`sp-next-sexp' and `sp-previous-sexp' will always move the point\nto the end/beg of such an expression where the point would end up\nbeing further in the direction of travel.\n\nNote: this behaviour will become default in release 2.0 and will\ncease to be configurable." sp-sexp-prefix #[0 "\300\207" [nil] 1] "Alist of `major-mode' specific prefix specification.\n\nEach item is a list with three properties:\n- major mode\n- a constant symbol 'regexp or 'syntax\n- a regexp or a string containing syntax class codes.\n\nIf the second argument is 'regexp, the third argument is\ninterpreted as a regexp to search backward from the start of an\nexpression.\n\nIf the second argument is 'syntax, the third argument is\ninterpreted as string containing syntax codes that will be\nskipped.\n\nYou can also override this property locally for a specific pair\nby specifying its :prefix property." (repeat (list symbol (choice (const :tag "Regexp" regexp) (const :tag "Syntax class codes" syntax)) string)) sp-sexp-suffix #[0 "\300\207" [nil] 1] "Alist of `major-mode' specific suffix specification.\n\nEach item is a list with three properties:\n- major mode\n- a constant symbol 'regexp or 'syntax\n- a regexp or a string containing syntax class codes.\n\nIf the second argument is 'regexp, the third argument is\ninterpreted as a regexp to search forward from the end of an\nexpression.\n\nIf the second argument is 'syntax, the third argument is\ninterpreted as string containing syntax codes that will be\nskipped.\n\nYou can also override this property locally for a specific pair\nby specifying its :suffix property." (repeat (list symbol (choice (const :tag "Regexp" regexp) (const :tag "Syntax class codes" syntax)) string)) sp-split-sexp-always-split-as-string #[0 "\300\207" [t] 1] "Determine if sexp inside string is split.\n\nIf the point is inside a sexp inside a string, the default\nbehaviour is now to split the string, such that:\n\n  \"foo (|) bar\"\n\nbecomes\n\n   \"foo (\"|\") bar\"\n\ninstead of\n\n   \"foo ()|() bar\".\n\nNote: the old default behaviour was the reverse, it would split\nthe sexp, but this is hardly ever what you want.\n\nYou can add a post-handler on string pair and check for\n'split-string action to add concatenation operators of the\nlanguage you work in (in each `major-mode' you can have a separate\nhook).\n\nFor example, in PHP the string concatenation operator is a\ndot (.), so you would add:\n\n  (defun my-php-post-split-handler (_ action _)\n    (when (eq action 'split-sexp)\n      (just-one-space)\n      (insert \".  . \")\n      (backward-char 3)))\n\n  (sp-local-pair 'php-mode \"'\" nil\n   :post-handlers '(my-php-post-split-handler))\n\nThen\n\n  echo 'foo |baz';\n\nresults in\n\n  echo 'foo' . | . 'baz';" sp-hybrid-kill-excessive-whitespace #[0 "\300\207" [nil] 1] "Determine how `sp-kill-hybrid-sexp' kills excessive whitespace.\n\nIf non-nil, `sp-kill-hybrid-sexp' will delete all whitespace\nup until next hybrid sexp if the point is at the end of line or\non a blank line.\n\nWhen it is set to 'kill, whitespace will be appended to the sexp\nin kill ring." (choice (const :tag "Delete" t) (const :tag "Kill" kill) (const :tag "Off" nil)) sp-hybrid-kill-entire-symbol #[0 "\300\207" [nil] 1] "Governs how symbols under point are treated by `sp-kill-hybrid-sexp'.\n\nIf t, always kill the symbol under point.\n\nIf nil, never kill the entire symbol and only kill the part after point.\n\nIf a function, this should be a zero-arg predicate.  When it\nreturns non-nil value, we should kill from point." (radio (const :tag "Always kill entire symbol" t) (const :tag "Always kill from point" nil) (const :tag "Kill from point only inside strings" sp-point-in-string) (function :tag "Custom predicate")) sp-comment-string #[0 "\300\207" [nil] 1] "String that is inserted after calling `sp-comment'.\n\nIt is an alist of list of major modes to a string.\n\nThe value of `comment-start' is used if the major mode is not found." (alist :key-type (repeat symbol) :value-type string) sp-highlight-pair-overlay #[0 "\300\207" [t] 1] "If non-nil, autoinserted pairs are highlighted while point is inside the pair." sp-highlight-wrap-overlay #[0 "\300\207" [t] 1] "If non-nil, wrap overlays are highlighted during editing of the wrapping pair." sp-highlight-wrap-tag-overlay #[0 "\300\207" [t] 1] "If non-nil, wrap tag overlays are highlighted during editing of the wrapping tag pair." sp-echo-match-when-invisible #[0 "\300\207" [t] 1] "If non-nil, show-smartparens-mode prints the line of the\nmatching paren in the echo area if not visible on screen." sp-message-width #[0 "\300\207" [frame] 1] "Length of information and error messages to display.\n\nIf set to 'frame (the default), messages are chosen based of the\nframe width.  t means chose the default (verbose) message, nil\nmeans mute.  Integers specify the maximum width." (choice (const :tag "Fit to frame" frame) (const :tag "Verbose" t) (const :tag "Mute" nil) (integer :tag "Max width")) sp-use-subword #[0 "\300\207" [nil] 1] "Override of `subword-mode' killing behaviour.\n\nIf non-nill, `sp-kill-word' and `sp-backward-kill-word' only\nkill \"subwords\" when `subword-mode' is active."] 8)
442 #@75 Return t if `delete-selection-mode' or `cua-delete-selection' is enabled.
443 (defalias 'sp--delete-selection-p #[0 "\303\300!\203\n\206\303\301!\205    \205\n\207" [delete-selection-mode cua-delete-selection cua-mode boundp] 2 (#$ . 65130)])
444 #@146 Decide if the current command should delete the region or not.
445
446 This check is used as value of 'delete-selection property on the
447 command symbol.
448 (defalias 'sp--delete-selection-supersede-p #[0 "\302\232\204\303\304 \305 \"\203\306\207\307\310!\210\311\312\207" [current-prefix-arg this-command (4) sp-region-ok-p region-beginning region-end supersede sp-message :unbalanced-region ignore nil] 3 (#$ . 65381)])
449 #@214 Decide if the current `self-insert-command' should be able to
450 replace the region.
451
452 This check is added to the special hook
453 `self-insert-uses-region-functions' which is checked by
454 `delete-selection-uses-region-p'.
455 (defalias 'sp--self-insert-uses-region-strict-p #[0 "\302\232\206\f\303\304 \305 \"?\205\306\307\207" [current-prefix-arg this-command (4) sp-region-ok-p region-beginning region-end ignore t] 3 (#$ . 65804)])
456 (byte-code "\300\301\302\303\304$\210\305\301\304\"\210\300\306\307\303\304$\210\305\306\304\"\207" [ad-add-advice cua-replace-region (fix-sp-wrap nil t (advice lambda nil "Fix `sp-wrap' in `cua-selection-mode'." (if (sp-wrap--can-wrap-p) (cua--fallback) ad-do-it))) around nil ad-activate cua-delete-region (fix-sp-delete-region nil t (advice lambda nil "If `smartparens-strict-mode' is enabled, perform a region\ncheck before deleting." (if smartparens-strict-mode (progn (unless (or current-prefix-arg (sp-region-ok-p (region-beginning) (region-end))) (user-error (sp-message :unbalanced-region :return))) ad-do-it) ad-do-it)))] 5)
457 #@137 Only ever call this from sp-get!  This function does the
458 replacement of all the keywords with actual calls to sp-get.
459
460 (fn STRUCT LIST)
461 (defalias 'sp--get-substitute #[514 "\211<\203\240\211@\300=\203 \207\301\302\303\304\305\306!\307\"\310\311%@\211\312\267\202\233\313\314!\315A@DC\316\317\320BB\321\322\323\324D\325BBBB\324D\326BBBBE\262\202\234\313\314!\315A@DC\316\327\330BB\321\324D\331BB\332\333\324D\334BBBBBBE\262\202\234\335\202\234\336\202\234\321\324A@D\337BB\202\234\321\324A@D\340BB\202\234\262\"\207\341!\203\253\342\"\207\207" [sp-get mapcar make-byte-code 257 "\301\300\"\207" vconcat vector [sp--get-substitute] 4 "\n\n(fn X)" #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (sp-do-move-op 35 sp-do-move-cl 79 sp-do-del-op 123 sp-do-del-cl 127 sp-do-put-op 131 sp-do-put-cl 143)) make-symbol "--sp-argument--" let if < (:beg-prf) progn (goto-char :beg-prf) (delete-char (+ :op-l :prefix-l)) goto-char ((insert :prefix :op)) ((insert :prefix :op) (goto-char :beg-prf) (delete-char (+ :op-l :prefix-l))) > (:end-in) ((insert :cl :suffix) (goto-char :end-in) (delete-char (+ :cl-l :suffix-l))) (goto-char :end-in) (delete-char (+ :cl-l :suffix-l)) ((insert :cl :suffix)) (progn (goto-char :beg-prf) (delete-char (+ :op-l :prefix-l))) (progn (goto-char :end-in) (delete-char (+ :cl-l :suffix-l))) ((insert :prefix :op)) ((insert :cl :suffix)) keywordp sp--get-replace-keyword] 15 (#$ . 66873)])
462 #@23 
463
464 (fn STRUCT KEYWORD)
465 (defalias 'sp--get-replace-keyword #[514 "\211\300\267\202\301\302BB\207\301\303BB\207\304\301\305BB\306\301\307BBDE\207\310\301\311BB\306\301\312BBDE\207\310\301\313BB\306\301\314BBDE\207\304\301\315BB\306\301\316BBDE\207\301\317BB\207\301\320BB\207\306\301\321BBD\207\306\301\322BBD\207\310\301\323BB\301\324BB\310\306\301\325BBDD\310\306\301\326BBDD\257\207\310\301\327BB\301\330BBE\207\310\301\331BB\301\332BB\306\301\333BBD\306\301\334BBD\257\207\301\335BB\207\306\301\336BBD\207\301\337BB\207\306\301\340BBD\207\341\301\342BB\301\343BBE\207\304\306\301\344BBD\306\301\345BBDE\207\341\301\346BB\301\347BBE\207\304\306\301\350BBD\306\301\351BBDE\207\207" [#s(hash-table size 21 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:beg 6 :end 12 :beg-in 18 :end-in 33 :beg-prf 48 :end-suf 63 :op 78 :cl 84 :op-l 90 :cl-l 98 :len 106 :len-out 140 :len-in 153 :prefix 183 :prefix-l 189 :suffix 197 :suffix-l 203 :opp 211 :opp-l 224 :cls 241 :cls-l 254)) plist-get (:beg) (:end) + (:beg) length (:op) - (:end) (:cl) (:beg) (:prefix) (:end) (:suffix) (:op) (:cl) (:op) (:cl) (:end) (:beg) (:prefix) (:suffix) (:end) (:beg) (:end) (:beg) (:op) (:cl) (:prefix) (:prefix) (:suffix) (:suffix) concat (:prefix) (:op) (:prefix) (:op) (:cl) (:suffix) (:cl) (:suffix)] 11 (#$ . 68364)])
466 #@2161 Get a property from a structure.
467
468 STRUCT is a plist with the format as returned by `sp-get-sexp'.
469 Which means this macro also works with `sp-get-symbol',
470 `sp-get-string' and `sp-get-thing'.
471
472 FORMS is an attribute we want to query.  Currently supported
473 attributes are:
474
475 :beg       - point in buffer before the opening delimiter
476 :end       - point in the buffer after the closing delimiter
477 :beg-in    - point in buffer after the opening delimiter
478 :end-in    - point in buffer before the closing delimiter
479 :beg-prf   - point in buffer before the prefix of this expression
480 :end-suf   - point in buffer after the suffix of this expression
481 :op        - opening delimiter
482 :cl        - closing delimiter
483 :op-l      - length of the opening pair
484 :cl-l      - length of the closing pair
485 :len       - length of the entire expression, including enclosing
486              delimiters, the prefix and the suffix
487 :len-out   - length of the the pair ignoring the prefix and suffix,
488              including delimiters
489 :len-in    - length of the pair inside the delimiters
490 :prefix    - expression prefix
491 :prefix-l  - expression prefix length
492 :suffix    - expression suffix
493 :suffix-l  - expression suffix length
494
495 These special "functions" are expanded to do the selected
496 action in the context of currently queried pair:
497
498 Nullary:
499 (sp-do-del-op) - remove prefix and opening delimiter
500 (sp-do-del-cl) - remove closing delimiter and suffix
501
502 Unary:
503 (sp-do-move-op p) - move prefix and opening delimiter to point p
504 (sp-do-move-cl p) - move closing delimiter and suffix to point p
505 (sp-do-put-op p) - put prefix and opening delimiter at point p
506 (sp-do-put-cl p) - put closing delimiter and suffix at point p
507
508 In addition to these simple queries and commands, this macro
509 understands arbitrary forms where any of the aforementioned
510 attributes are used.  Therefore, you can for example query for
511 "(+ :op-l :cl-l)".  This query would return the sum of lengths
512 of opening and closing delimiter.  A query
513 "(concat :prefix :op)" would return the string containing
514 expression prefix and the opening delimiter.
515
516 Special care is taken to only evaluate the STRUCT argument once.
517
518 (fn STRUCT &rest FORMS)
519 (defalias 'sp-get '(macro . #[385 "\300\301!\302\303DCBB\"\207" [make-symbol "struct" sp--get-substitute let] 8 (#$ . 69730)]))
520 (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sp-get lisp-indent-function 1 put edebug-form-spec (form body)] 5)
521 #@158 Call `indent-region' unless `aggressive-indent-mode' is enabled.
522
523 START, END and COLUMN are the same as in `indent-region'.
524
525 (fn START END &optional COLUMN)
526 (defalias 'sp--indent-region #[770 "\301\300!\205?\205%\302K\303\304\305\306\307!\310\"\311$\216\302\312M\210\313#)\262\207" [aggressive-indent-mode boundp message make-byte-code 0 "\301\300M\207" vconcat vector [message] 2 ignore indent-region] 10 (#$ . 72163)])
527 #@152 Add ARG as first argument to each form in FORMS.
528
529 This can be used with `sp-local-pair' calls to automatically
530 insert the modes.
531
532 (fn ARG &rest FORMS)
533 (defalias 'sp-with-modes '(macro . #[385 "\300\301!\302DC\303\304\305\306\307\310\311    !\312\"\313\314%\"BE\207" [make-symbol "modes" let progn mapcar make-byte-code 257 "\301@\300DA\"\207" vconcat vector [append] 4 "\n\n(fn FORM)"] 13 (#$ . 72600)]))
534 (byte-code "\300\301\302\303#\304\301\305\306#\210\307\310\311\312BC\"\207" [function-put sp-with-modes lisp-indent-function 1 put edebug-form-spec (form body) font-lock-add-keywords emacs-lisp-mode "(\\(sp-\\(?:compare-sexps\\|get\\|with-modes\\)\\)\\_>" ((1 font-lock-keyword-face))] 5)
535 #@299 Ensure that searching done within BODY is case-sensitive.
536
537 Bind `case-fold-search' to nil if it is not already and avoid the
538 bind if it is already.  Any function that needs to use any of the
539 sp--looking-* functions more than once should wrap them all in
540 `sp--with-case-sensitive'.
541
542 (fn &rest BODY)
543 (defalias 'sp--with-case-sensitive '(macro . #[128 "\300\301\302\303BBBBB\207" [if case-fold-search let ((case-fold-search nil))] 6 (#$ . 73305)]))
544 (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sp--with-case-sensitive lisp-indent-function 0 put edebug-form-spec (body)] 5)
545 #@61 Check to see if the current `evil-state' is in normal mode.
546 (defalias 'sp--evil-normal-state-p #[0 "\300\301!\205\301 \207" [fboundp evil-normal-state-p] 2 (#$ . 73904)])
547 #@61 Check to see if the current `evil-state' is in motion mode.
548 (defalias 'sp--evil-motion-state-p #[0 "\300\301!\205\301 \207" [fboundp evil-motion-state-p] 2 (#$ . 74083)])
549 #@61 Check to see if the current `evil-state' is in visual mode.
550 (defalias 'sp--evil-visual-state-p #[0 "\300\301!\205\301 \207" [fboundp evil-visual-state-p] 2 (#$ . 74262)])
551 #@142 Return non-nil if line at point is blank (whitespace only).
552
553 If optional argument P is present test this instead of point.
554
555 (fn &optional P)
556 (defalias 'sp-point-in-blank-line #[256 "\212\211\203\211b\210\300 \210\301\302!)\207" [beginning-of-line looking-at "[     ]*$"] 3 (#$ . 74442)])
557 #@251 Return non-nil if point is inside blank (whitespace only) sexp.
558
559 If optional argument P is present test this instead of point.
560
561 Warning: it is only safe to call this when point is inside a
562 sexp, otherwise the call may be very slow.
563
564 (fn &optional P)
565 (defalias 'sp-point-in-blank-sexp #[256 "\212\211\203\211b\210\301 \211\2053\211\302\303\304\305\"\304\306\"G\\\304\307\"\304\310\"GZ\"\311\312\313#)\266\203\262\262)\207" [inhibit-changing-match-data sp-get-enclosing-sexp "\\`[     \n]*\\'" buffer-substring-no-properties plist-get :beg :op :end :cl nil t string-match] 10 (#$ . 74736)])
566 #@96 Test if the char at POINT is escaped or not.
567
568 POINT defaults to `point'.
569
570 (fn &optional POINT)
571 (defalias 'sp-char-is-escaped-p #[256 "\211\206`\262\301 \302\303\304\305\306!\307\"\310$\216\212b\210\311\211\312Q\313\314#)\205.\315\316\303!G\317\"\317=)\207" [sp-escape-char match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 looking-back "+" nil t logand match-string 1] 8 (#$ . 75341)])
572 #@107 Memoize the last result of `syntax-ppss'.
573
574 P is the point at which we run `syntax-ppss'
575
576 (fn &optional P)
577 (defalias 'sp--syntax-ppss #[256 "\211\206`\302!    >\204\303\304\300D\"\210\305H@=\203CeA@=\203Cd\3068=\203C\302!    >\204=\303\304\300D\"\210\307H\202\220\302!    >\204R\303\304\300D\"\210\305H\204_\310\311\312\313\211$\210\302!    >\204n\303\304\300D\"\210\211\305edEI\266\302!    >\204\207\303\304\300D\"\210\211\307\314!I\262\207" [sp-state cl-struct-sp-state-tags type-of signal wrong-type-argument 3 2 4 add-hook before-change-functions sp--reset-memoization t syntax-ppss] 9 (#$ . 75784)])
578 #@338 Return non-nil if point is inside string or documentation string.
579
580 This function actually returns the 3rd element of `syntax-ppss'
581 which can be a number if the string is delimited by that
582 character or t if the string is delimited by general string
583 fences.
584
585 If optional argument P is present test this instead of point.
586
587 (fn &optional P)
588 (defalias 'sp-point-in-string #[256 "\3001 \212\301\302!8)0\207\210\303\207" [(error) 3 sp--syntax-ppss nil] 4 (#$ . 76416)])
589 #@126 Return non-nil if point is inside comment.
590
591 If optional argument P is present test this instead off point.
592
593 (fn &optional P)
594 (defalias 'sp-point-in-comment #[256 "\211\206`\262\3001\224\212\301\302!8?\205\221\303\302!8\206\221\211dW\2033\211fz\304>\2033\211f\305=?\206\221\306!@\211\205\217\307\310\311\312\"\"\313U\204Q\303\314\315\\!8\206\217\307\310\311\316\"\"\313U\204f\303\314T!8\206\217\307\310\311\317\"\"\313U\204{\303\314S!8\206\217\307\310\311\320\"\"\313U?\205\217\303\314\315Z!8\262)0\207\210\321\207" [(error) 3 sp--syntax-ppss 4 (60 62) 10 syntax-after logand lsh 1 16 0 syntax-ppss 2 17 18 19 nil] 6 (#$ . 76888)])
595 #@160 Return non-nil if point is inside string, documentation string or a comment.
596
597 If optional argument P is present, test this instead of point.
598
599 (fn &optional P)
600 (defalias 'sp-point-in-string-or-comment #[256 "\300!\206    \301!\207" [sp-point-in-string sp-point-in-comment] 3 (#$ . 77555)])
601 #@230 Return non-nil if `point' is inside symbol.
602
603 If P is non-nil, interpret it as buffer position and test there.
604
605 Point is inside symbol if characters on both sides of the point
606 are in either word or symbol class.
607
608 (fn &optional P)
609 (defalias 'sp-point-in-symbol #[256 "\211\206`\262\212\211b\210g\300U?\205gz\301>\205hz\302>)\207" [0 (119 95) (119 95)] 3 (#$ . 77851)])
610 #@137 Return a description of the last EVENT.
611
612 Replace all the function key symbols with garbage character (ň).
613
614 TODO: fix this!
615
616 (fn EVENT)
617 (defalias 'sp--single-key-description #[257 "\301!\302\303\304\305#)\266\203\203\306\202,\307\303\304\305#)\266\203\203+\310\202,\211\207" [inhibit-changing-match-data single-key-description "<.*?>" nil t string-match "ň" "SPC" " "] 9 (#$ . 78232)])
618 #@49 Get the indentation offset of the current line.
619 (defalias 'sp--current-indentation #[0 "\212\300 \210i)\207" [back-to-indentation] 1 (#$ . 78641)])
620 #@183 Calculate correct indentation after re-indent.
621
622 OLD-COLUMN is the column before reindent.
623
624 OLD-INDENTATION is the indentation depth before reindent.
625
626 (fn OLD-COLUMN OLD-INDENTATION)
627 (defalias 'sp--calculate-indentation-offset #[514 "\300 Y\203Z\\\202\211X\203\211\202\207" [sp--current-indentation] 6 (#$ . 78796)])
628 #@205 Set the current column to proper value.
629
630 See `sp--keep-indentation'.
631
632 OLD-COLUMN is the column before reindent.
633
634 OLD-INDENTATION is the indentation depth before reindent.
635
636 (fn OLD-COLUMN OLD-INDENTATION)
637 (defalias 'sp--back-to-indentation #[514 "\300\"\301!\207" [sp--calculate-indentation-offset move-to-column] 5 (#$ . 79134)])
638 #@369 Execute BODY and restore the column.
639
640 If point was in code move it along if the line is reinvented so
641 it is the same distance relative to first code column.
642
643 If point was previously in the indentation region but would end
644 up in code, move it to the first code column.
645
646 If point was in the indentation region and is still there after
647 BODY, do nothing.
648
649 (fn &rest BODY)
650 (defalias 'sp--keep-indentation '(macro . #[128 "\300\301!\300\302!\303\304B\305BD\306\307EC\"BB\207" [make-symbol "c" "i" let ((current-column)) ((sp--current-indentation)) append sp--back-to-indentation] 10 (#$ . 79474)]))
651 (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sp--keep-indentation lisp-indent-function 0 put edebug-form-spec (body)] 5)
652 #@334 List of commands that are some sort of `self-insert-command'.
653
654 Many modes rebind "self-inserting" keys to "smart" versions
655 which do some additional processing before delegating the
656 insertion to `self-insert-command'.  Smartparens needs to be able
657 to distinguish these to properly handle insertion and reinsertion
658 of pairs and wraps.
659 (defvar sp--self-insert-commands '(self-insert-command org-self-insert-command LaTeX-insert-left-brace) (#$ . 80223))
660 #@483 List of commands which are handled as if they were `self-insert-command's.
661
662 Some modes redefine "self-inserting" keys to "smart" versions
663 which do some additional processing but do _not_ delegate the
664 insertion to `self-insert-command', instead inserting via
665 `insert'.  Smartparens needs to be able to distinguish these to
666 properly handle insertion and reinsertion of pairs and wraps.
667
668 The `sp--post-self-insert-hook-handler' is called in the
669 `post-command-hook' for these commands.
670 (defvar sp--special-self-insert-commands '(TeX-insert-dollar TeX-insert-quote quack-insert-opening-paren quack-insert-closing-paren quack-insert-opening-bracket quack-insert-closing-bracket racket-insert-closing-paren racket-insert-closing-bracket racket-insert-closing-brace) (#$ . 80681))
671 #@73 Return non-nil if `this-command' is some sort of `self-insert-command'.
672 (defalias 'sp--self-insert-command-p #[0 "    >\207" [this-command sp--self-insert-commands] 2 (#$ . 81460)])
673 #@177 Return non-nil if `this-command' is "special" self insert command.
674
675 A special self insert command is one that inserts a character but
676 does not trigger `post-self-insert-hook'.
677 (defalias 'sp--special-self-insert-command-p #[0 "    >\207" [this-command sp--special-self-insert-commands] 2 (#$ . 81647)])
678 #@63 Return 1 if X is positive, -1 if negative, 0 if zero.
679
680 (fn X)
681 (defalias 'sp--signum #[257 "\211\300V\203\301\207\211\300W\203\302\207\300\207" [0 1 -1] 3 (#$ . 81953)])
682 #@446 Return non-nil if the expressions A and B are equal.
683
684 Two expressions are equal if their :beg property is the same.
685
686 If optional argument FUN is non-nil, it is the comparison
687 function.
688
689 If optional argument WHAT-A is non-nil, use it as a keyword on
690 which to do the comparsion (default to :beg).
691
692 If optional argument WHAT-B is non-nil, use it as a keyword on
693 which to do the comparsion (default to WHAT-A).
694
695 (fn A B &optional FUN WHAT-A WHAT-B)
696 (defalias 'sp-compare-sexps '(macro . #[1282 "\206\300\262\206\f\301\262\211\206\262\302E\302EE\207" [equal :beg sp-get] 10 (#$ . 82133)]))
697 (put 'sp-compare-sexps 'edebug-form-spec '(form form &optional functionp keywordp keywordp))
698 #@315 Display a message.
699
700 KEY is either a string or list of strings, or a keyword,
701 in which case the string list is looked up in
702 `sp-message-alist'.  The string to be displayed is chosen based on
703 the `sp-message-width' variable.
704
705 If RETURN is non-nil return the string instead of printing it.
706
707 (fn KEY &optional RETURN)
708 (defalias 'sp-message #[513 "<\203    \202;\203C\202\236A\211\205v    \205v    \302=\2036\203.\211@\202v\303\304@\"\202v    \305=\203A\306 \202B    \307\211\203c\211@\211GX\203\\\211GGV\203\\\211\262A\266\202\202D\210\211\205t\203p\211\202t\303\304\"\266\202\207" [sp-message-alist sp-message-width t message "%s." frame frame-width nil] 9 (#$ . 82836)])
709 #@117 Merge a property PROP from NEW-PAIR into OLD-PAIR.
710
711 The list OLD-PAIR must not be nil.
712
713 (fn PROP NEW-PAIR OLD-PAIR)
714 (defalias 'sp--merge-prop #[771 "\300\"\301\302\"\203\303\302#\202\335\301\304\"\203\"\303\304#\202\335\301\305\"\2031\303\305#\202\335\301\306\"\203@\303\306#\202\335\301\307\"\203O\303\307#\202\335\301\310\"\203^\303\310#\202\335\311\312\"\205\335\211@\211\313\267\202\223\303\314\300\n\"A\"#\202\333\303\315\300\n\"A\"#\202\333\203\320@<\203\320@@\316>\203\320\317\236\320\236\303\314\300    \f\"A\"#\210\303\315\300    \f\"A\"#\266\202\202\333\303\300    \"#\262\207" [plist-get eql :close plist-put :prefix :suffix :skip-match :trigger :trigger-wrap memql (:actions :when :unless :pre-handlers :post-handlers) #s(hash-table size 2 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:add 109 :rem 128)) -union -difference (:add :rem) :add :rem] 14 (#$ . 83534)])
715 #@97 Merge OLD-PAIR and NEW-PAIR.
716 This modifies the OLD-PAIR by side effect.
717
718 (fn OLD-PAIR NEW-PAIR)
719 (defalias 'sp--merge-pairs #[514 "\300\300\203)@\301\246\300U\203\302#\210T\262\210\211T\262A\262\202\266\207" [0 2 sp--merge-prop] 10 (#$ . 84512)])
720 #@104 Copy properties from NEW-PAIR to OLD-PAIR.
721
722 The list OLD-PAIR must not be nil.
723
724 (fn NEW-PAIR OLD-PAIR)
725 (defalias 'sp--update-pair #[514 "\300\300\203<@\301\246\300U\203,\302\"\203\"\302\"\303\232\204,\304\302    \"#\210T\262\210\211T\262A\262\202\266\207" [0 2 plist-get (:add) plist-put] 12 (#$ . 84786)])
726 #@222 Update the PAIR for major mode MODE.
727
728 If this pair is not defined yet for this major mode, add it.  If
729 this pair is already defined, replace all the properties in the
730 old definition with values from PAIR.
731
732 (fn PAIR MODE)
733 (defalias 'sp--update-pair-list #[514 "\301\302\303\203.\203.@\203\301\262\202\"@=\203\"\211\262\210\211T\262A\262\202\266\211\262\211\204ACBB\202\251\301A\302\303\203v\203v@\203Z\301\262\202j\304\305\"\304\305\"\232\203j\211\262\210\211T\262A\262\202F\266\211\262\304\305\"\204\242\304\306\"\204\230\307\302\236\"\204\230\310\311\"\210AB\241\210\202\247\312\"\210\266\210\207" [sp-pairs nil t 0 plist-get :open :close sp--get-pair error "Pair %s was never defined, please specify closing delimiter in instead of passing `nil'" sp--update-pair] 12 (#$ . 85122)])
734 #@59 Get the pair with id OPEN from list LIST.
735
736 (fn OPEN LIST)
737 (defalias 'sp--get-pair #[514 "\300\301\302\2031\2031@\203\300\262\202%\303\304\"\232\203%\211\262\210\211T\262A\262\202\266\211\207" [nil t 0 plist-get :open] 11 (#$ . 85978)])
738 #@160 Get the definition of a pair identified by OPEN from list LIST.
739
740 If PROP is non-nil, return the value of that property instead.
741
742 (fn OPEN LIST &optional PROP)
743 (defalias 'sp--get-pair-definition #[770 "\300\"\203\343\301\267\202\334\302\303\"G\202\344\302\304\"G\202\344\302\303\"G\302\304\"G\\\202\344\305\302\"\306\203N@\211<\204B\211B\262\210\211T\262A\262\2022\266\211\237\262\202\344\305\302\307\"\306\203y@\211<\203m\211B\262\210\211T\262A\262\202]\266\211\237\262\202\344\305\302\310\"\306\203\244@\211<\204\230\211B\262\210\211T\262A\262\202\210\266\211\237\262\202\344\311\312\305\302\310\"\306\203\321@\211<\203\305\211B\262\210\211T\262A\262\202\265\266\211\237\262!!\202\344\302\"\202\344\211\207" [sp--get-pair #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:op-l 14 :cl-l 22 :len 30 :post-handlers 44 :post-handlers-cond 87 :when 130 :when-cond 173)) plist-get :open :close nil 0 :post-handlers :when -flatten -concat] 12 (#$ . 86243)])
744 #@233 Get the definition of pair identified by OPEN.
745
746 OPEN is the opening delimiter, MODE is the major mode symbol or t
747 for global definition.
748
749 If PROP is non-nil, return the value of that property instead.
750
751 (fn OPEN MODE &optional PROP)
752 (defalias 'sp-get-pair-definition #[770 "\301\236A#\207" [sp-pairs sp--get-pair-definition] 7 (#$ . 87312)])
753 #@205 Return the definition of pair defined by OPEN in the current buffer.
754
755 The value is fetched from `sp-local-pairs'.
756
757 If PROP is non-nil, return the value of that property instead.
758
759 (fn OPEN &optional PROP)
760 (defalias 'sp-get-pair #[513 "\301#\207" [sp-local-pairs sp--get-pair-definition] 6 (#$ . 87664)])
761 #@222 Merge SPECIFIC pair configuration to the CURRENT configuration.
762
763 CURRENT defaults to `sp-local-pairs' if it is non-nil or the
764 global definition from `sp-pairs' if `sp-local-pairs' is nil.
765
766 (fn SPECIFIC &optional CURRENT)
767 (defalias 'sp--merge-pair-configurations #[513 "\211\206\f\206\f\302    \236A\303\211\203&\211@\304\305\304\"DB\262A\266\202\202\210\211\203B\211@\306\305\304\"\"\307\"\266A\266\202\202(\210\211\203r\211@\306\305\304\"\"\211\203]\307\"\210\202j\307\304\305\304\"D\"B\262\210A\266\202\202D\210\207" [sp-local-pairs sp-pairs t nil :open plist-get sp--get-pair sp--merge-pairs] 13 (#$ . 87977)])
768 #@482 Wrap the following expression with PAIR.
769
770 This function is a non-interactive helper.  To use this function
771 interactively, bind the following lambda to a key:
772
773  (lambda (&optional arg) (interactive "P") (sp-wrap-with-pair "("))
774
775 This lambda accepts the same prefix arguments as
776 `sp-select-next-thing'.
777
778 If region is active and `use-region-p' returns true, the region
779 is wrapped instead.  This is useful with selection functions in
780 `evil-mode' to wrap regions with pairs.
781
782 (fn PAIR)
783 (defalias 'sp-wrap-with-pair #[257 "\206\305\306 ?\205.\307\310 \203\"    \311=\204\n    >\203\"`\202- \205-\310 ?\205-`\"\312\f\313\314\203]\203]@\203F\312\262\202Q\211@\232\203Q\211\262\210\211T\262A\262\2022\266\211\262\315 \316 \211b\210Ac\210b\210@c\210\306 \203\200\317\"\202\215\317\320\321\"\320\322\"\"\262\207" [current-prefix-arg sp-wrap-entire-symbol major-mode sp-wrap-from-point sp-pair-list 1 use-region-p sp-select-next-thing-exchange sp-point-in-symbol globally nil t 0 region-beginning region-end sp--indent-region plist-get :beg :end] 12 (#$ . 88630)])
784 #@5781 Add a pair definition.
785
786 OPEN is the opening delimiter.  Every pair is uniquely determined
787 by this string.
788
789 CLOSE is the closing delimiter.  You can use nil for this
790 argument if you are updating an existing definition.  In this
791 case, the old value is retained.
792
793 TRIGGER is an optional trigger for the pair.  The pair will be
794 inserted if either OPEN or TRIGGER is typed.  This is usually
795 used as a shortcut for longer pairs or for pairs that can't be
796 typed easily.
797
798 TRIGGER-WRAP is the same as TRIGGER but used for wrapping.
799
800 ACTIONS is a list of actions that smartparens will perform with
801 this pair.  Possible values are:
802
803 - insert  - autoinsert the closing pair when opening pair is
804   typed.
805 - wrap    - wrap an active region with the pair defined by opening
806   delimiter if this is typed while region is active.
807 - autoskip - if the sexp is active or `sp-autoskip-closing-pair' is
808   set to 'always, skip over the closing delimiter if user types its
809   characters in order.
810 - navigate - enable this pair for navigation/highlight and strictness
811   checks
812 - escape - allow autoescaping of this delimiter in string contexts
813
814 If the ACTIONS argument has value :rem, the pair is removed.
815 This can be used to remove default pairs you don't want to use.
816 For example: (sp-pair "[" nil :actions :rem)
817
818 WHEN is a list of predicates that test whether the action
819 should be performed in current context.  The values in the list
820 should be names of the predicates (that is symbols, not
821 lambdas!).  They should accept three arguments: opening
822 delimiter (which uniquely determines the pair), action and
823 context.  The context argument can have values:
824
825 - string  - if point is inside string.
826 - comment - if point is inside comment.
827 - code    - if point is inside code.  This context is only
828   recognized in programming modes that define string semantics.
829
830 If *any* filter returns t, the action WILL be performed. A number
831 of filters are predefined: `sp-point-after-word-p',
832 `sp-point-before-word-p', `sp-in-string-p',
833 `sp-point-before-eol-p' etc.
834
835 When clause also supports a special format for delayed insertion.
836 The condition is a list with commands, predicates (with three
837 arguments as regular when form) or strings specifying the last
838 event.  All three types can be combined in one list.  The pair
839 will be inserted *after* the next command if it matches the any
840 command on the list, if the last event matches any string on the
841 list or if any predicate returns true.  If the pair's :when
842 clause contains this special form, it will never be immediately
843 inserted and will always test for delayed insertion.
844
845 UNLESS is a list of predicates.  The conventions are the same as
846 for the WHEN list.  If *any* filter on this list returns t, the
847 action WILL NOT be performed.  The predicates in the WHEN list
848 are checked first, and if any of them succeeds, the UNLESS list
849 is not checked.
850
851 Note: the functions on the WHEN/UNLESS lists are also called
852 "filters" in the documentation.
853
854 All the filters are run *after* the trigger character is
855 inserted.
856
857 PRE-HANDLERS is a list of functions that are called before there
858 has been some action caused by this pair.  The arguments are the
859 same as for filters.  Context is relative to the point *before*
860 the last inserted character.  Because of the nature of the
861 wrapping operation, this hook is not called if the action is
862 wrapping.
863
864 POST-HANDLERS is a list of functions that are called after there
865 has been some action caused by this pair.  The arguments are the
866 same as for filters.  Context is relative to current position of
867 point *after* the closing pair was inserted.
868
869 After a wrapping action, the point might end on either side of
870 the wrapped region, depending on the original direction.  You can
871 use the variable `sp-last-wrapped-region' to retrieve information
872 about the wrapped region and position the point to suit your
873 needs.
874
875 A special syntax for conditional execution of hooks is also
876 supported.  If the added item is a list (function command1
877 command2...), where function is a 3 argument function described
878 above and command(s) can be either name of a command or a string
879 representing an event.  If the last command or event as described
880 by `single-key-description' matches any on the list, the hook
881 will be executed.  This means these hooks are run not after the
882 insertion, but after the *next* command is executed.
883
884 Example:
885   ((lambda (id act con)
886      (save-excursion
887        (newline))) "RET" newline)
888
889 This function will move the closing pair on its own line only if
890 the next command is `newline' or is triggered by RET.  Otherwise
891 the pairs stay on the same line.
892
893 WRAP is a key binding to which a "wrapping" action is bound.
894 The key should be in format that is accepted by `kbd'.  This
895 option binds a lambda form:
896
897   `(lambda (&optional arg)
898      (interactive "P")
899      (sp-wrap-with-pair ,OPEN))
900
901 to the specified key sequence.  The binding is added to global
902 keymap.  When executed, it wraps ARG (default 1) expressions with
903 this pair (like `paredit-wrap-round' and friends).  Additionally,
904 it accepts the same prefix arguments as `sp-select-next-thing'.
905
906 BIND is equivalent to WRAP.  It is a legacy setting and will be
907 removed soon.
908
909 INSERT is a key binding to which an "insert" action is bound.
910 The key should be in format that is accepted by `kbd'.  This is
911 achieved by binding a lambda form:
912
913  (lambda () (interactive) (sp-insert-pair "pair-id"))
914
915 to the supplied key, where pair-id is the open delimiter of the
916 pair.  The binding is added to the global map.  You can also bind
917 a similar lambda manually.  To only bind this in specific major
918 modes, use this property on `sp-local-pair' instead.
919
920 (fn OPEN CLOSE &key TRIGGER TRIGGER-WRAP (ACTIONS \='(wrap insert autoskip navigate)) WHEN UNLESS PRE-HANDLERS POST-HANDLERS WRAP BIND INSERT)
921 (defalias 'sp-pair #[642 "\301\302\"A@\301\303\"A@\301\304\"\206\305A@\301\306\"A@\301\307\"A@\301\310\"A@\301\311\"A@\301\312\"A@\301    \313\"A@\301\n\314\"A@\n\211\203r\211@\315>\203Z\211AA\262\202G\316\f>A@\203i\317\262\202G\320\321@\"\210\202G\210\322=\203\317\323\236\211\317A\324\203\243@\325\326\"\232\204\227\211B\262\210\211T\262A\262\202\202\266\211\237\262\241\210\327 \324\203\312@r\211q\210\330!\210)\210\211T\262A\262\202\256\266\202i\317\331\326#\262\f\203\344\331\332#\210\n\203\360\331\302 #\210    \203\374\331\303\f#\210\304    B\306    B\307    B\310    B\311    B\257\211\2036\211@\211A\204'\333\323@#\203/\331@A#\210A\266\202\202\210\334\323\"\266\204E\203W\335\336\206L!\337\340\341\342DF\"\210\211\203i\335\343!\337\317\344\345DF\"\210\346 \210\207" [sp-pairs plist-member :trigger :trigger-wrap :actions (nil (wrap insert autoskip navigate)) :when :unless :pre-handlers :post-handlers :wrap :bind :insert (:trigger :trigger-wrap :actions :when :unless :pre-handlers :post-handlers :wrap :bind :insert :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:trigger :trigger-wrap :actions :when :unless :pre-handlers :post-handlers :wrap :bind :insert)" :rem t 0 plist-get :open buffer-list sp--remove-local-pair plist-put :close sp-get-pair-definition sp--update-pair-list global-set-key read-kbd-macro lambda (&optional arg) (interactive "P") sp-wrap-with-pair kbd (interactive) sp-insert-pair sp--update-local-pairs-everywhere] 22 (#$ . 89727)])
922 #@2985 Add a local pair definition or override a global definition.
923
924 MODES can be a single mode or a list of modes where these settings
925 should be applied.
926
927 PREFIX is a regular expression matching an optional prefix for
928 this pair in the specified major modes.  If not specified, the
929 characters of expression prefix syntax class are automatically
930 considered instead.  This can be used to attach custom prefixes
931 to pairs, such as prefix "\function" in \function{arg} in
932 `LaTeX-mode'.
933
934 SUFFIX is a regular expression matching an optional suffix for
935 this pair in the specified major modes.  If not specified, the
936 characters of punctuation syntax class are automatically
937 considered instead.
938
939 The rest of the arguments have same semantics as in `sp-pair'.
940
941 If the pair is not defined globally, ACTIONS defaults to (wrap
942 insert) instead of (:add) (which inherits global settings)
943
944 The pairs are uniquely identified by the opening delimiter.  If you
945 replace the closing one with a different string in the local
946 definition, this will override the global closing delimiter.
947
948 The list arguments can optionally be of form starting with
949 ":add" or ":rem" when these mean "add to the global list"
950 and "remove from the global list" respectively.  Otherwise,
951 the global list is replaced.  If you wish to both add and remove
952 things with single call, use "((:add ...) (:rem ...))" as an
953 argument.  Therefore,
954
955   :when '(:add my-test)
956
957 would mean "use the global settings for this pair, but also this
958 additional test". If no value is provided for list arguments,
959 they default to "(:add)" which means they inherit the list from
960 the global definition.
961
962 To disable a pair in a major mode, simply set its actions set to
963 nil. This will ensure the pair is not even loaded when the mode is
964 activated.
965
966 If WRAP is non-nil, the binding is added into major mode keymap
967 called "foo-mode-map".  If the mode does not follow this
968 convention, you will need to bind the function manually (see
969 `sp-pair' to how the function is named for each particular pair).
970 The bindings are not added into `smartparens-mode-map' to prevent
971 clashes between different modes.
972
973 BIND is equivalent to WRAP.  It is a legacy setting and will be
974 removed soon.
975
976 The binding for INSERT follows the same convention as BIND.  See
977 `sp-pair' for more info.
978
979 You can provide a function SKIP-MATCH, that will take three
980 arguments: the currently matched delimiter, beginning of match
981 and end of match.  If this function returns true, the
982 `sp-get-paired-expression' matcher will ignore this match.  You
983 can use this to skip over expressions that serve multiple
984 functions, such as if/end pair or unary if in Ruby or * in
985 markdown when it signifies list item instead of emphasis.  In
986 addition, there is a global per major-mode option, see
987 `sp-navigate-skip-match'.
988
989 (fn MODES OPEN CLOSE &key TRIGGER TRIGGER-WRAP (ACTIONS \='(:add)) (WHEN \='(:add)) (UNLESS \='(:add)) (PRE-HANDLERS \='(:add)) (POST-HANDLERS \='(:add)) WRAP BIND INSERT PREFIX SUFFIX SKIP-MATCH)
990 (defalias 'sp-local-pair #[899 "\301\302\"A@\301\303\"A@\301\304\"\206\305A@\301\306\"\206\307A@\301\310\"\206(\311A@\301\312\"\2063\313A@\301\314\"\206>\315A@\301\316\"A@\301    \317\"A@\301\n\320\"A@\301 \321\"A@\301\f\322\"A@\301 \323\"A@ \211\203\227\211@\324>\203\211AA\262\202l\325>A@\203\216\326\262\202l\327\330@\"\210\202l\210\n\331=\203\332C!\211\203\n\211@\211\236\211\326A\333\203\323@\334\335\"\232\204\307\211B\262\210\211T\262A\262\202\262\266\211\237\262\241\266\336 \333\203@r\211q\210\337!\203\364\340!\210)\210\211T\262A\262\202\337\266A\266\202\202\244\210\202\367\332C!\211\203\366\211@\326\341\335#\262\203.\341\342#\210\203:\341\302#\210\203F\341\303#\210\203Q\341\321#\210\203\\\341\322#\210\203g\341\323#\210\343\344\"\204y \345\232\203y\346\262\341\304#\210\341\306#\210\341\310#\210\341\312 #\210\341\314\f#\210\347\"\210\350\351!\352P!\211\203\355\353!\205\264\211J\211\203\354\n\204\302    \203\327\354\355 \206\314\f!\356\357\360\361DF#\210\203\354\354\362 !\356\326\363\364DF#\210\210\266A\266\202\202\210\365\332C!!\210\207" [sp-pairs plist-member :trigger :trigger-wrap :actions (nil (:add)) :when (nil (:add)) :unless (nil (:add)) :pre-handlers (nil (:add)) :post-handlers (nil (:add)) :wrap :bind :insert :prefix :suffix :skip-match (:trigger :trigger-wrap :actions :when :unless :pre-handlers :post-handlers :wrap :bind :insert :prefix :suffix :skip-match :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:trigger :trigger-wrap :actions :when :unless :pre-handlers :post-handlers :wrap :bind :insert :prefix :suffix :skip-match)" :rem -flatten 0 plist-get :open buffer-list derived-mode-p sp--remove-local-pair plist-put :close sp-get-pair-definition t (:add) (wrap insert autoskip navigate) sp--update-pair-list intern symbol-name "-map" boundp define-key read-kbd-macro lambda (&optional arg) (interactive "P") sp-wrap-with-pair kbd (interactive) sp-insert-pair sp--update-local-pairs-everywhere] 30 (#$ . 97101)])
991 #@1716 Add a tag definition.
992
993 MODES is a mode or a list of modes where this tag should
994 activate.  It is impossible to define global tags.
995
996 TRIG is the trigger sequence.  It can be a string of any length.
997 If more triggers share a common prefix, the shortest trigger is
998 executed.
999
1000 OPEN is the format of the opening tag.  This is inserted before
1001 the active region.
1002
1003 CLOSE is the format of the closing tag.  This is inserted after
1004 the active region.
1005
1006 Opening and closing tags can optionally contain the _ character.
1007
1008 If the opening tag contains the _ character, after you type the
1009 trigger, the region is wrapped with "skeleton" tags and a
1010 special tag editing mode is entered.  The text you now type is
1011 substituted for the _ character in the opening tag.
1012
1013 If the closing tag contains the _ character, the text from the
1014 opening pair is mirrored to the closing pair and substituted for
1015 the _ character.
1016
1017 TRANSFORM is a function name (symbol) that is called to perform a
1018 transformation of the opening tag text before this is inserted to
1019 the closing tag.  For example, in html tag it might simply select
1020 the name of the tag and cut off the tag attributes (like
1021 class/style etc.).  Defaults to identity.
1022
1023 ACTIONS is a list of actions this tag should support. Currently,
1024 only "wrap" action is supported.  Usually, you don't need to
1025 specify this argument.
1026
1027 POST-HANDLERS is a list of functions that are called after the
1028 tag is inserted.  If the tag does contain the _ character, these
1029 functions are called after the tag editing mode is exited.  Each
1030 function on this list should accept two arguments: the trigger
1031 string and the action.
1032
1033 (fn MODES TRIG OPEN CLOSE &key (TRANSFORM \='identity) (ACTIONS \='(wrap insert)) POST-HANDLERS)
1034 (defalias 'sp-local-tag #[1156 "\301\302\"\206\303A@\301\304\"\206\305A@\301\306\"A@\211\203E\211@\307>\203.\211AA\262\202\310>A@\203<\311\262\202\312\313@\"\210\202\210\314C!\211\205*\211@\211\236\311A\315\316\203\206\203\206@\203m\311\262\202z\317\320\"\232\203z\211\262\210\211T\262A\262\202Y\266\211\262\311\321\320#\262\321\322 #\210\321\323\f#\210\203\256\321\302\n#\210\203\272\321\304    #\210\203\305\321\306#\210\203\204\377\311A\316\203\364@\317\320\"\232\204\350\211B\262\210\211T\262A\262\202\323\266\211\237\262\241\210\202!\204 AB\241\210\202!\324\"\210\202!\203!CBB\266A\266\202\202K\262\207" [sp-tags plist-member :transform (nil identity) :actions (nil (wrap insert)) :post-handlers (:transform :actions :post-handlers :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:transform :actions :post-handlers)" -flatten t 0 plist-get :trigger plist-put :open :close sp--update-pair] 22 (#$ . 102237)])
1035 (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\210\300\311\312\313\304\305%\210\300\314\315\316\304\305%\210\300\317\320\321\304\305%\207" [custom-declare-face sp-pair-overlay-face ((t (:inherit highlight))) "The face used to highlight pair overlays." :group smartparens sp-wrap-overlay-face ((t (:inherit sp-pair-overlay-face))) "The face used to highlight wrap overlays.\n\nWhen the user wraps a region with multi-character pair a special\ninsertion mode is entered.  This face is used for the overlays\nwhere the possible wrappings are displayed.\n\nThe opening and closing delimiters use\n`sp-wrap-overlay-opening-pair' and `sp-wrap-overlay-closing-pair'\nrespectively." sp-wrap-overlay-opening-pair ((t (:inherit sp-wrap-overlay-face :foreground "green"))) "The face used to highlight opening pairs for wrapping.\n\nSee `sp-wrap-overlay-face'." sp-wrap-overlay-closing-pair ((t (:inherit sp-wrap-overlay-face :foreground "red"))) "The face used to highlight closing pairs for wrapping.\n\nSee `sp-wrap-overlay-face'." sp-wrap-tag-overlay-face ((t (:inherit sp-pair-overlay-face))) "The face used to highlight wrap tag overlays."] 6)
1036 #@267 List of overlays used for tracking inserted pairs.
1037
1038 When a pair is inserted, an overlay is created over it.  When the
1039 user starts typing the closing pair we will not insert it again.
1040 If user leaves the overlay, it is canceled and the insertion
1041 works again as usual.
1042 (defvar sp-pair-overlay-list nil (#$ . 106172))
1043 (make-variable-buffer-local 'sp-pair-overlay-list)
1044 #@29 Cons pair of wrap overlays.
1045 (defvar sp-wrap-overlays nil (#$ . 106543))
1046 (make-variable-buffer-local 'sp-wrap-overlays)
1047 #@33 Cons pair of tag wrap overlays.
1048 (defvar sp-wrap-tag-overlays nil (#$ . 106668))
1049 (make-variable-buffer-local 'sp-wrap-tag-overlays)
1050 #@31 Keymap for the pair overlays.
1051 (defvar sp-pair-overlay-keymap (make-sparse-keymap) (#$ . 106805))
1052 (define-key sp-pair-overlay-keymap "" '(menu-item nil sp-remove-active-pair-overlay :filter (lambda (cmd) (unless (bound-and-true-p company-my-keymap) cmd))))
1053 #@31 Keymap for the wrap overlays.
1054 (defvar sp-wrap-overlay-keymap (make-sparse-keymap) (#$ . 107068))
1055 (define-key sp-wrap-overlay-keymap "" 'sp-wrap-cancel)
1056 #@199 Wrapper around `overlays-at' to get smartparens overlays.
1057
1058 POS is the same as for `overlays-at'.
1059
1060 Smartparens functions must use this function instead of
1061 `overlays-at' directly.
1062
1063 (fn &optional POS)
1064 (defalias 'sp--overlays-at #[256 "\300\301\206`!\302\203'@\303\304\"\203\211B\262\210\211T\262A\262\202    \266\211\237\207" [nil overlays-at 0 overlay-get type] 8 (#$ . 107228)])
1065 #@48 Return t if point is in OVERLAY.
1066
1067 (fn OVERLAY)
1068 (defalias 'sp--point-in-overlay-p #[257 "`\300!W\205 `\301!V\207" [overlay-end overlay-start] 4 (#$ . 107625)])
1069 #@46 Compute the length of OVERLAY.
1070
1071 (fn OVERLAY)
1072 (defalias 'sp--get-overlay-length #[257 "\300!\301!Z\207" [overlay-end overlay-start] 4 (#$ . 107793)])
1073 #@165 Get active overlay.
1074
1075 Active overlay is the shortest overlay at point.  Optional
1076 argument TYPE restrict overlays to only those with given type.
1077
1078 (fn &optional TYPE)
1079 (defalias 'sp--get-active-overlay #[256 "\300 \2032\301\302\203*@\303\304\"=\203\211B\262\210\211T\262A\262\202    \266\211\237\262\262\211\204:\301\202\216\211A\204D\211@\202\216\211\211\203y\211@A\302\203q@\305!\305!W\203b\211\202c\262\210\211T\262A\262\202N\266\211\262\202\214\301\211\305!\305!W\203\211\211\202\212\266\202\262\207" [sp--overlays-at nil 0 overlay-get type sp--get-overlay-length] 10 (#$ . 107951)])
1080 #@242 Create an overlay over the currently inserted pair.
1081
1082 This overlay is used for tracking the position of the point and
1083 marks the active expression.  START and END are the boundaries of
1084 the overlay, ID is the id of the pair.
1085
1086 (fn START END ID)
1087 (defalias 'sp--pair-overlay-create #[771 "\302\"\303\304\305#\210\303\306#\210\303\307#\210\303\310\311#\210\211    B\312 \210\313\314\315\316\317$\207" [sp-pair-overlay-keymap sp-pair-overlay-list make-overlay overlay-put priority 99 keymap pair-id type pair sp--pair-overlay-fix-highlight add-hook post-command-hook sp--pair-overlay-post-command-handler nil t] 9 (#$ . 108587)])
1088 #@29 Cancel the active wrapping.
1089 (defalias 'sp-wrap-cancel #[0 "\303\216\211\211A\262\242\304\305!\204\306 \203\307\310!\311!\"\210\311!\310!|\210    \nV\205>\312\311!\310!\"\311!b\210\211c\262\266\203\262)\207" [sp-wrap-overlays sp-wrap-point sp-wrap-mark #[0 "\300 \207" [sp-wrap--clean-overlays] 1] called-interactively-p any sp--delete-selection-p kill-region overlay-end overlay-start delete-and-extract-region] 8 (#$ . 109221) nil])
1090 #@23 Delete wrap overlays.
1091 (defalias 'sp-wrap--clean-overlays #[0 "\211A\262\242\301!\210\301!\210\302\211\207" [sp-wrap-overlays delete-overlay nil] 5 (#$ . 109676)])
1092 #@88 Fix highlighting of the pair overlays.
1093
1094 Only the active overlay should be highlighted.
1095 (defalias 'sp--pair-overlay-fix-highlight #[0 "\303 \304\203@\305\306\307#\266\211T\262A\262\202\266\310 \211\205'\311\312\"\203M\211\313\267\202I\205W\305\306\314#\202W    \205W\305\306\315#\202W\307\202W\n\205W\305\n@\306\314#\207" [sp-highlight-wrap-tag-overlay sp-highlight-pair-overlay sp-wrap-tag-overlays sp--overlays-at 0 overlay-put face nil sp--get-active-overlay overlay-get type #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (wrap-tag 49 pair 61)) sp-wrap-tag-overlay-face sp-pair-overlay-face] 7 (#$ . 109852)])
1096 #@232 Remove all invalid pair overlays.
1097
1098 An invalid overlay is one that doesn't have point inside it or
1099 is of zero length.
1100
1101 Also remove all pair overlays if point moved backwards and
1102 `sp-cancel-autoskip-on-backward-movement' is non-nil.
1103 (defalias 'sp--pair-overlay-post-command-handler #[0 "\203 `    W\203 \n\211\203\211@\303!\210A\266\202\202 \210\202`\304\n\305\203H@\306!\2037\307!\305V\204<\211B\262\210\211T\262A\262\202#\266\211\237\262\211\203_\211@\303!\210A\266\202\202N\210\n\205g`\211\207" [sp-cancel-autoskip-on-backward-movement sp-previous-point sp-pair-overlay-list sp--remove-overlay nil 0 sp--point-in-overlay-p sp--get-overlay-length] 6 (#$ . 110533)])
1104 #@162 Reset memoization as a safety precaution.
1105
1106 IGNORED is a dummy argument used to eat up arguments passed from
1107 the hook where this is executed.
1108
1109 (fn &rest IGNORED)
1110 (defalias 'sp--reset-memoization #[128 "\302!    >\204\303\304\300D\"\210\211\305\306I\266\302!    >\204%\303\304\300D\"\210\211\307\306I\207" [sp-state cl-struct-sp-state-tags type-of signal wrong-type-argument 3 nil 4] 5 (#$ . 111233)])
1111 #@63 Deactivate the active overlay.  See `sp--get-active-overlay'.
1112 (defalias 'sp-remove-active-pair-overlay #[0 "\300\301!\211\205\n\302!\207" [sp--get-active-overlay pair sp--remove-overlay] 3 (#$ . 111643) nil])
1113 #@31 Remove OVERLAY.
1114
1115 (fn OVERLAY)
1116 (defalias 'sp--remove-overlay #[257 "\302\303\203 @\211\232\204\211B\262\210\211T\262A\262\202\266\211\237\262\211\2043\304\305\306\307#\210\310\311!\210\312 \207" [sp-pair-overlay-list sp-previous-point nil 0 remove-hook post-command-hook sp--pair-overlay-post-command-handler t -1 delete-overlay sp--pair-overlay-fix-highlight] 8 (#$ . 111860)])
1117 #@59 Replace text inside overlay O with STRING.
1118
1119 (fn O STRING)
1120 (defalias 'sp--replace-overlay-text #[514 "\212\300!b\210\211c\210`\301!|)\207" [overlay-start overlay-end] 5 (#$ . 112264)])
1121 #@36 Get text inside overlay O.
1122
1123 (fn O)
1124 (defalias 'sp--get-overlay-text #[257 "\300!\301!{\207" [overlay-start overlay-end] 4 (#$ . 112456)])
1125 #@87 Return t if point is inside string or comment, nil otherwise.
1126
1127 (fn ID ACTION CONTEXT)
1128 (defalias 'sp-in-string-p #[771 "\211\300=\207" [string] 5 (#$ . 112601)])
1129 #@198 Special string test for quotes.
1130
1131 On insert action, test the string context one character back from
1132 point.  Return nil at `bobp'.
1133
1134 On escape action use the value of CONTEXT.
1135
1136 (fn ID ACTION CONTEXT)
1137 (defalias 'sp-in-string-quotes-p #[771 "\300\267\202o?\205\212\301u\210\302 )\207\211\303=\207\304\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (insert 6 escape 19)) -1 sp-point-in-string string nil] 5 (#$ . 112769)])
1138 #@85 Return t if point is inside elisp docstring, nil otherwise.
1139
1140 (fn ID ACTION CONTEXT)
1141 (defalias 'sp-in-docstring-p #[771 "\211\301=\205-\212\302 @\211\205*\211b\210\3031\304\305!0\202 \210\202!\210\306\307\310!)\262\262)\207" [inhibit-changing-match-data string sp-get-quoted-string-bounds (error) backward-sexp 3 "\\(?:-lambda\\|cl-def\\(?:macro\\|un\\)\\|def\\(?:macro\\*?\\|un\\*?\\)\\|lambda\\)" t looking-at] 7 (#$ . 113241)])
1142 #@74 Return t if point is inside code, nil otherwise.
1143
1144 (fn ID ACTION CONTEXT)
1145 (defalias 'sp-in-code-p #[771 "\211\300=\207" [code] 5 (#$ . 113687)])
1146 #@77 Return t if point is inside comment, nil otherwise.
1147
1148 (fn ID ACTION CONTEXT)
1149 (defalias 'sp-in-comment-p #[771 "\211\300=\207" [comment] 5 (#$ . 113837)])
1150 #@74 Return t if point is inside code, nil otherwise.
1151
1152 (fn ID ACTION CONTEXT)
1153 (defalias 'sp-in-math-p #[771 "\300\301!\205\301 \207" [functionp texmathp] 5 (#$ . 113996)])
1154 #@162 Return t if point is followed by optional white spaces and end of line, nil otherwise.
1155 This predicate is only tested on "insert" action.
1156
1157 (fn ID ACTION CONTEXT)
1158 (defalias 'sp-point-before-eol-p #[771 "\300=\205    \301\302!\207" [insert sp--looking-at-p "\\s-*$"] 5 (#$ . 114172)])
1159 #@161 Return t if point follows beginning of line and possibly white spaces, nil otherwise.
1160 This predicate is only tested on "insert" action.
1161
1162 (fn ID ACTION CONTEXT)
1163 (defalias 'sp-point-after-bol-p #[771 "\300=\205 \301\302\303!P!\207" [insert sp--looking-back-p "^\\s-*" regexp-quote] 7 (#$ . 114460)])
1164 #@137 Return t if point is at the beginning of line, nil otherwise.
1165 This predicate is only tested on "insert" action.
1166
1167 (fn ID ACTION CONTEXT)
1168 (defalias 'sp-point-at-bol-p #[771 "\300=\205 \301\302\303!P!\207" [insert sp--looking-back-p "^" regexp-quote] 7 (#$ . 114768)])
1169 #@133 Return t if point is followed by a symbol, nil otherwise.
1170 This predicate is only tested on "insert" action.
1171
1172 (fn ID ACTION CONTEXT)
1173 (defalias 'sp-point-before-symbol-p #[771 "\300=\205    \301\302!\207" [insert sp--looking-at-p "\\s_"] 5 (#$ . 115044)])
1174 #@131 Return t if point is followed by a word, nil otherwise.
1175 This predicate is only tested on "insert" action.
1176
1177 (fn ID ACTION CONTEXT)
1178 (defalias 'sp-point-before-word-p #[771 "\300=\205    \301\302!\207" [insert sp--looking-at-p "\\sw\\|\\s_"] 5 (#$ . 115304)])
1179 #@125 Return t if point is after a word, nil otherwise.
1180 This predicate is only tested on "insert" action.
1181
1182 (fn ID ACTION CONTEXT)
1183 (defalias 'sp-point-after-word-p #[771 "\300>\205 \301\302\303!P!\207" [(insert escape) sp--looking-back-p "\\(\\sw\\|\\s_\\)" regexp-quote] 7 (#$ . 115567)])
1184 #@127 Return t if point is followed by ID, nil otherwise.
1185 This predicate is only tested on "insert" action.
1186
1187 (fn ID ACTION CONTEXT)
1188 (defalias 'sp-point-before-same-p #[771 "\300=\205 \301\302!!\207" [insert sp--looking-at-p regexp-quote] 6 (#$ . 115860)])
1189 #@79 Return t if point is on an empty line, nil otherwise.
1190
1191 (fn ID ACTION CONTEXT)
1192 (defalias 'sp-point-in-empty-line-p #[771 "\300\301!\205 \302\303\304!P!\207" [sp--looking-at-p "\\s-*$" sp--looking-back-p "^\\s-*" regexp-quote] 7 (#$ . 116119)])
1193 #@85 Return non-nil if character before point is escaped with \.
1194
1195 (fn ID ACTION CONTEXT)
1196 (defalias 'sp-char-escaped-p #[771 "\300=\205\212\301u\210\302\303\304\")\207" [insert -1 looking-back "\\\\" 1] 6 (#$ . 116370)])
1197 #@300 Return t if pair ID can perform ACTION.
1198
1199 If ACTION is a list, return t if at least one action from the
1200 list can be performed.
1201
1202 If USE-INSIDE-STRING is non-nil, use value of
1203 `sp-point-inside-string' instead of testing with
1204 `sp-point-in-string-or-comment'.
1205
1206 (fn ID ACTION &optional USE-INSIDE-STRING)
1207 (defalias 'sp--do-action-p #[770 "\301C!\262\302\303\"\302\304\"\302\305\"\203\202\306 \211\203$\307\202.\310 \203-\311\202.\312\313\211\203\303\211\204\303@\262>\205\271\203\200\313\314\315\203x\203x@\203b\313\262\202l\211\n#\262\210\211T\262A\262\202N\266\211\262\205\271?\206\271\313\314\315\203\263\203\263@\203\235\313\262\202\247\211\n#\262\210\211T\262A\262\202\211\266\211\262?\262A\262    \2020\207" [sp-point-inside-string -flatten sp-get-pair :actions :when :unless sp-point-in-string string sp-point-in-comment comment code nil t 0] 19 (#$ . 116595)])
1208 #@71 Return the context constant.  TYPE is type of the handler.
1209
1210 (fn TYPE)
1211 (defalias 'sp--get-handler-context #[257 "\211\300\267\202\212o\204\301u\210\302 )\202\302 \202\303\211\203\"\304\202#\305\207" [#s(hash-table size 2 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:pre-handlers 6 :post-handlers 20)) -1 sp-point-in-string-or-comment nil string code] 3 (#$ . 117541)])
1212 #@172 Return the context of POINT.
1213
1214 If the optional arguments IN-STRING or IN-COMMENT non-nil, their
1215 value is used instead of a test.
1216
1217 (fn &optional POINT IN-STRING IN-COMMENT)
1218 (defalias 'sp--get-context #[768 "\212\206`b\210\204\300 \203\301\202#\211\204\302 \203\"\303\202#\304)\207" [sp-point-in-string string sp-point-in-comment comment code] 4 (#$ . 117948)])
1219 #@80 Parse the insertion specification FUN and return a form to evaluate.
1220
1221 (fn FUN)
1222 (defalias 'sp--parse-insertion-spec #[257 "\300C\300\301\300\302\303\304\305\306!\307\"\310\311%\262\312\313!r\211q\210\302\314\315\305\306!\316\"\317$\216c\210eb\210\320\321\300\322#\203\342\323\314!\324\232\203\233\212\325u\210h)\326=\203X\327\330`\317Z\"\324PD!\210\202\334\327\330`S\"D!\210`\320\331\300\322#\210`S\330\"\211\332\232\203y\333\202\211\211\314H\334\232\205\211\335\336\301\300O!D\211\203\226\n\242B\240\210\266\202\334\323\314!\337\232\203\334\212\325u\210h)\326=\203\276\327\330`\317Z\"\337PD!\210\202\334\327\330`S\"D!\210\340\242B\240\210g\341=\203\334\301u\210\342\262`\262\202-\327\330d\"D!\210*\210\242\237\211\300\322\203\211\203@\211\340=\203    \300\262\202\211B\262A\262\210\202\363\237D\266\203\343@A@\205'A\"\344\2036\345\"\2027B\266\203\262\207" [nil 1 make-byte-code 257 "\211A@\301\232?\205\300\300\242B\240\207" vconcat vector [""] 4 "\n\n(fn WHAT)" generate-new-buffer " *temp*" 0 "\301\300!\205    \302\300!\207" [buffer-name kill-buffer] 2 re-search-forward "\\(|\\|\\[\\)" t match-string "[" -1 92 insert buffer-substring-no-properties "]" "i" (indent-according-to-mode) 100 delete-char string-to-number "|" save-excursion 124 (indent-according-to-mode) -concat progn -snoc] 14 (#$ . 118326)])
1223 #@241 Run a function or insertion.
1224
1225 If FUN is a function, call it with `funcall' with ID, ACTION and
1226 CONTEXT as arguments.
1227
1228 If FUN is a string, interpret it as "insertion specification",
1229 see `sp-pair' for description.
1230
1231 (fn FUN ID ACTION CONTEXT)
1232 (defalias 'sp--run-function-or-insertion #[1028 "\300!\203\f#\207;\205\301\302!!\207" [functionp eval sp--parse-insertion-spec] 8 (#$ . 119715)])
1233 #@60 Special variable holding context during handler execution.
1234 (defvar sp-handler-context nil (#$ . 120117))
1235 #@285 Run all the hooks for pair ID of type TYPE on action ACTION.
1236
1237 CONTEXT-VALUES is a plist with arbitrary values (depending on the
1238 action).  A dynamic varable `sp-handler-context' will be bound to
1239 this value during execution of the handler.
1240
1241 (fn ID TYPE ACTION &optional CONTEXT-VALUES)
1242 (defalias 'sp--run-hook-with-args #[1027 "\3011A\302\"\303!\2035\304\205/@\305\n    $\266\211T\262A\262\202\266\202)\202=\306\307$\266\2020\207\210\310\207" [sp-handler-context (error) sp-get-pair sp--get-handler-context 0 sp--run-function-or-insertion run-hook-with-args tag-hook nil] 14 (#$ . 120229)])
1243 #@55 Handle the situation after some command has executed.
1244 (defalias 'sp--post-command-hook-handler #[0 "\2036\306\307 \203\310 \210\31112    \205.\n\203:\n@\312!\313!`\211 W\2045\211V\2045\211W\2038\314 \210\266\n\203@`\315\f! >\204O\316\317\304\fD\"\210\f\320H\242\321=\203r\315\f! >\204g\316\317\304\fD\"\210\f\320H\211\322\240\266\202K\315\f! >\204\201\316\317\304\fD\"\210\f\320H\242\322=\203K\315\f! >\204\231\316\317\304\fD\"\210\f\320HA\323\324\"\211\325\203.@\211@A\326\306\327\325\203\330\203\330@\203\306\306\262\202\314,=\262\210\211T\262A\262\202\262\266\211\262!\204\326\306\327\325\203\203@\203\372\306\262\202\330-!\232\262\210\211T\262A\262\202\346\266\211\262!\203!\331\332\333\334!$\210\266\211T\262A\262\202\243\266\315\f! >\204?\316\317\304\fD\"\210\f\211\320\306I\266\306.\266/\335=\204\3700\203\3700@0A\323\336\"\323\337\"\203\363\326\306\327\325\203\303\203\303@\203\203\306\262\202\267\340!\203\225\211;\204\225,=\202\265\211;\203\243\330-!\232\202\265\3411\263\211 \332\333\334!#0\202\265\210\306\262\210\211T\262A\262\202o\266\211\262!\203\363\342\343\332#\210\211c\210\211G\206\333\320[u\210\344`G\\#\210\342\334\332#\210.\345/\266\3060/\335=\203\306/\346 \204\307 \204\306\2111/2\205.,3\235\203$\347 \202.,\350=?\205.\351 0\2024\210\306)\207\307 \203>\310 \210\3521`    \205^\n\203j\n@\312!\313!`\211 W\204e\211V\204e\211W\203h\314 \210\266\n\203p`\315\f! >\204\316\317\304\fD\"\210\f\320H\242\321=\203\242\315\f! >\204\227\316\317\304\fD\"\210\f\320H\211\322\240\266\202{\315\f! >\204\261\316\317\304\fD\"\210\f\320H\242\322=\203{\315\f! >\204\311\316\317\304\fD\"\210\f\320HA\323\324\"\211\325\203^@\211@A\326\306\327\325\203\203@\203\366\306\262\202\374,=\262\210\211T\262A\262\202\342\266\211\262!\204G\326\306\327\325\203>\203>@\203*\306\262\2022\330-!\232\262\210\211T\262A\262\202\266\211\262!\203Q\331\332\333\334!$\210\266\211T\262A\262\202\323\266\315\f! >\204o\316\317\304\fD\"\210\f\211\320\306I\266\306.\266/\335=\204(0\203(0@0A\323\336\"\323\337\"\203#\326\306\327\325\203\363\203\363@\203\263\306\262\202\347\340!\203\305\211;\204\305,=\202\345\211;\203\323\330-!\232\202\345\3531\343\211 \332\333\334!#0\202\345\210\306\262\210\211T\262A\262\202\237\266\211\262!\203#\342\343\332#\210\211c\210\211G\206 \320[u\210\344`G\\#\210\342\334\332#\210.\345/\266\3060/\335=\2032\306/\346 \204B\307 \204B\306\2111/2\205^,3\235\203T\347 \202^,\350=?\205^\351 0\207\210\306\207" [case-fold-search smartparens-mode sp-wrap-overlays sp-previous-point sp-state cl-struct-sp-state-tags nil sp--special-self-insert-command-p sp--post-self-insert-hook-handler (error) overlay-start overlay-end sp-wrap-cancel type-of signal wrong-type-argument 1 :next :this sp-get-pair :post-handlers-cond 0 ---truthy\? t single-key-description sp--run-function-or-insertion insert sp--get-handler-context :post-handlers sp-insert-pair-delayed :when-cond :close commandp (error) sp--run-hook-with-args :pre-handlers sp--pair-overlay-create sp-insert-pair sp--self-insert-command-p sp-show--pair-enc-function sp-highlight-current-sexp sp-show--pair-delete-enc-overlays (error) (error) this-command last-command-event sp-last-inserted-pair sp-last-operation sp-delayed-pair sp-last-wrapped-region show-smartparens-mode sp-show-enclosing-pair-commands] 17 (#$ . 120850)])
1245 #@166 Use ACTION as a flag to evaluating FORMS.
1246
1247 If ACTION is nil, evaluate FORMS and set it to the value of the
1248 last form; otherwise do nothing.
1249
1250 (fn ACTION &rest FORMS)
1251 (defalias 'sp--setaction '(macro . #[385 "\300\301\302BEE\207" [unless setq progn] 8 (#$ . 124438)]))
1252 (put 'sp--setaction 'edebug-form-spec '(form body))
1253 #@38 Handler for `post-self-insert-hook'.
1254 (defalias 'sp--post-self-insert-hook-handler #[0 "\3061\205    \203\222\307\3102\216\307\311 \203D\3121\"\313 0\202C\314\315!!\210\n\316=\2049\317 \210\n\210\nA\320 \210\321 !\210\322\310\307\"\262\210\f\203M\323 \202\213\211\204g\324\307\325\"A\211\205c\3102c\326\327\"0\262\262 \204s\211\204s\330 \262\211\204{\331 \262\211\204\202\332 \210\211?\205\213\333\211\2620)\202\3102\307\311 \203\310\3341\246\313 0\202\307\314\315!!\210\n\316=\204\275\317 \210\n\210\nA\320 \210\321 !\210\322\310\307\"\262\210\f\203\321\323 \202\211\204\353\324\307\325\"A\211\205\347\3102\347\326\335\"0\262\262 \204\367\211\204\367\330 \262\211\204\377\331 \262\211\204\332 \210\211?\205\333\211\26200\207\314\336\"\210\307\207" [smartparens-mode case-fold-search buffer-undo-list sp-buffer-modified-p sp-wrap-overlays overwrite-mode (debug error) nil done region-active-p (user-error) sp-wrap--initialize message error-message-string t sp--undo-pop-to-last-insertion-node undo-boundary restore-buffer-modified-p throw sp-wrap sp--all-pairs-to-insert wrap -each #[257 "\300\301\"\300\302\"\303B!\211\205\304\305\"\262\207" [plist-get :open :close sp--wrap-repeat-last throw done] 7 "\n\n(fn INPUT0)"] sp-insert-pair sp-skip-closing-pair sp-escape-open-delimiter sp-self-insert (user-error) #[257 "\300\301\"\300\302\"\303B!\211\205\304\305\"\262\207" [plist-get :open :close sp--wrap-repeat-last throw done] 7 "\n\n(fn INPUT0)"] "sp--post-self-insert-hook-handler: %S" sp-last-operation] 5 (#$ . 124766)])
1255 (add-hook 'post-self-insert-hook 'sp--post-self-insert-hook-handler)
1256 #@58 Save some of the buffer state before `pre-command-hook'.
1257 (defalias 'sp--save-pre-command-state #[0 "\303 `\304 \211\207" [sp-point-inside-string sp-pre-command-point sp-buffer-modified-p sp-point-in-string buffer-modified-p] 2 (#$ . 126445)])
1258 (add-hook 'pre-command-hook 'sp--save-pre-command-state)
1259 #@182 Get all non-stringlike pairs.
1260
1261 Return all pairs that are recognized in this `major-mode' and do
1262 not have same opening and closing delimiter.  This is used for
1263 navigation functions.
1264 (defalias 'sp--get-pair-list #[0 "\301\302\203\"@\211@A\230\204\211B\262\210\211T\262A\262\202\266\211\237\207" [sp-pair-list nil 0] 6 (#$ . 126755)])
1265 #@133 Get all string-like pairs.
1266
1267 Return all pairs that are recognized in this `major-mode' that
1268 have same opening and closing delimiter.
1269 (defalias 'sp--get-stringlike-list #[0 "\301\302\203\"@\211@A\230\203\211B\262\210\211T\262A\262\202\266\211\237\207" [sp-pair-list nil 0] 6 (#$ . 127109)])
1270 #@218 Get all allowed non string-like pairs.
1271
1272 Return all pairs that are recognized in this `major-mode', do not
1273 have same opening and closing delimiter and are allowed in the
1274 current context.  See also `sp--get-pair-list'.
1275 (defalias 'sp--get-allowed-pair-list #[0 "\301\302\203*@\303@\304\"\203\211@A\232\204\211B\262\210\211T\262A\262\202\266\211\237\207" [sp-pair-list nil 0 sp--do-action-p navigate] 7 (#$ . 127420)])
1276 #@180 Get all allowed string-like pairs.
1277
1278 Return all pairs that are recognized in this `major-mode',
1279 have the same opening and closing delimiter and are allowed in
1280 the current context.
1281 (defalias 'sp--get-allowed-stringlike-list #[0 "\301\302\203*@\303@\304\"\203\211@A\232\203\211B\262\210\211T\262A\262\202\266\211\237\207" [sp-pair-list nil 0 sp--do-action-p navigate] 7 (#$ . 127860)])
1282 #@122 Return all pairs that are recognized in this `major-mode' and
1283 are allowed in the current context.
1284
1285 (fn &optional ACTION)
1286 (defalias 'sp--get-pair-list-context #[256 "\211\206\301\262\302\303\203*@\304@\"\203\211B\262\210\211T\262A\262\202\n\266\211\237\207" [sp-pair-list insert nil 0 sp--do-action-p] 8 (#$ . 128268)])
1287 #@61 Return the list of all pairs that can be used for wrapping.
1288 (defalias 'sp--get-pair-list-wrap #[0 "\301\302\203\"@\303@\304\"\203\211B\262\210\211T\262A\262\202\266\211\237\207" [sp-pair-list nil 0 sp--do-action-p wrap] 7 (#$ . 128612)])
1289 #@114 Wraps regexp with start and end boundary conditions to avoid
1290 matching symbols in symbols.
1291
1292 (fn STRING START END)
1293 (defalias 'sp--wrap-regexp #[771 "\300\205\301\205\f\302\303\260\207" ["\\(?:" "\\<" "\\>" "\\)"] 8 (#$ . 128872)])
1294 #@135 Generates an optimized regexp matching all string, but with
1295 extra boundary conditions depending on parens.
1296
1297 (fn PARENS &rest STRINGS)
1298 (defalias 'sp--regexp-for-group #[385 "@A@\300\301!#\207" [sp--wrap-regexp regexp-opt] 8 (#$ . 129115)])
1299 #@139 Like regexp-opt, but with extra boundary conditions to ensure
1300 that the strings are not matched in-symbol.
1301
1302 (fn STRINGS &optional IGNORED)
1303 (defalias 'sp--strict-regexp-opt #[513 "\203<\300 p\301\302\303\304\305\"\306\"\307$\216\310\311\300 !\312\313\314#\210\211\262!\210\315\316\"\317\320\321#\322\323Q\262\262\262)\207\324\207" [syntax-table make-byte-code 0 "r\301q\210\302\300!)\207" vconcat vector [set-syntax-table] 2 set-syntax-table make-syntax-table modify-syntax-entry 39 "." -group-by #[257 "\301\302\303\304#)\266\203\205\303\305\302\303\304#)\266\203\205\"\303D\207" [inhibit-changing-match-data "\\`\\<" nil t string-match "\\>\\'"] 9 "\n\n(fn STRING)"] mapconcat #[257 "\300\301\"\207" [apply sp--regexp-for-group] 4 "\n\n(fn G)"] "\\|" "\\(?:" "\\)" "^\\<$"] 11 (#$ . 129366)])
1304 #@89 Like regexp-quote, but make sure that the string is not
1305 matched in-symbol.
1306
1307 (fn STRING)
1308 (defalias 'sp--strict-regexp-quote #[257 "\301\302!\303\304\305\306#)\266\203\307\304\305\306#)\266\203#\207" [inhibit-changing-match-data sp--wrap-regexp regexp-quote "\\`\\<" nil t string-match "\\>\\'"] 11 (#$ . 130194)])
1309 #@90 Return regexp matching any opening pair.
1310
1311 (fn &optional (PAIR-LIST (sp--get-pair-list)))
1312 (defalias 'sp--get-opening-regexp #[128 "\211\203 \211A\262\242\202\300 \203\301\302\303GTD\"\210\304\305\306\"!\207" [sp--get-pair-list signal wrong-number-of-arguments sp--get-opening-regexp sp--strict-regexp-opt mapcar #[257 "\211@\207" [] 2 "\n\n(fn IT)"]] 6 (#$ . 130524)])
1313 #@90 Return regexp matching any closing pair.
1314
1315 (fn &optional (PAIR-LIST (sp--get-pair-list)))
1316 (defalias 'sp--get-closing-regexp #[128 "\211\203 \211A\262\242\202\300 \203\301\302\303GTD\"\210\304\305\306\"!\207" [sp--get-pair-list signal wrong-number-of-arguments sp--get-closing-regexp sp--strict-regexp-opt mapcar #[257 "\211A\207" [] 2 "\n\n(fn IT)"]] 6 (#$ . 130908)])
1317 #@154 Return regexp matching any opening or closing
1318 delimiter for any pair allowed in current context.
1319
1320 (fn &optional (PAIR-LIST (sp--get-allowed-pair-list)))
1321 (defalias 'sp--get-allowed-regexp #[128 "\211\203 \211A\262\242\202\300 \203\301\302\303GTD\"\210\304\305\306\307\310\"\"!\207" [sp--get-allowed-pair-list signal wrong-number-of-arguments sp--get-allowed-regexp sp--strict-regexp-opt apply append mapcar #[257 "\211@AD\207" [] 3 "\n\n(fn IT)"]] 8 (#$ . 131293)])
1322 #@188 Return a regexp matching any string-like delimiter.
1323
1324 In case PAIR-LIST is empty return a regexp that never matches
1325 anything.
1326
1327 (fn &optional (PAIR-LIST (sp--get-allowed-stringlike-list)))
1328 (defalias 'sp--get-stringlike-regexp #[128 "\211\203 \211A\262\242\202\300 \203\301\302\303GTD\"\210\211:\203*\304\305\306\"!\202+\307\207" [sp--get-allowed-stringlike-list signal wrong-number-of-arguments sp--get-stringlike-regexp regexp-opt mapcar #[257 "\211@\207" [] 2 "\n\n(fn IT)"] "^\\<$"] 6 (#$ . 131776)])
1329 #@231 Return `sp-get-sexp' style plist about the last wrapped region.
1330
1331 Note: this function does not retrieve the actual value of
1332 `sp-last-wrapped-region', it merely construct the plist from the
1333 provided values.
1334
1335 (fn BEG END OPEN CLOSE)
1336 (defalias 'sp--get-last-wraped-region #[1028 "\300 \300 \301\223\210\211\301\223\210\302\303\"\210\304\305\306\307    \310BBBBBBBB\207" [make-marker nil set-marker-insertion-type t :beg :end :op :cl (:prefix "")] 15 (#$ . 132297)])
1337 #@268 Return non-nil if we can wrap a region.
1338
1339 This is used in advices on various pre-command-hooks from
1340 "selection deleting" modes to intercept their actions.
1341
1342 Also added to `self-insert-uses-region-functions' to prevent
1343 `delete-selection-mode' from replacing the region.
1344 (defalias 'sp-wrap--can-wrap-p #[0 "\301 \302!\303\304\305\306\203;\203;@\203\304\262\202/\307@\"\206-\307A\"\262\210\211T\262A\262\202\n\266\211\262!\207" [last-command-event sp--get-pair-list-wrap sp--single-key-description ---truthy\? nil t 0 string-prefix-p] 11 (#$ . 132773)])
1345 #@121 Comparator for wrapping pair selection.
1346
1347 PROP specifies wrapping-end.  A and B are pairs to be compared.
1348
1349 (fn PROP A B)
1350 (defalias 'sp--pair-to-wrap-comparator #[771 "\300\"G\300\"GW\207" [plist-get] 7 (#$ . 133355)])
1351 #@205 Return information about possible wrapping pairs.
1352
1353 If optional PREFIX is non-nil, this is used to determine the
1354 possible wrapping pairs instead of the text in the wrapping
1355 overlay.
1356
1357 (fn &optional PREFIX)
1358 (defalias 'sp--pair-to-wrap #[256 "\302\303\203$@\304\305\306\"\307\"\203\211B\262\210\211T\262A\262\202\266\211\237\262    @\2063\310!\302\303\203W@\311\305\306\"\"\203K\211B\262\210\211T\262A\262\2026\266\211\237\262\312\313\302\303\203\211@\311\305\314\"\206t\315\"\203}\211B\262\210\211T\262A\262\202c\266\211\237\262\"\316\"\302\303\203\272@\311\305\317\"\"\203\256\211B\262\210\211T\262A\262\202\230\266\211\237\262\320\321\"@\320\322\"@\306\317\323\324    \257\207" [sp-local-pairs sp-wrap-overlays nil 0 sp--do-action-p plist-get :open wrap sp--get-overlay-text string-prefix-p -map #[257 "\211\300\301\"\300\302\"\303!\262\304\301#\262\304\305#\262\207" [plist-get :open :trigger-wrap copy-sequence plist-put :open-real] 8 "\n\n(fn INPUT0)"] :trigger-wrap "" -concat :close -sort #[514 "\300\301#\207" [sp--pair-to-wrap-comparator :open] 6 "\n\n(fn IT OTHER)"] #[514 "\300\301#\207" [sp--pair-to-wrap-comparator :close] 6 "\n\n(fn IT OTHER)"] :opening :closing] 18 (#$ . 133583)])
1359 #@22 Initialize wrapping.
1360 (defalias 'sp-wrap--initialize #[0 "\205\366\306 \205\366`    Z`Z\307 \310 \311\211\311*\312\313\314\315\316!\317\"\320$\216\321\n`\"\322+\323d!\210\324\n!\324\307 !\203J\211\203J@@=\204\215\204a\211\204a\325\n\307 \"\204\215\326\327!\210\202\215\203j\211?\202k\211\203\211\326\330\242\203y\331\202z\332\242\203\203\331\202\204\332#\210\202\215\326\333!\210c\266,\210`\307 V\203\247\321`Z`\"\334 \210\211c\266\335\336 Z\336 \337\211\311%\335\340 \340 \337\211\311%B,-\203\321\341\342\343#\210\341\342\343#\210\341\344\345#\210\341\344\345#\210\341\346.#\210\341\347\350#\210`/\351!Tb\266\202\262\207" [sp-autowrap-region sp-pre-command-point sp-wrap-point sp-wrap-mark buffer-undo-list inhibit-read-only sp-wrap--can-wrap-p mark buffer-modified-p t make-byte-code 0 "\300?\205\301\302!\207" vconcat vector [restore-buffer-modified-p nil] 2 delete-and-extract-region -1 syntax-propertize sp-get-quoted-string-bounds sp-region-ok-p user-error "Mismatched sexp state: wrapping would break structure" "Mismatched string state: point %sin string, mark %sin string" "" "not " "Mismatched string state: point and mark are inside different strings" exchange-point-and-mark make-overlay region-beginning nil region-end overlay-put face sp-wrap-overlay-face priority 100 keymap type wrap overlay-start inhibit-modification-hooks syntax-propertize--done sp-wrap-overlays sp-highlight-wrap-overlay sp-wrap-overlay-keymap sp-previous-point] 10 (#$ . 134871)])
1361 #@395 Finalize a successful wrapping.
1362
1363 WRAPPING-END specifies the wrapping end.  If we wrapped using
1364 opening delimiter it is :open.  If we wrapped using closing
1365 delimiter it is :close.  Position of point after wrapping depends
1366 on this value---if :open, go where the wrapping was initalized,
1367 if :close, go after the newly-formed sexp.
1368
1369 OPEN and CLOSE are the delimiters.
1370
1371 (fn WRAPPING-END OPEN CLOSE)
1372 (defalias 'sp-wrap--finalize #[771 "\211\211A\262\242\306\"\210\306\"\210\307\310\311!\312!$\313\267\202\\ \203=\314\312!!\210\311!b\210\202\\\f V\203\\\314\311!!\210\312!b\210\202\\\314\311!!\210\312!b\210\315 \210\316\317\320#\266\203\207" [sp-wrap-overlays sp-last-operation sp-last-wrapped-region sp-wrap-respect-direction sp-wrap-point sp-wrap-mark sp--replace-overlay-text sp-wrap-region sp--get-last-wraped-region overlay-start overlay-end #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:open 43 :close 81)) set-mark sp-wrap--clean-overlays sp--run-hook-with-args :post-handlers wrap] 12 (#$ . 136399)])
1373 #@161 Try to wrap the active region with some pair.
1374
1375 This function is not ment to be used to wrap sexps with pairs
1376 programatically.  Use `sp-wrap-with-pair' instead.
1377 (defalias 'sp-wrap #[0 "\302 \303\304\"\303\305\"\303\306\"\303\307\"\211A\262\242\203U\303\304\"\303\305\"\303\310\"    \203<\311\312\313\314 \315##\210\316!\232\205N\317\304\206L#\266\203\262\202\203}G\320U\203}\303\304\"\303\305\"\316!\232\205v\317\305#\266\202\262\202\321 \207" [sp-wrap-overlays sp-wrap-show-possible-pairs sp--pair-to-wrap plist-get :open :close :opening :closing :open-real overlay-put after-string mapconcat #[257 "\203\301\302\303\"\304\305#\301\302\306\"\304\307#P\207\302\303\"\302\306\"P\207" [sp-highlight-wrap-overlay propertize plist-get :open face sp-wrap-overlay-opening-pair :close sp-wrap-overlay-closing-pair] 6 "\n\n(fn X)"] " " sp--get-overlay-text sp-wrap--finalize 1 sp-wrap-cancel] 19 (#$ . 137483)])
1378 #@144 Escape instances of CHARS-TO-ESCAPE between BEG and END.
1379
1380 Return non-nil if at least one escaping was performed.
1381
1382 (fn CHARS-TO-ESCAPE BEG END)
1383 (defalias 'sp--escape-region #[771 "\212b\210\301!\302 \303\223\303\304\305#\203$\305\262\212\306\224b\210c\210)\202 \266\202)\207" [sp-escape-char regexp-opt make-marker nil re-search-forward t 0] 10 (#$ . 138442)])
1384 #@87 Escape quotes and special chars when a region is (re)wrapped.
1385
1386 (fn ID ACTION CONTEXT)
1387 (defalias 'sp-escape-wrapped-region #[771 "\205\216\304>\205\216    \212\305\306\"b\210\307 \305\306\"`W\203-`\305\310\"W\203-\305\311\"\2027\312=\2057\305\n\313\"\262)\211\232\203P\314 D\305\306\"\305\310\"#\202\212\211\203p\314C\305\306\"\305\311\"G\\\305\310\"\305\315\"GZ#\202\212\314 D\305\306\"\305\311\"G\\\305\310\"\305\315\"GZ#\262\262\207" [sp-escape-wrapped-region sp-last-wrapped-region sp-handler-context sp-escape-char (wrap rewrap-sexp) plist-get :beg sp-get-string :end :op rewrap-sexp :parent sp--escape-region :cl] 12 (#$ . 138817)])
1388 #@70 Escape quotes inserted via `sp-insert-pair'.
1389
1390 (fn ID ACTION CONTEXT)
1391 (defalias 'sp-escape-quotes-after-insert #[771 "\205.\301=\205.\211\302=?\205.\303Hz\304=\205.\305\306\"\307D`GZ`G\\#\266\202\207" [sp-escape-quotes-after-insert insert string 0 34 sp-get-pair :close sp--escape-region] 10 (#$ . 139494)])
1392 #@173 Check if the buffer is string-balanced.
1393
1394 A string-balanced buffer is one where where is no unclosed
1395 string, that is, the string state at the end of the buffer is
1396 "closed".
1397 (defalias 'sp--buffer-is-string-balanced-p #[0 "\212\214~\210db\210\300 \211@\301W\206\3028\262*\207" [sp--syntax-ppss 0 3] 3 (#$ . 139821)])
1398 #@228 Escape just inserted opening pair if `sp-insert-pair' was skipped.
1399
1400 This is useful for escaping of " inside strings when its pairing
1401 is disabled.  This way, we can control autoescape and closing
1402 delimiter insertion separately.
1403 (defalias 'sp-escape-open-delimiter #[0 "\301\302\303!\304\"\211\205#\305\303\"\205#\205#\306 \205#\307C`GZ`#\207" [sp-point-inside-string plist-get sp--pair-to-insert escape :open sp--do-action-p sp--buffer-is-string-balanced-p sp--escape-region] 5 (#$ . 140146)])
1404 #@74 Split the html tag TAG at the first space and return its name.
1405
1406 (fn TAG)
1407 (defalias 'sp-match-sgml-tags #[257 "\300\301\"\211@\207" [split-string " "] 4 (#$ . 140653)])
1408 (make-obsolete 'sp-match-sgml-tags "do not use this function as the tag system has been removed." "2015-02-07")
1409 #@77 Return non-nil if C is a cons cell with numbers at `car' and `cdr'.
1410
1411 (fn C)
1412 (defalias 'sp--is-number-cons #[257 "\211:\205\211@\247\205\211A\247\207" [] 2 (#$ . 140940)])
1413 #@127 Pop all undo info until an insertion node (beg . end) is found.
1414
1415 This can potentially remove some undo important information.
1416 (defalias 'sp--undo-pop-to-last-insertion-node #[0 "\205@\203\301@!?\205\211A\210\202\207" [buffer-undo-list sp--is-number-cons] 2 (#$ . 141122)])
1417 #@98 Split the last insertion node in the `buffer-undo-list' to
1418 include separate pair node.
1419
1420 (fn LEN)
1421 (defalias 'sp--split-last-insertion-undo #[257 "\301 \210\205LA@@@A\302\211ZW\204/\210A\301 \210\203/@@\262A\262ZB\262ZB\262\303\302\302F\"\211\266\205\207" [buffer-undo-list sp--undo-pop-to-last-insertion-node nil append] 11 (#$ . 141414)])
1422 #@575 Return all pairs that can be inserted at point.
1423
1424 Return nil if such pair does not exist.
1425
1426 Pairs inserted using a trigger have higher priority over pairs
1427 without a trigger and only one or the other list is returned.
1428
1429 In other words, if any pair can be inserted using a trigger, only
1430 pairs insertable by trigger are returned.
1431
1432 ACTION is an implementation detail.  Usually it has the value
1433 'insert when we determine pairs to insert.  On repeated wrapping
1434 however we pass the value 'wrap.  This will be refactored away in
1435 the upcoming version.
1436
1437 (fn &optional LOOKING-FN ACTION)
1438 (defalias 'sp--all-pairs-to-insert #[512 "\206\301\262\211\206\f\302\262\303\304\2033@\305\306\307\"\"\203'\211B\262\210\211T\262A\262\202\266\211\237\262\303\304\203f@\306\310\"\203Z\311\306\310\"!!\203Z\211B\262\210\211T\262A\262\202<\266\211\237\262\211\203v\310B\202\253\303\304\203\234@\311\306\307\"!!\203\220\211B\262\210\211T\262A\262\202y\266\211\237\262\211\205\251\307B\262\262\207" [sp-local-pairs sp--looking-back-p insert nil 0 sp--do-action-p plist-get :open :trigger sp--strict-regexp-quote] 13 (#$ . 141794)])
1439 #@17 
1440
1441 (fn PROP A B)
1442 (defalias 'sp--pair-to-insert-comparator #[771 "\300\267\202\301\302\"G\301\302\"GW\207\301\303\"G\301\303\"GW\2034\304\301\305\"\301\305\"\"\205H\306\301\305\"!\207\304\301\305\"\301\305\"\"\205G\306\301\305\"!?\207" [#s(hash-table size 1 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:trigger 6)) plist-get :trigger :open string-prefix-p :close sp--looking-at-p] 8 (#$ . 142965)])
1443 #@181 Return pair that can be inserted at point.
1444
1445 Return nil if such pair does not exist.
1446
1447 If more triggers or opening pairs are possible select the
1448 shortest one.
1449
1450 (fn &optional ACTION)
1451 (defalias 'sp--pair-to-insert #[256 "\300\301\"\211\205,\211A\262\242\211\205*\211\205(\302\303\304\305\306\307!\310\"\311\312%\"@\262\262\207" [sp--all-pairs-to-insert nil -sort make-byte-code 514 "\301\300#\207" vconcat vector [sp--pair-to-insert-comparator] 6 "\n\n(fn IT OTHER)"] 11 (#$ . 143406)])
1452 #@68 Return pair with the longest :open which can be inserted at point.
1453 (defalias 'sp--longest-prefix-to-insert #[0 "\301\302\203%@\303\304\305\306\"!!\203\211B\262\210\211T\262A\262\202\266\211\237\262\211\2054\307\310\"@\207" [sp-local-pairs nil 0 sp--looking-back-p sp--strict-regexp-quote plist-get :open -sort #[514 "\300\301\"G\300\301\"GV\207" [plist-get :open] 6 "\n\n(fn IT OTHER)"]] 9 (#$ . 143909)])
1454 #@308 Return pair to uninsert.
1455
1456 If the current to-be-inserted pair shares a prefix with
1457 another (shorter) pair, we must first remove the effect of
1458 inserting its closing pair before inserting the current one.
1459
1460 The previously inserted pair must be the one with the longest
1461 common prefix excluding the current pair.
1462 (defalias 'sp--pair-to-uninsert #[0 "\300 \211\205o\212\301\302\"G\206\303[u\210\304\305!\211\205l\211A\262\242\211\205j\211\205h\306\307\310\311\312\313!\314\"\315\316%\317\320\203`@\301\302\"G\301 \302\"GY\204T\211B\262\210\211T\262A\262\202:\266\211\237\262\"@\262\262\262)\207" [sp--longest-prefix-to-insert plist-get :open 1 sp--all-pairs-to-insert sp--looking-at-p -sort make-byte-code 514 "\301\300\"G\301\300\"GV\207" vconcat vector [plist-get] 6 "\n\n(fn IT OTHER)" nil 0] 14 (#$ . 144342)])
1463 #@65 Get basic info about the to-be-inserted pair.
1464
1465 (fn ACTIVE-PAIR)
1466 (defalias 'sp--insert-pair-get-pair-info #[257 "\300\301\"\211\300\302\"\300\303\"\211\203!\304\305!!\203\211\202\"\202\"\262E\207" [plist-get :open :close :trigger sp--looking-back-p sp--strict-regexp-quote] 8 (#$ . 145188)])
1467 #@442 Automatically insert the closing pair if it is allowed in current context.
1468
1469 If PAIR is provided, use this as pair ID instead of looking
1470 through the recent history of pressed keys.
1471
1472 You can disable this feature completely for all modes and all pairs by
1473 setting `sp-autoinsert-pair' to nil.
1474
1475 You can globally disable insertion of closing pair if point is
1476 followed by the matching opening pair.  It is disabled by
1477 default.
1478
1479 (fn &optional PAIR)
1480 (defalias 'sp-insert-pair #[256 "\203J\306\3072H\310\311\312\313\314!\315\"\316$\216\211\203\211c\210\317 )\320!\211A\262\242\211A\262\242@\321\322 !\204\225\203\225`    Z\323U\203\225\324\311\325O!\211\203\224\325\306O\310\311\326\313\314!\327\"\323$\216\330\325!\210\331\332!\211\203\221\212\211\333\334\"\333\335\"GZ\333\334\"|\210\333\334\"\333\335\"GZb\210c\266)\336\307\332\"\210\210)\210\210\310\311\312\313\314\n!\337\"\316$\216\203\251c\210\n\205\205 \340>\203\305\232\203\311\341\306\332\"?\202\306\332\205\342\343\332#\205\344\345!?\206\346\347!!?\206\232\203\f\350=\203\212\211G\206\364\323[u\210\351\347!!)\206\232?)\204p\306 \311\203*@\211@\232\204\211B\262\210\211T\262A\262\202 \266\211\237\262\306=\311\203U@\333\352\"\232\204I\211B\262\210\211T\262A\262\2024\266\211\237\262 GGV\205k=\350 *\266\202\202E\324\353\"\203\205`GZB>\354\211\202E\204\217\330G[!\210c\210\355\356\343#\210\3572!?>\204\252\360\361\3622D\"\2102\363H\3572!?>\204\300\360\361\3622D\"\2102\364H=\365 *\211\203\352\333\366\"\321\347!!\203\351GGZ\311V\203\351\330G!\210\210\210c\210G\206\364\323[u\210\367`GZ`G\\#\210@\203\370GG\\!\210\306ABA\306ABA\355\371\343#\210B\3572!?>\2047\360\361\3622D\"\2102\211\323\372BI\266\350\211\266\2050)\207\3072\214\310\311\312\313\314!\373\"\316$\216\211\203a\211c\210\317 )\320!\211A\262\242\211A\262\242@\321\322 !\204\331\203\331`    Z\323U\203\331\324\311\325O!\211\203\330\325\306O\310\311\326\313\314!\327\"\323$\216\330\325!\210\331\332!\211\203\325\212\211\333\334\"\333\335\"GZ\333\334\"|\210\333\334\"\333\335\"GZb\210c\266)\336\307\332\"\210\210)\210\210\310\311\312\313\314\n!\374\"\316$\216\203\355c\210\n\205H\205H \340>\203    \232\203 \341\306\332\"?\202\n\332\205H\342\343\332#\205H\344\345!?\206H\346\347!!?\206H\232\203D\f\350=\203D\212\211G\2068\323[u\210\351\347!!)\206H\232?)\204\264\306 \311\203n@\211@\232\204b\211B\262\210\211T\262A\262\202O\266\211\237\262\306=\311\203\231@\333\352\"\232\204\215\211B\262\210\211T\262A\262\202x\266\211\237\262 GGV\205\257=\350 *\266\202\202\211\324\353\"\203\311`GZB>\354\211\202\211\204\323\330G[!\210c\210\355\356\343#\210\3572!?>\204\356\360\361\3622D\"\2102\363H\3572!?>\204\360\361\3622D\"\2102\364H=\365 *\211\203.\333\366\"\321\347!!\203-GGZ\311V\203-\330G!\210\210\210c\210G\2068\323[u\210\367`GZ`G\\#\210@\203`\370GG\\!\210\306ABA\306ABA\355\371\343#\210B\3572!?>\204{\360\361\3622D\"\2102\211\323\372BI\266\350\211\266\2050\207" [case-fold-search sp-pre-command-point sp-autoinsert-pair sp-autoskip-closing-pair sp-last-operation sp-pair-list nil done make-byte-code 0 "\300\205    \301\300G[!\207" vconcat vector [delete-char] 2 sp--pair-to-insert sp--insert-pair-get-pair-info sp--looking-at-p sp--get-closing-regexp 1 sp-get-pair -1 "\300c\207" [] delete-char sp-get-thing t plist-get :end :cl throw [delete-char] (always always-end) sp-skip-closing-pair sp--do-action-p insert sp--get-active-overlay pair sp--looking-at sp--strict-regexp-quote sp-insert-pair sp--looking-back :open :when-cond sp-insert-pair-delayed sp--run-hook-with-args :pre-handlers type-of signal wrong-type-argument sp-state 5 6 sp--pair-to-uninsert :close sp--pair-overlay-create sp--split-last-insertion-undo :post-handlers :next [delete-char] [delete-char] sp-local-pairs sp-delayed-pair cl-struct-sp-state-tags sp-undo-pairs-separately buffer-undo-list sp-last-inserted-pair] 14 (#$ . 145498)])
1481 #@156 If the last operation was a wrap and `sp-wrap-repeat-last' is
1482 non-nil, repeat the wrapping with this pair around the last
1483 active region.
1484
1485 (fn ACTIVE-PAIR)
1486 (defalias 'sp--wrap-repeat-last #[257 "\303U?\205\272    \205\272    \304\305\"\262    \304\306\"\262    \304\307\"\262\211G    \304\310\"G\262@G\311U\203;@\232\202>\312U\205\270\n\313>\205\270`\314#U\204X`U\205\270\315[!\210`W\203\220\\b\210@c\210Zb\210Ac\210\316\\`    @\nA$\314#b\210\202\255b\210@c\210b\210Ac\210\316    @\nA$\317\320@\321\322#\210\n\266\206\207" [sp-wrap-repeat-last sp-last-wrapped-region sp-last-operation 0 plist-get :beg :end :op :cl 1 2 (sp-self-insert sp-wrap-region) + delete-char sp--get-last-wraped-region sp-wrap-region sp--run-hook-with-args :post-handlers wrap] 12 (#$ . 149615)])
1487 #@83 Return non-nil if CHAR is part of a string-like delimiter of length 1.
1488
1489 (fn CHAR)
1490 (defalias 'sp--char-is-part-of-stringlike #[257 "\301\302\303\304\302\305 \306\203'@\211AG\307U\203\211B\262\210\211T\262A\262\202\266\211\237\262\"\310\306\203b\203b@\203D\302\262\202V\311!\302\310\312#)\266\203\262\210\211T\262A\262\2020\266\211\262!\207" [inhibit-changing-match-data ---truthy\? nil -map car sp--get-stringlike-list 0 1 t regexp-quote string-match] 14 (#$ . 150435)])
1491 #@167 Return non-nil if CHAR is part of a pair delimiter of length 1.
1492 Specifically, return the pair for which CHAR is the closing
1493 delimiter.
1494
1495 (fn CHAR &optional PAIR-LIST)
1496 (defalias 'sp--char-is-part-of-closing #[513 "\301!\302\211\206 \303 \304\203+@\211AG\305U\203\211B\262\210\211T\262A\262\202\f\266\211\237\262\306\304\203g\203g@\203G\302\262\202[A\302\306\307#)\266\203\203[\211\262\210\211T\262A\262\2023\266\211\262\207" [inhibit-changing-match-data regexp-quote nil sp--get-pair-list 0 1 t string-match] 15 (#$ . 150949)])
1497 #@894 Automatically skip the closing delimiters of pairs.
1498
1499 If point is inside an inserted pair, and the user only moved
1500 forward with point (that is, only inserted text), if the closing
1501 pair is typed, we shouldn't insert it again but skip forward.  We
1502 call this state "active sexp".  The setting
1503 `sp-cancel-autoskip-on-backward-movement' controls when an active
1504 expression become inactive.
1505
1506 For example, pressing ( is followed by inserting the pair (|).  If
1507 we then type 'word' and follow by ), the result should be (word)|
1508 instead of (word)|).
1509
1510 This behaviour can be customized by various settings of
1511 `sp-autoskip-closing-pair' and `sp-autoskip-opening-pair'.
1512
1513 Additionally, this behaviour can be selectively disabled for
1514 specific pairs by removing their "autoskip" action.  You can
1515 achieve this by using `sp-pair' or `sp-local-pair' with
1516 ":actions '(:rem autoskip)".
1517
1518 (fn &optional LAST TEST-ONLY)
1519 (defalias 'sp-skip-closing-pair #[512 "\203\262\306    \307=\203\n\203\310\311!\204    \312>\205\260\313\314K\315\316\317\320\321!\322\"\323$\216\314M\210\306\211\324\262\325\262\206>\326 !\310\311!\211\205|\327\330\"\211\205z\331\f\"A\211\205xG\332U\205x\232\205x\333\334!\335\336!\337\340\341\342\343\342\257\f\262\262\262\206\311\344!\203\241\345\346 !\205\311\347\350\316!\316\224\316\225#?\205\311!\202\311\351!\205\311\345\352 !\203\300\347\350\316!\316\224\316\225#\204\300!\202\311    \353=\205\311!\211\203\244\211\203\236\211\354\340\"\262\232\203\236\355\354\337\"\262\356\"\203\236\357 \203\366\360`S!\204\236`\354\333\"\262U\203 \205u\203\307\202u\361\362!\210\306u\210\363\211>\202u`\354\335\"\354\340\"GZ\262U\203C\2038\307\202u\361\332!\210\363\211>\202u\211`\354\333\"\354\337\"G\\V\205_`\354\335\"\354\340\"GZW\262\205u\203m\307\202u\361\362!\210\364\306\307\"\211\205\231\204\207?\204\207\365\306!\210\204\230\366\354\337\"\262\367\370#\210\211\262\202\247\371!\202\247\371!\262\262\266\202)\266\202)\207    \307=\203\302\n\203\302\310\311!\204\310    \312>\205\\\372\314K\315\316\317\320\321!\373\"\323$\216\314M\210\306\211\374\262\375\262\206\352\326 !\310\311!\211\205(\327\330\"\211\205&\331\f\"A\211\205$G\332U\205$\232\205$\333\334!\335\336!\337\340\341\342\343\342\257\f\262\262\262\206u\344!\203M\345\346 !\205u\347\350\316!\316\224\316\225#?\205u!\202u\351!\205u\345\352 !\203l\347\350\316!\316\224\316\225#\204l!\202u    \353=\205u!\211\203P\211\203J\211\354\340\"\262\232\203J\355\354\337\"\262\356\"\203J\357 \203\242\360`S!\204J`\354\333\"\262U\203\311 \205!\203\273\307\202!\361\362!\210\306u\210\363\211>\202!`\354\335\"\354\340\"GZ\262U\203\357\203\344\307\202!\361\332!\210\363\211>\202!\211`\354\333\"\354\337\"G\\V\205 `\354\335\"\354\340\"GZW\262\205!\203\307\202!\361\362!\210\364\306\307\"\211\205E\2043?\2043\365\306!\210\204D\366\354\337\"\262\367\370#\210\211\262\202S\371!\202S\371!\262\262\266\202)\266\202\207" [case-fold-search sp-autoskip-closing-pair sp-pair-overlay-list last-command-event sp-pair-list sp-autoskip-opening-pair nil t sp--get-active-overlay pair (always always-end) #[0 "\301\302\203*@\303@\304\"\203\211@A\232\203\211B\262\210\211T\262A\262\202\266\211\237\207" [sp-pair-list nil 0 sp--do-action-p autoskip] 7] sp--get-allowed-stringlike-list make-byte-code 0 "\301\300M\207" vconcat vector [sp--get-allowed-stringlike-list] 2 #[257 "\300\301!\210\302c\210\303 \300\301!\210c\210\207" [delete-char -1 #1=" " sp-get-sexp] 4 "\n\n(fn LAST)"] #[257 "\300\301!\210\302c\210\303 \300\301!\210c\210\207" [delete-char -1 #2=" " sp-get-enclosing-sexp] 4 "\n\n(fn LAST)"] sp--single-key-description overlay-get pair-id assoc 1 :beg overlay-start :end overlay-end :op :cl :prefix "" :suffix sp--char-is-part-of-stringlike sp--looking-at sp--get-stringlike-regexp sp--skip-match-p match-string-no-properties sp--char-is-part-of-closing sp--get-closing-regexp always plist-get sp--do-action-p autoskip sp-point-in-string sp-char-is-escaped-p delete-char -1 sp-skip-closing-pair sp-up-sexp set-buffer-modified-p sp--run-hook-with-args :post-handlers skip-closing-pair sp--inhibit-insertion-of-closing-delim #[0 "\301\302\203*@\303@\304\"\203\211@A\232\203\211B\262\210\211T\262A\262\202\266\211\237\207" [sp-pair-list nil 0 sp--do-action-p autoskip] 7] [sp--get-allowed-stringlike-list] #[257 "\300\301!\210\302c\210\303 \300\301!\210c\210\207" [delete-char -1 #1# sp-get-sexp] 4 "\n\n(fn LAST)"] #[257 "\300\301!\210\302c\210\303 \300\301!\210c\210\207" [delete-char -1 #2# sp-get-enclosing-sexp] 4 "\n\n(fn LAST)"] sp-last-operation sp-buffer-modified-p] 22 (#$ . 151521)])
1520 #@414 Inhibit insertion of closing delimiter in `smartparens-strict-mode'.
1521
1522 If we are not inserting inside string or a comment, and the LAST
1523 inserted character is closing delimiter for a pair that performs
1524 autoskip, and we can not jump out of its enclosing sexp (i.e. it
1525 does not match), we are not allowed to insert it literally
1526 because it would break the balance; so we delete the
1527 just-inserted character.
1528
1529 (fn LAST)
1530 (defalias 'sp--inhibit-insertion-of-closing-delim #[257 "\205,\302\303 \"\211\205\304\305@\306\">\262\205,\307 ?\205,\310\311!\210\312    !\210\313\314!\210\315\207" [smartparens-strict-mode sp-buffer-modified-p sp--char-is-part-of-closing sp--get-allowed-pair-list autoskip sp-get-pair :actions sp-point-in-string-or-comment delete-char -1 set-buffer-modified-p sp-message :cant-insert-closing-delimiter nil] 6 (#$ . 156308)])
1531 #@666 Automatically delete opening or closing pair, or both, depending on
1532 position of point.
1533
1534 If the point is inside an empty pair, automatically delete both.  That
1535 is, [(|) turns to [|, [{|} turns to [|.  Can be disabled by setting
1536 `sp-autodelete-pair' to nil.
1537
1538 If the point is behind a closing pair or behind an opening pair delete
1539 it as a whole.  That is, {}| turns to {|, {| turns to |.  Can be
1540 disabled by setting `sp-autodelete-closing-pair' and
1541 `sp-autodelete-opening-pair' to nil.
1542
1543 If the last operation was a wrap and `sp-autodelete-wrap' is
1544 enabled, invoking this function will unwrap the expression, that
1545 is remove the just added wrapping.
1546
1547 (fn &optional ARG)
1548 (defalias 'sp-delete-pair #[256 "\203\364\306\211\307U\205\362    \205\362\n\203c \310=\203c`\f\311\312\"\262\f\311\313\"\262\f\311\314\"G\262\f\311\315\"G\262\\U\204GU\205^\316c\210\212b\210\317[!\210b\210\317!\210)\320\211\266\205\202\362`\306 \321\322\203\237\203\237@\203|\306\262\202\223\323\324@!!\203\223\325\326\324A!P!\203\223\211\262\210\211T\262A\262\202h\266\211\262\306 \321\322\203\324\203\324@\203\274\306\262\202\310\323\324A!!\203\310\211\262\210\211T\262A\262\202\250\266\211\262\306 \321\322\203    \203    @\203\361\306\262\202\375\323\324@!!\203\375\211\262\210\211T\262A\262\202\335\266\211\262\327 \203O\327T!\204O\327S!\203O\2038 \2038\317@GS[!\210\330\211\202\360\211\205\360!\205\360\317@GS[!\210\331\211\202\360\203\305\"\203\305\212\332@!)\212\333A!)\334!\334!\335 \336=\203y\336=\205\300\311\312\"\262=\205\300\311\313\"\262=\205\300\211\311\314\"\262@\232\205\300\211\311\315\"\262A\232\205\300\317\nZ!\210\317@GS[!\210\337\211\266\205\202\360\203\334 \203\334\317AGS[!\210\330\211\202\360\211\205\360!\205\360\317@GS[!\210\331\211\266\204)\207\211\307U\205\334    \205\334\n\203M \310=\203M`\f\311\312\"\262\f\311\313\"\262\f\311\314\"G\262\f\311\315\"G\262\\U\2045U\205L\316c\210\212b\210\317[!\210b\210\317!\210)\320\211\207`\306 \321\322\203\211\203\211@\203f\306\262\202}\323\324@!!\203}\325\326\324A!P!\203}\211\262\210\211T\262A\262\202R\266\211\262\306 \321\322\203\276\203\276@\203\246\306\262\202\262\323\324A!!\203\262\211\262\210\211T\262A\262\202\222\266\211\262\306 \321\322\203\363\203\363@\203\333\306\262\202\347\323\324@!!\203\347\211\262\210\211T\262A\262\202\307\266\211\262\327 \2039\327T!\2049\327S!\2039\203\" \203\"\317@GS[!\210\330\211\202\332\211\205\332!\205\332\317@GS[!\210\331\211\202\332\203\257\"\203\257\212\332@!)\212\333A!)\334!\334!\335 \336=\203c\336=\205\252\311\312\"\262=\205\252\311\313\"\262=\205\252\211\311\314\"\262@\232\205\252\211\311\315\"\262A\232\205\252\317\nZ!\210\317@GS[!\210\337\211\266\205\202\332\203\306 \203\306\317AGS[!\210\330\211\202\332\211\205\332!\205\332\317@GS[!\210\331\211\266\204\207" [case-fold-search smartparens-mode sp-autodelete-wrap sp-last-operation sp-last-wrapped-region sp-pair-list nil 1 sp-wrap-region plist-get :beg :end :op :cl "x" delete-char sp-delete-pair-wrap t 0 sp--looking-back sp--strict-regexp-quote sp--looking-at "[ \n    ]*" sp-point-in-string sp-delete-pair-closing sp-delete-pair-opening search-backward search-forward sp--get-context sp-get-sexp comment sp-delete-pair sp-autodelete-closing-pair sp-autodelete-opening-pair sp-autodelete-pair] 15 (#$ . 157162)])
1549 #@60 Like `looking-at', but always case sensitive.
1550
1551 (fn REGEXP)
1552 (defalias 'sp--looking-at #[257 "\203 \301\302!)\207\302!\207" [case-fold-search nil looking-at] 3 (#$ . 160711)])
1553 #@62 Like `looking-at-p', but always case sensitive.
1554
1555 (fn REGEXP)
1556 (defalias 'sp--looking-at-p #[257 "\203\302\211\303\304!)\262)\207\211\303\304!)\207" [case-fold-search inhibit-changing-match-data nil t looking-at] 4 (#$ . 160896)])
1557 #@346 Return non-nil if text before point matches regular expression REGEXP.
1558
1559 With optional argument LIMIT search only that many characters
1560 backward.  If LIMIT is nil, default to `sp-max-pair-length'.
1561
1562 If optional argument NON-GREEDY is t search for any matching
1563 sequence, not necessarily the longest possible.
1564
1565 (fn REGEXP &optional LIMIT NOT-GREEDY)
1566 (defalias 'sp--looking-back #[769 "\206\262    \203u\302\303`Z]`?\302\203d\212b\210\304 \305\306\307\310\311!\312\"\313$\216\204U`W\203U\212\314\315#)\203O\306\225U\203O\304 \262\202,\303u\210\202,)\210\211\205`\316!\210\315)\202q\212\317\320\321Q\315#)??\266\204)\207\303`Z]`?\302\203\314\212b\210\304 \305\306\307\310\311!\322\"\313$\216\204\275`W\203\275\212\314\315#)\203\267\306\225U\203\267\304 \262\202\224\303u\210\202\224)\210\211\205\310\316!\210\315)\202\331\212\317\320\321Q\315#)??\207" [sp-max-pair-length case-fold-search nil 1 match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 re-search-forward t set-match-data search-backward-regexp "\\(?:" "\\)\\=" [set-match-data evaporate]] 14 (#$ . 161141)])
1567 #@102 Same as `sp--looking-back' but do not change the match data.
1568
1569 (fn REGEXP &optional LIMIT NOT-GREEDY)
1570 (defalias 'sp--looking-back-p #[769 "\300 \301\302\303\304\305!\306\"\307$\216\310#)\207" [match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 sp--looking-back] 10 (#$ . 162305)])
1571 #@319 Works just like `search-backward-regexp', but returns the
1572 longest possible match.  That means that searching for
1573 "defun|fun" backwards would return "defun" instead of
1574 "fun", which would be matched first.
1575
1576 This is an internal function.  Only use this for searching for
1577 pairs!
1578
1579 (fn REGEXP &optional BOUND NOERROR COUNT)
1580 (defalias 'sp--search-backward-regexp #[1025 "\211\206\301\262\302 \206 \262\203L\303\211\304V\203G\305#\203@\304\225b\210\306!\2036\304\224b\262\202@\204@\307\310\"\210S\262\202\211\262)\207\303\304V\203~\305#\203w\304\225b\210\306!\203m\304\224b\262\202w\204w\307\310\"\210S\262\202M\211\207" [case-fold-search 1 sp--get-backward-bound nil 0 search-backward-regexp sp--looking-back error "Search failed: %s"] 10 (#$ . 162638)])
1581 #@106 Just like `search-forward-regexp', but always case sensitive.
1582
1583 (fn REGEXP &optional BOUND NOERROR COUNT)
1584 (defalias 'sp--search-forward-regexp #[1025 "\301 \206\262\203\302\303$)\207\303$\207" [case-fold-search sp--get-forward-bound nil search-forward-regexp] 9 (#$ . 163438)])
1585 #@182 Just like `sp--search-forward-regexp' but only accept results in same context.
1586
1587 The context at point is considered the reference context.
1588
1589 (fn REGEXP &optional BOUND NOERROR COUNT)
1590 (defalias 'sp--search-forward-in-context #[1025 "\300 \301\206\302\303\211W\2034\212\304#\211\262\203%\300 =\203)\203-b\210\211T\262\202    \266\207" [sp--get-context nil 1 0 sp--search-forward-regexp] 12 (#$ . 163738)])
1591 #@183 Just like `sp--search-backward-regexp' but only accept results in same context.
1592
1593 The context at point is considered the reference context.
1594
1595 (fn REGEXP &optional BOUND NOERROR COUNT)
1596 (defalias 'sp--search-backward-in-context #[1025 "\300 \301\206\302\303\211W\2034\212\304#\211\262\203%\300 =\203\203,b\210)\211T\262\202    \266\207" [sp--get-context nil 1 0 sp--search-backward-regexp] 12 (#$ . 164166)])
1597 #@154 Return the bounds of the string around POINT.
1598
1599 POINT defaults to `point'.
1600
1601 If the point is not inside a quoted string, return nil.
1602
1603 (fn &optional POINT)
1604 (defalias 'sp-get-quoted-string-bounds #[256 "\211\206`\262\212\211b\210\300 \3018\205)\3028\212\303`d\304\211\305&\210`)B\266\202\262)\207" [syntax-ppss 3 8 parse-partial-sexp nil syntax-table] 10 (#$ . 164597)])
1605 #@54 If the point is inside a comment, return its bounds.
1606 (defalias 'sp-get-comment-bounds #[0 "\300 \204 \301\302!\205\254\212\303\304 8\211\203\211b\210\210o\204?\300 \203'\305u\210\202\212\306 \210\301\307!)\203?\305y\310Y\203\311\210\202o\203H\300 \204K\311u\210`)\212m\204c\300 \204]\301\302!\203c\312u\210\202N`Sm\204\244\300 \204\244\301\302!\204\244\211fz\313=\203\203\211f\314=\203\244\315\316\312\317\"\320!@\"\310U\203\244\315\316\312\321\"\320!@\"\310U\203\244\305u\210\210`)B\266\202\207" [sp-point-in-comment looking-at "[[:space:]]+\\s<" 8 sp--syntax-ppss -1 beginning-of-line "^[[:space:]]+\\s<" 0 nil 1 62 10 logand lsh 18 syntax-after 19] 6 (#$ . 164982)])
1607 #@54 Get the bounds of string or comment the point is in.
1608 (defalias 'sp--get-string-or-comment-bounds #[0 "\300 \206\301 \207" [sp-get-quoted-string-bounds sp-get-comment-bounds] 1 (#$ . 165689)])
1609 #@73 Save the last match info.
1610
1611 (fn SEARCH-FN PATTERN BOUND RES BEG END STR)
1612 (defalias 'sp--search-and-save-match '(macro . #[1799 "\300\301\302\n\n\n\303BBBBE\304\301\305BB\301\306BB\301\307BB\257F\207" [progn setq funcall (t) when ((match-beginning 0)) ((match-end 0)) ((match-string 0))] 16 (#$ . 165889)]))
1613 #@517 Return non-nil if this match should be skipped.
1614
1615 This function uses two tests, one specified in
1616 `sp-navigate-skip-match' (this is global setting for all pairs in
1617 given major mode) and by a function specified in :skip-match
1618 property of the pair.
1619
1620 If you are calling this function in a heavy loop, you can supply
1621 the test functions as keyword arguments to speed up the lookup.
1622
1623 (fn MS MB ME &key (GLOBAL-SKIP (cdr (--first (memq major-mode (car it)) sp-navigate-skip-match))) (PAIR-SKIP (sp-get-pair ms :skip-match)))
1624 (defalias 'sp--skip-match-p #[899 "\302\303\"\206=\304\211\305\306\2036\2036@\203 \304\262\202*    @>\203*\211\262\210\211T\262A\262\202\f\266\211\262ADA@\302\307\"\206M\304\310\311\"DA@\211\203z\211@\312>\203c\211AA\262\202P\313>A@\203q\304\262\202P\314\315@\"\210\202P\210\316 \317\306\320\321\322!\323\"\324$\216\203\230#\206\244\205\244#)\262\207" [sp-navigate-skip-match major-mode plist-member :global-skip nil t 0 :pair-skip sp-get-pair :skip-match (:global-skip :pair-skip :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:global-skip :pair-skip)" match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3] 13 (#$ . 166217)])
1625 #@120 Test the last match using `sp--skip-match-p'.  The form should
1626 be a function call that sets the match data.
1627
1628 (fn FORM)
1629 (defalias 'sp--valid-initial-delimiter-p '(macro . #[257 "\300\301!\300\302!\303\304\305B\306\307\310BB\307\311\312\313\314 E\315BBD\316BBEDD\317\320\321\322\323\n\257DEE\207" [make-symbol "match" "pair-skip" and let* ((match-string 0)) or sp-get-pair (:skip-match) car --first equal (cdr it) (sp-pair-list) (:skip-match) not sp--skip-match-p (match-beginning 0) (match-end 0) :pair-skip] 16 (#$ . 167488)]))
1630 (put 'sp--valid-initial-delimiter-p 'edebug-form-spec '(form))
1631 #@113 Function used to test for escapes in lisp modes.
1632
1633 Non-nil return value means to skip the result.
1634
1635 (fn MS MB ME)
1636 (defalias 'sp--elisp-skip-match #[771 "\205W\300V\205W\212b\210\301 \302\303\304\305\306!\307\"\310$\216\311\312\300\313#\203-\311\314\310\313#?\206S\315 ?\205S\311\316\300\313#\205S\311\317\320\313#?\205S\311\321\320\313#?\205S\311\322\320\313#?)\262)\207" [1 match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 sp--looking-back "\\\\" t "\\?\\\\\\\\" sp-point-in-string-or-comment "\\?" "\\\\\\?" 2 "\\s_\\?" "\\sw\\?"] 10 (#$ . 168096)])
1637 #@17 
1638
1639 (fn MS MB ME)
1640 (defalias 'sp--backslash-skip-match #[771 "\205\212b\210\300\301\302\303#)\207" [sp--looking-back "\\\\" 1 t] 7 (#$ . 168709)])
1641 #@153 Find the nearest balanced pair expression after point.
1642
1643 The expressions considered are those delimited by pairs on
1644 `sp-pair-list'.
1645
1646 (fn &optional BACK)
1647 (defalias 'sp-get-paired-expression #[256 "\203\205\303\212\211\204\304\202\305\303    \306\307\203>\203>@\203(\303\262\2022\n@>\2032\211\262\210\211T\262A\262\202\266\211\262A\310 \203\222\311 \312 \212`eU?\205\214\313u\210\314`!@\315=\203f`\202\214\203t\311 \205\214`T\202\214\204\202\311 \203\202`T\202\214\204\212\211\205\214`T)\266\202\202\230\316 \205\230`\211\205\241\211b\210\317 \203\252\211A\202\253d\203\264@\202\265e\303\211\211\211\211\211\211\211\211\211\211\211\204^\320\321 !\203\325\202\327\306#\262\203\354\307\224\262    \307\225\262\322\307!\262\203^\212\203b\210\323\320 !\202    b\210\324\320 !)\203\301\325\n\n\326%\204\301\204X\203*\316 \202.\316`S!\203X\317 \211\203Q\203A\211@\202C\211A\211b\210m\203M\306\262\210\202T\306\262\210\202\301\306\262\202\301\205\201\303\307\203\215@\n@\232\204|\nA\232\203\201\211B\262\210\211T\262A\262\202f\266\211\237\262\262\327\330\"\262\327\331\"\262\332\"\262\262\203\303\307\203\334@\333@\"\204\313\333A\"\203\320\211B\262\210\211T\262A\262\202\264\266\211\237\262\262\332\"\262\334\327\330\"\"\262\334\327\331\"\"\262\202\254\335\303\306\307\203-\203-@\203\303\262\202!\f\232\262\210\211T\262A\262\202\266\211\262!\203G\306\262\n\262\f\203GGu\210\335\303\306\307\203r\203r@\203`\303\262\202f\f\232\262\210\211T\262A\262\202L\266\211\262!\203\221\303\262\n\262 \204\221G\206\216\336[u\210    \203\232\202\233\211\n\203\244\202\245\337\334\"!\f\203\264\304\202\265\305\336\203\277\340\202\300\341\203\312\202\314\342!\342! \343\334\344\345\"\"\307V\203\366 \204\366    \306#\262\203\307\224\262\307\225\262\322\307!\262\203\344\204$\203\212\313u\210\316 )\202!\316 \204\336\303\306\307\203S\203S@\203<\303\262\202G\211@\232\203G\211\262\210\211T\262A\262\202(\266\211\262A\325\326\"\346&\262\204\336\335\303\f\306\307\203\231\203\231@\203\207\303\262\202\215\232\262\210\211T\262A\262\202s\266\211\262!\203\247T\262\335\303 \306\307\203\323\203\323@\203\301\303\262\202\307\232\262\210\211T\262A\262\202\255\266\211\262!\203\336S\262\202\336\347 \204\355\350\351!\210\313\262\306\262\202\336\203\262\202\262\342!\262\204\307U\204$\347 \204 \350\351!\210\303\202\316S!\316!\2034\211\203?\316!\204L\211\203L\347 \204H\350\352!\210\303\202}\203U\202V\353\354\355\356\203i \202k\f\357\360\" \"\361\362# \"\257\f\262\262\266\213\266\223*\207\212\211\204\216\304\202\217\305\303    \306\307\203\275\203\275@\203\247\303\262\202\261\n@>\203\261\211\262\210\211T\262A\262\202\223\266\211\262A\310 \203\311 \312 \212`eU?\205 \313u\210\314`!@\315=\203\345`\202 \203\363\311 \205 `T\202 \204\311 \203`T\202 \204    \211\205 `T)\266\202\202\316 \205`\211\205 \211b\210\317 \203)\211A\202*d\2033@\2024e\303\211\211\211\211\211\211\211\211\211\211\211\204\335\320\321 !\203T\202V\306#\262\203k\307\224\262    \307\225\262\322\307!\262\203\335\212\203\200b\210\323\320 !\202\210b\210\324\320 !)\203@\325\n\n\326%\204@\204\327\203\251\316 \202\255\316`S!\203\327\317 \211\203\320\203\300\211@\202\302\211A\211b\210m\203\314\306\262\210\202\323\306\262\210\202@\306\262\202@\205    \303\307\203\f@\n@\232\204\373\nA\232\203\211B\262\210\211T\262A\262\202\345\266\211\237\262\262\327\330\"\262\327\331\"\262\332\"\262\262\203\201\303\307\203[@\333@\"\204J\333A\"\203O\211B\262\210\211T\262A\262\2023\266\211\237\262\262\332\"\262\334\327\330\"\"\262\334\327\331\"\"\262\202+\335\303\306\307\203\254\203\254@\203\232\303\262\202\240\f\232\262\210\211T\262A\262\202\206\266\211\262!\203\306\306\262\n\262\f\203\306Gu\210\335\303\306\307\203\361\203\361@\203\337\303\262\202\345\f\232\262\210\211T\262A\262\202\313\266\211\262!\203\303\262\n\262 \204G\206 \336[u\210    \203\202\211\n\203#\202$\337\334\"!\f\2033\304\2024\305\336\203>\340\202?\341\203I\202K\342!\342! \343\334\344\363\"\"\307V\203u \204u    \306#\262\203\205\307\224\262\307\225\262\322\307!\262\203c\204\243\203\236\212\313u\210\316 )\202\240\316 \204]\303\306\307\203\322\203\322@\203\273\303\262\202\306\211@\232\203\306\211\262\210\211T\262A\262\202\247\266\211\262A\325\326\"\346&\262\204]\335\303\f\306\307\203\203@\203\303\262\202\f\232\262\210\211T\262A\262\202\362\266\211\262!\203&T\262\335\303 \306\307\203R\203R@\203@\303\262\202F\232\262\210\211T\262A\262\202,\266\211\262!\203]S\262\202]\347 \204l\350\351!\210\313\262\306\262\202]\203\201\262\202\205\262\342!\262\204\226\307U\204\243\347 \204\237\350\351!\210\303\202\376\316S!\316!\203\263\211\203\276\316!\204\313\211\203\313\347 \204\307\350\352!\210\303\202\374\203\324\202\325\353\354\355\356\203\350 \202\352\f\357\360\" \"\361\362# \"\257\f\262\262\266\213\266\223)\207" [case-fold-search sp-navigate-skip-match major-mode nil sp--search-forward-regexp sp--search-backward-regexp t 0 sp--get-allowed-pair-list sp-point-in-comment sp-point-in-string -1 syntax-after 15 sp-point-in-string-or-comment sp--get-string-or-comment-bounds sp--get-allowed-regexp sp--get-pair-list match-string sp--looking-back-p sp--looking-at-p sp--skip-match-p :global-skip -map car cdr -difference -contains\? append ---truthy\? 1 sp--strict-regexp-opt eobp bobp substring-no-properties apply mapcar #[257 "\300\301\"\211\205B\300\302\"BD\207" [sp-get-pair :skip-match :close] 6 "\n\n(fn IT)"] :pair-skip minibufferp sp-message :unmatched-expression :delimiter-in-string :beg :end :op :cl :prefix sp--get-prefix :suffix sp--get-suffix #[257 "\300\301\"\211\205B\300\302\"BD\207" [sp-get-pair :skip-match :close] 6 "\n\n(fn IT)"]] 47 (#$ . 168864)])
1648 #@141 Find the next string-like delimiter, considering the escapes
1649 and the skip-match predicate.
1650
1651 (fn NEEDLE SEARCH-FN-F &optional LIMIT SKIP-FN)
1652 (defalias 'sp--find-next-stringlike-delimiter #[1026 "\301\211\204s\302#\203s\303 \304\305\306\307\310!\311\"\312$\216\313\305!\262\303 \304\305\306\307\310!\314\"\312$\216\212\305\224b\210\315\316\317\"\206L\320=\205L\321 ?\205L\315\322\323\"*\262\204n\324\305\224\305\225\325\206c\326\327\"\330\301&\204n\303 \262)\210\202\207" [major-mode nil t match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 match-string-no-properties [set-match-data evaporate] sp--looking-back-p "\\\\" 2 emacs-lisp-mode sp-point-in-string "?" 1 sp--skip-match-p :pair-skip sp-get-pair :skip-match :global-skip] 15 (#$ . 175294)])
1653 #@200 Find the nearest string-like expression after point.
1654
1655 String-like expression is expression enclosed with the same
1656 opening and closing delimiter, such as *...*, "...", `...` etc.
1657
1658 (fn &optional BACK)
1659 (defalias 'sp-get-stringlike-expression #[256 "\203\323\301\212\302 \204\303\202\304\203\303\202\304\305\301\211\211\211\211\211    \306\232?\205\317\307\n\n\"\205\317\310\305!\262\311!\262\n\312\313\"\262\314 \203Q\315 \262\202Z\316 \203Z\317 \262\212\307\n\320@$\203oT\262\202[)\321\322\"\305U\203\202\307\n    \301#\210\212\307\n\304@#\262\305\224\262)\211\205\234\307\n\323A#\262\305\225\262\211\205\317^\262]\262\266\324\325\326\n\327\f\330\331\"\332\333\"\257\f\266\212*\207\212\302 \204\336\303\202\337\304\203\347\303\202\350\304\305\301\211\211\211\211\211    \306\232?\205\234\307\n\n\"\205\234\310\305!\262\311!\262\n\312\313\"\262\314 \203\315 \262\202'\316 \203'\317 \262\212\307\n\320@$\203<T\262\202()\321\322\"\305U\203O\307\n    \301#\210\212\307\n\304@#\262\305\224\262)\211\205i\307\n\323A#\262\305\225\262\211\205\234^\262]\262\266\324\325\326\n\327\f\330\331\"\332\333\"\257\f\266\212)\207" [case-fold-search nil sp--get-stringlike-regexp sp--search-forward-regexp sp--search-backward-regexp 0 "" sp--find-next-stringlike-delimiter match-string-no-properties regexp-quote sp-get-pair :skip-match sp-point-in-string sp-get-quoted-string-bounds sp-point-in-comment sp-get-comment-bounds search-backward-regexp mod 2 search-forward-regexp :beg :end :op :cl :prefix sp--get-prefix :suffix sp--get-suffix] 25 (#$ . 176118)])
1660 #@381 Get a regexp matching text-mode string-like DELIMITERS.
1661
1662 Capture group 1 or 2 has the delimiter itself, depending on the
1663 direction (forward, backward).
1664
1665 If DIRECTION is :open, create a regexp matching opening only.
1666
1667 If DIRECTION is :close, create a regexp matching closing only.
1668
1669 If DIRECTION is nil, create a regexp matching both directions.
1670
1671 (fn DELIMITERS &optional DIRECTION)
1672 (defalias 'sp--textmode-stringlike-regexp #[513 "\300!\203 \301=\203\302\303\304\305\306\260\202\307\204!\310\202\"\307\203,\311=\2037\312\304\305\313\305\260\2028\307Q\207" [regexp-opt :open "\\(?:" "\\(?:\\`\\|[     \n ]\\)" "\\(" "\\)" "[^     \n ]\\)" "" "\\|" :close "\\(?:[^     \n ]" "\\(?:[     \n [:punct:]]\\|\\'\\)"] 11 (#$ . 177797)])
1673 #@133 Find the next string-like delimiter, considering the escapes
1674 and the skip-match predicate.
1675
1676 (fn NEEDLE SEARCH-FN-F &optional LIMIT)
1677 (defalias 'sp--find-next-textmode-stringlike-delimiter #[770 "\300\211\204T\301#\203T\302 \303\304\305\306\307!\310\"\311$\216\312\313!\203%\313\202&\314\315!\224\225\316\317\"\320\321\322\300&\204M\313U\203I\323\202J\324D\262\266)\210\202\211\207" [nil t match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 match-string 1 2 match-string-no-properties sp-get-pair :skip-match sp--skip-match-p :pair-skip :global-skip :open :close] 18 (#$ . 178539)])
1678 #@648 Find the nearest text-mode string-like expression.
1679
1680 If BACK is non-nil search in the backwards direction.
1681
1682 Text-mode string-like expression is one where the delimiters must
1683 be surrounded by whitespace from the outside.  For example,
1684
1685 foo *bar* baz
1686
1687 is a valid expression enclosed in ** pair, but
1688
1689 foo*bar*baz  OR  foo *bar*baz  OR  foo*bar* baz
1690
1691 are not.
1692
1693 This is the case in almost every markup language, and so we will
1694 adjust the parsing to only consider such pairs as delimiters.
1695 This makes the parsing much faster as it transforms the problem
1696 to non-stringlike matching and we can use a simple
1697 counting (stack) algorithm.
1698
1699 (fn &optional BACK)
1700 (defalias 'sp-get-textmode-stringlike-expression #[256 "\212`\300 \206\nedB\301\211\204ob\210\212\3021'\203!\301u\202#\303u0\202+\210\202,\210\304\305\306 \"\307!\204=\310\202>\311\204HA\202J@\312#\211\203f\211A\262\242\211\203_@\211\203X\211\313=\203m\310\202n\311\313=\203z\nA\202}\n@\307C\313=\203\212\314\202\213\313\"`\262\3151\340\204\250\313=\203\250GT\206\245\316[u\210\204\272\314=\203\272m\204\272\303u\210\203\312\314=\203\312GTu\210\205\334\313=\205\334o?\205\334\316u0\202\344\210\202\345\210`\312#\203S\313=\203em\203\375`\202\377`S]\202do\203\f`\202`T^\211^]\317\320\321 \322\323\324 \"\325\326\f\"\257\f\262\327\262\212\330\317\"b\210\331\332\330\320\"\327#)\262\203Q\301\262\301\262\266\266\202[\333\262    \210\202b\333\262\210\202i\333\262\266)\202\f\266\203)\207" [sp-get-comment-bounds nil (error) -1 -map car sp--get-allowed-stringlike-list sp--textmode-stringlike-regexp sp--search-forward-regexp sp--search-backward-regexp sp--find-next-textmode-stringlike-delimiter :open :close (error) 1 :beg :end :op :cl :prefix sp--get-prefix :suffix sp--get-suffix t plist-get re-search-forward "\n\n\\| " :no-more] 33 (#$ . 179195)])
1701 #@58 Test if we should use textmode stringlike parser or not.
1702 (defalias 'sp-use-textmode-stringlike-parser-p #[0 "\302\303\"\304\305\306\303\"\"\307\310\311\312\2035\2035@\203$\310\262\202)    =\262\210\211T\262A\262\202\266\211\262!\206B\313\314\"\207" [sp-navigate-use-textmode-stringlike-parser major-mode -filter symbolp -map cdr -remove ---truthy\? nil t 0 apply derived-mode-p] 10 (#$ . 181111)])
1703 #@316 Return a stringlike expression using stringlike or textmode parser.
1704
1705 DELIMITER is a candidate in case we performed a search before
1706 calling this function and we know it's the closest string
1707 delimiter to try.  This is purely a performance hack, do not rely
1708 on it when calling directly.
1709
1710 (fn &optional BACK DELIMITER)
1711 (defalias 'sp-get-stringlike-or-textmode-expression #[512 "\300 \203    \301!\207\211\203@\211G\302U\203@\303!z\304=\203@\305 \306=\203<\212\214~\210\307 \211\211A\262\242}\266\310!*\207\311!\207\310!\207" [sp-use-textmode-stringlike-parser-p sp-get-textmode-stringlike-expression 1 string-to-char 34 sp-point-in-string t sp-get-quoted-string-bounds sp-get-stringlike-expression sp-get-string] 8 (#$ . 181536)])
1712 #@349 Find the nearest balanced expression of any kind.
1713
1714 For markup and text modes a special, more efficient stringlike
1715 parser is available, see `sp-get-textmode-stringlike-expression'.
1716 By default, this is enabled in all modes derived from
1717 `text-mode'.  You can change it by customizing
1718 `sp-navigate-use-textmode-stringlike-parser'.
1719
1720 (fn &optional BACK)
1721 (defalias 'sp-get-expression #[256 "\300 \301 \204\f\302\202 \303\203eS\202dT\203!eS\202#dT\304\305\232\203.\202:\212\304\306#)\206:\262\305\232\203F\202|\212\307\")\211\205v\310\311!\262\312 \313\311\314\315\316!\317\"\320$\216\321!\210\203q\311\224\202s\311\225)\262\262\206|\262\204\211W\204\224\203\235V\203\235\322\323!B\202\244\324\325\"B\211\211A\262\242\211\205\211\322=\203\342 \204\306\326\327\"W\204\325 \203\342\326\330\"V\203\342\325\f\"\206\202\324=\203 \204\367\326\327\"W\204 \203\326\330\"V\203\323\f!\206\202\262\266\203\262\207" [sp--get-allowed-regexp sp--get-stringlike-regexp sp--search-forward-regexp sp--search-backward-regexp nil "" t sp--find-next-stringlike-delimiter match-string 0 match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 set-match-data :regular sp-get-paired-expression :string sp-get-stringlike-or-textmode-expression plist-get :beg :end] 16 (#$ . 182283)])
1722 #@1457 Find the nearest balanced expression that is after (before) point.
1723
1724 Search backward if BACK is non-nil.  This also means, if the
1725 point is inside an expression, this expression is returned.
1726
1727 If `major-mode' is member of `sp-navigate-consider-sgml-tags',
1728 sgml tags will also be considered as sexps in current buffer.
1729
1730 If the search starts outside a comment, all subsequent comments
1731 are skipped.
1732
1733 If the search starts inside a string or comment, it tries to find
1734 the first balanced expression that is completely contained inside
1735 the string or comment.  If no such expression exist, a warning is
1736 raised (for example, when you comment out imbalanced expression).
1737 However, if you start a search from within a string and the next
1738 complete sexp lies completely outside, this is returned.  Note
1739 that this only works in modes where strings and comments are
1740 properly defined via the syntax tables.
1741
1742 The return value is a plist with following keys:
1743
1744   :beg    - point in the buffer before the opening
1745   delimiter (ignoring prefix)
1746   :end    - point in the buffer after the closing delimiter
1747   :op     - opening delimiter
1748   :cl     - closing delimiter
1749   :prefix - expression prefix
1750   :suffix - expression suffix
1751
1752 However, you should never access this structure directly as it is
1753 subject to change.  Instead, use the macro `sp-get' which also
1754 provide shortcuts for many commonly used queries (such as length
1755 of opening/closing delimiter or prefix).
1756
1757 (fn &optional BACK)
1758 (defalias 'sp-get-sexp #[256 "\305 \210\203\277\306    \203\307!\202\275\n\203\310!\202\275 \f>\203\272\311!\211\203e\211\312\313\"\262\314\232\203e\211\312\315\"\312\313\"G\\`X\205R\312\316\"\312\317\"GZ`Y\262\203[\211\202\265\307!\206\265\211\202\265\204\214\212\320\314\306\321#\206sd)\312\315\"\262\206dW\203\214\307 \206\265\211\202\265\203\264\212\322\323\306\321#\206\232e)\312\316\"\262\206\246dV\203\264\307\321!\206\265\211\202\265\211\262\202\275\311!)\207    \203\307\307!\207\n\203\317\310!\207 \f>\203h\311!\211\203\211\312\313\"\262\314\232\203\211\312\315\"\312\313\"G\\`X\205\312\316\"\312\317\"GZ`Y\262\203 \211\202g\307!\206g\211\202g\204>\212\320\314\306\321#\206%d)\312\315\"\262\2061dW\203>\307 \206g\211\202g\203f\212\322\323\306\321#\206Le)\312\316\"\262\206XdV\203f\307\321!\206g\211\202g\211\207\311!\207" [case-fold-search sp-prefix-tag-object sp-prefix-pair-object major-mode sp-navigate-consider-sgml-tags sp--maybe-init nil sp-get-sgml-tag sp-get-paired-expression sp-get-expression plist-get :op "<" :beg :end :cl search-forward t search-backward ">"] 7 (#$ . 183690)])
1759 #@76 Get the beginning of hybrid sexp.
1760 See `sp-get-hybrid-sexp' for definition.
1761 (defalias 'sp--get-hybrid-sexp-beg #[0 "\212\300\301\262\302 \203 \303 \210`\304 \212\303 )\211\203\211\202\305\306D\262\300\307\305\"\262W\2034!\202}\211\205H\307\305\"V\205H\307\305\"X\262\203W\262\303 \262\2024\211\203k\211\307\310\"\307\311\"GZ\262\202}\307\310\"\307\312\"G\\!]\262\266\204\262)\207" [nil #[257 "\300 \203\207\301 \210`\207" [sp-point-in-blank-line back-to-indentation] 2 "\n\n(fn LB)"] sp-point-in-symbol sp-backward-sexp line-beginning-position :end 0 plist-get :beg :prefix :op] 10 (#$ . 186344)])
1762 #@29 Narrow to the current line.
1763 (defalias 'sp--narrow-to-line #[0 "\300 \301 }\207" [line-beginning-position line-end-position] 2 (#$ . 186990)])
1764 #@70 Get the end of hybrid sexp.
1765 See `sp-get-hybrid-sexp' for definition.
1766 (defalias 'sp--get-hybrid-sexp-end #[0 "\212\300\301\262\302 \203 \303 \210`\304 \212\305 )\211\203\211\202 \306dTD\262\300\307\306\"\262V\203>\310 \2038\202\242!\202\242\211\205R\307\306\"W\205R\307\306\"Y\262\203a\262\305 \262\202>\203p\307\311\"\262\202\307\311\"\307\312\"GZ^\262!\211b\210\313 \203\237\314!\314!U\203\227\304 \202\240b\210\304 \202\240\211\262\266\204\262)\207" [nil #[257 "\212\211b\210\214\300 \210\301\302!\210`*\207" [sp--narrow-to-line skip-syntax-backward " ."] 3 "\n\n(fn P)"] sp-point-in-symbol sp-backward-sexp line-end-position sp-forward-sexp :beg plist-get sp-point-in-blank-line :end :cl sp-point-in-comment line-number-at-pos] 11 (#$ . 187138)])
1767 #@110 Get the hybrid sexp suffix, which is any punctuation after
1768 the end, possibly preceded by whitespace.
1769
1770 (fn P)
1771 (defalias 'sp--get-hybrid-suffix #[257 "\212\211b\210\300\214\301 \210\302\303!\210\304\305!\204\202\302\306!\210`)\")\207" [buffer-substring-no-properties sp--narrow-to-line skip-syntax-forward " " looking-at "\\s." "."] 5 (#$ . 187947)])
1772 #@291 Return the hybrid sexp around point.
1773
1774 A hybrid sexp is defined as the smallest balanced region containing
1775 the point while not expanding further than the current line.  That is,
1776 any hanging sexps will be included, but the expansion stops at the
1777 enclosing list boundaries or line boundaries.
1778 (defalias 'sp-get-hybrid-sexp #[0 "\300 \301\302 \303\304\305\306\305\307\305\310\311\f!\257\f\207" [sp--get-hybrid-sexp-end :beg sp--get-hybrid-sexp-beg :end :op "" :cl :prefix :suffix sp--get-hybrid-suffix] 14 (#$ . 188309)])
1779 #@167 Return the balanced expression that wraps point at the same level.
1780
1781 With ARG, ascend that many times.  This function expects a positive
1782 argument.
1783
1784 (fn &optional ARG)
1785 (defalias 'sp-get-enclosing-sexp #[256 "\211\206\302\262\212\211\303\304\305V\203\311\203\311\303\262\304\262\306 \203$\307 \262`\310 \262\203I\311\312\"\262U\203I\311\313\"\262b\210T\262\202\211\203e\311\312\"\262W\203e\311\313\"\262b\210\202\211\203\211\311\312\"\262Y\203\211\310 \262\203e\311\313\"\262b\210\202e\210\211\203\302\203\266\311\312\"\262\311\312\"\262Y\203\266\311\313\"\262\311\313\"\262X\204\302\211\262\311\313\"\262b\210S\262\202 \204\321\204\325\202\314 \205\315 \212\211@b\210\316\303!\210`)\212Ab\210\317\303!\210`)\312\313\320\321\322\321\323    \257\n\266\203\266\203)\207" [sp-navigate-comments-as-sexps sp-comment-char 1 t nil 0 sp-point-in-string sp-get-string sp-get-sexp plist-get :beg :end sp-point-in-comment sp-get-comment-bounds sp-skip-backward-to-symbol sp-skip-forward-to-symbol :op "" :cl :prefix] 17 (#$ . 188836)])
1786 #@411 Return the information about expressions inside LST.
1787
1788 LST should be a data structure in format as returned by
1789 `sp-get-sexp'.
1790
1791 The return value is a list of such structures in order as they
1792 occur inside LST describing each expression, with LST itself
1793 prepended to the front.
1794
1795 If LST is nil, the list at point is used (that is the list
1796 following point after `sp-backward-up-sexp' is called).
1797
1798 (fn &optional LST)
1799 (defalias 'sp-get-list-items #[256 "\300\212\204\n\301 \262\2057\302\303\"\302\304\"G\\\262b\210`\302\305\"\262W\2032\306 B\262\202A\237B)\207" [nil sp-backward-up-sexp plist-get :beg :op :end sp-forward-sexp] 7 (#$ . 189948)])
1800 #@489 Get the prefix of EXPR.
1801
1802 Prefix is any continuous sequence of characters in "expression
1803 prefix" syntax class.  You can also specify a set of syntax code
1804 characters or a regexp for a specific major mode.  See
1805 `sp-sexp-prefix'.
1806
1807 The point is expected to be at the opening delimiter of the sexp
1808 and the prefix is searched backwards.
1809
1810 If the prefix property is defined for OP, the associated regexp
1811 is used to retrieve the prefix instead of the global setting.
1812
1813 (fn &optional (P (point)) OP)
1814 (defalias 'sp--get-prefix #[128 "\211\203 \211A\262\242\202`\211A\262\242\203#\305\306\307\310G\\D\"\210\203\330\311\212b\210\312\313\"\211\203B\314    \"\205\201\315\316!\202\201\317\n \"A\211\203x\211@\320=\203`\314A@!\203`\315\316!\202\211@\321=\203t\322A@!\210\323`\"\202\324\202\325 \210\323`\"\262b\210\316GW\203\321\326\327\"\204\315\326\311\f\330\316\203\302\203\302@\203\253\311\262\202\266\211A\232\203\266\211\262\210\211T\262A\262\202\227\266\211\262@\327\"\203\321\324\202\322\211\266\202*\202\204\212b\210\312\313\"\211\203\361\314    \"\2050\315\316!\2020\317\n \"A\211\203'\211@\320=\203\314A@!\203\315\316!\202.\211@\321=\203#\322A@!\210\323`\"\202.\324\202.\325 \210\323`\"\262b\210\316GW\203\200\326\327\"\204|\326\311\f\330\316\203q\203q@\203Z\311\262\202e\211A\232\203e\211\262\210\211T\262A\262\202F\266\211\262@\327\"\203\200\324\202\201\211\266\202)\207" [case-fold-search sp-max-prefix-length major-mode sp-sexp-prefix sp-pair-list signal wrong-number-of-arguments sp--get-prefix 2 nil sp-get-pair :prefix sp--looking-back match-string-no-properties 0 assoc regexp syntax skip-syntax-backward buffer-substring-no-properties "" backward-prefix-chars sp--do-action-p navigate t] 13 (#$ . 190612)])
1815 #@389 Get the suffix of EXPR.
1816
1817 Suffix is any continuous sequence of characters in the
1818 "punctuation suffix" syntax class.  You can also specify a set
1819 of syntax code characters or a regexp for a specific major mode.
1820 See `sp-sexp-suffix'.
1821
1822 If the suffix property is defined for OP, the associated regexp
1823 is used to retrieve the suffix instead of the global setting.
1824
1825 (fn &optional (P (point)) OP)
1826 (defalias 'sp--get-suffix #[128 "\211\203 \211A\262\242\202`\211A\262\242\203#\304\305\306\307G\\D\"\210\203\330\310\212b\210\311\312\"\211\203A\313!\205\201\314\315!\202\201\316    \n\"A\211\203w\211@\317=\203_\313A@!\203_\314\315!\202\211@\320=\203s\321A@!\210\322`\"\202\323\202\321\324!\210\322`\"\262b\210\315GW\203\321\325\326\"\204\315\325\310 \327\315\203\302\203\302@\203\253\310\262\202\266\211A\232\203\266\211\262\210\211T\262A\262\202\227\266\211\262@\326\"\203\321\323\202\322\211\266\202*\202\204\212b\210\311\312\"\211\203\360\313!\2050\314\315!\2020\316    \n\"A\211\203&\211@\317=\203\313A@!\203\314\315!\202.\211@\320=\203\"\321A@!\210\322`\"\202.\323\202.\321\324!\210\322`\"\262b\210\315GW\203\200\325\326\"\204|\325\310 \327\315\203q\203q@\203Z\310\262\202e\211A\232\203e\211\262\210\211T\262A\262\202F\266\211\262@\326\"\203\200\323\202\201\211\266\202)\207" [case-fold-search major-mode sp-sexp-suffix sp-pair-list signal wrong-number-of-arguments sp--get-suffix 2 nil sp-get-pair :suffix sp--looking-at match-string-no-properties 0 assoc regexp syntax skip-syntax-forward buffer-substring-no-properties "" "." sp--do-action-p navigate t] 13 (#$ . 192430)])
1827 #@342 Find the nearest symbol that is after point, or before point if BACK is non-nil.
1828
1829 This also means, if the point is inside a symbol, this symbol is
1830 returned.  Symbol is defined as a chunk of text recognized by
1831 `sp-forward-symbol'.
1832
1833 The return value is a plist with the same format as the value
1834 returned by `sp-get-sexp'.
1835
1836 (fn &optional BACK)
1837 (defalias 'sp-get-symbol #[256 "\300 \210\301\211\211\212\203(\302 \210`eU\203\303\262\304\305!\210`\262\304\306!\210`\262\202B\307 \210`dU\2034\303\262\304\306!\210`\262\304\305!\210`\262)\211?\205\\\310\311\312\313\314\313\315\316\f!\317\320 !\257\f\207" [sp--maybe-init nil sp-skip-backward-to-symbol t sp-forward-symbol -1 1 sp-skip-forward-to-symbol :beg :end :op "" :cl :prefix sp--get-prefix :suffix sp--get-suffix] 17 (#$ . 194109)])
1838 #@181 Return the `sp-get-sexp' format info about the string.
1839
1840 This function simply transforms BOUNDS, which is a cons (BEG
1841 . END) into format compatible with `sp-get-sexp'.
1842
1843 (fn BOUNDS)
1844 (defalias 'sp--get-string #[257 "\300@f!\300A\206\f`Sf!\232\2052\301@\302A\303\304\305\306\f@\f\"\307\310A \"\257\f\207" [char-to-string :beg :end :op :cl :prefix sp--get-prefix :suffix sp--get-suffix] 17 (#$ . 194916)])
1845 #@436 Find the nearest string after point, or before if BACK is non-nil.
1846
1847 This also means if the point is inside a string, this string is
1848 returned.  If there are another symbols between point and the
1849 string, nil is returned.  That means that this function only
1850 return non-nil if the string is the very next meaningful
1851 expression.
1852
1853 The return value is a plist with the same format as the value
1854 returned by `sp-get-sexp'.
1855
1856 (fn &optional BACK)
1857 (defalias 'sp-get-string #[256 "\300 \210\301 \203\f\302!\207\303 \203\304 \305!\207\212\306!\210\304 \211\205%\305!\262)\207" [sp--maybe-init sp-point-in-comment sp-get-stringlike-expression sp-point-in-string sp-get-quoted-string-bounds sp--get-string sp-skip-into-string] 4 (#$ . 195340)])
1858 #@112 Get the whitespace around point.
1859
1860 Whitespace here is defined as any of the characters: space, tab
1861 and newline.
1862 (defalias 'sp-get-whitespace #[0 "\300\212\301\302x\210`)\303\212\301\302w\210`)\304\305\306\305\307\305\310\305\257\f\207" [:beg "     \n" nil :end :op "" :cl :prefix :suffix] 12 (#$ . 196084)])
1863 #@14 
1864
1865 (fn MATCH)
1866 (defalias 'sp--sgml-get-tag-name #[257 "\211\300\301O\302\232\203\211\301\303O\202\211\300\303O\304\305\"@\207" [1 2 "/" nil split-string "\\( \\|>\\)"] 5 (#$ . 196394)])
1867 #@12 
1868
1869 (fn TAG)
1870 (defalias 'sp--sgml-opening-p #[257 "\211\300\301O\302\232?\207" [1 2 "/"] 4 (#$ . 196589)])
1871 #@77 Return non-nil if tag should be ignored in search, nil otherwise.
1872
1873 (fn TAG)
1874 (defalias 'sp--sgml-ignore-tag #[257 "\211\300\235\207" [("!--" "!DOCTYPE")] 3 (#$ . 196699)])
1875 #@23 
1876
1877 (fn &optional BACK)
1878 (defalias 'sp-get-sgml-tag #[256 "\301 \210\203H\302\212\211\204\303\202\304\302\211\211\211\211\211\211\305\302\306#\205D\307\310\311!!\262\312!\262\313!?\205D\314P\262\315!\211\203J\303\202K\304\316\212 \204a`\262\304\317\302\306#\210`\262\202m`\262\320\321\302\306#\210`\262) \204~\204~\311\224b\210\202\213 \203\213\203\213\311\225b\210\211\311V\203\314\302\306#\203\306\315\310\311!!\203\264\203\255\211T\262\202\213\211S\262\202\213\203\277\211S\262\202\213\211T\262\202\213\322\262\202\213\211\322=\203\332\323\324!\210\302\202B\212\203\357\311\224\262\320\321\302\306#\210`\262\202\373`\262\320\321\302\306#\210`\262)\325\"\325\"\326\203    \202\327\203\202!\n\330    \203,\202-\331 \2038\202:\332\333\334\333\257\f\266\202\266\203\266\210*\207\212\211\204Q\303\202R\304\302\211\211\211\211\211\211\305\302\306#\205\203\307\310\311!!\262\312!\262\313!?\205\203\314P\262\315!\211\203\211\303\202\212\304\316\212 \204\240`\262\304\317\302\306#\210`\262\202\254`\262\320\321\302\306#\210`\262) \204\275\204\275\311\224b\210\202\312 \203\312\203\312\311\225b\210\211\311V\203 \302\306#\203\315\310\311!!\203\363\203\354\211T\262\202\312\211S\262\202\312\203\376\211S\262\202\312\211T\262\202\312\322\262\202\312\211\322=\203\323\324!\210\302\202\201\212\203.\311\224\262\320\321\302\306#\210`\262\202:`\262\320\321\302\306#\210`\262)\325\"\325\"\326\203Q    \202S\327\203^\202`\n\330    \203k\202l\331 \203w\202y\332\333\334\333\257\f\266\202\266\203\266\210)\207" [case-fold-search sp--maybe-init nil sp--search-forward-regexp search-backward-regexp "</?.*?\\s-?.*?>" t substring-no-properties match-string 0 sp--sgml-get-tag-name sp--sgml-ignore-tag "</?" sp--sgml-opening-p 1 "<" search-forward-regexp ">" -1 sp-message :no-matching-tag buffer-substring-no-properties :beg :end :op :cl :prefix "" :suffix] 26 (#$ . 196876)])
1879 #@456 Compute the "end-delimiter" closure of set PAIRS.
1880
1881 PAIRS can be:
1882 - single pair ID
1883 - single cons with opening and closing delimiter
1884 - list of pair IDs
1885 - list of conses of opening and closing delimiters
1886
1887 For example, if we have pairs (if . end) and (def . end), then
1888 the closure of "if" pair are both of these because they share
1889 the closing delimiter.  Therefore, in the navigation functions,
1890 both have to be considered by the parser.
1891
1892 (fn PAIRS PAIR-LIST)
1893 (defalias 'sp--end-delimiter-closure #[514 "\300C!\211@:\203\301\302\"\202\211\303\304\2033@\211@\235\203'\211B\262\210\211T\262A\262\202\266\211\237\262\305\306\307\310\311\312    !\313\"\314\315%\"\207" [-flatten -map car nil 0 -mapcat make-byte-code 257 "\301\300\302\203\"@AA\232\203\211B\262\210\211T\262A\262\202\266\211\237\207" vconcat vector [nil 0] 7 "\n\n(fn X)"] 12 (#$ . 198931)])
1894 #@296 Call the FUNCTION restricted to PAIRS.
1895
1896 PAIRS is either an opening delimiter of a list of opening
1897 delimiters.
1898
1899 FUNCTION is a function symbol.
1900
1901 For example, you can restrict function `sp-down-sexp' to the
1902 pair ("{" . "}") for easier navigation of blocks in C-like
1903 languages.
1904
1905 (fn PAIRS FUNCTION)
1906 (defalias 'sp-restrict-to-pairs #[514 "\301C!\302\303\203%@\211@\235\203\211B\262\210\211T\262A\262\202\266\211\237\262\304\"\305!)\207" [sp-pair-list -flatten nil 0 sp--end-delimiter-closure call-interactively] 9 (#$ . 199822)])
1907 #@532 Call the FUNCTION restricted to OBJECT.
1908
1909 OBJECT is one of following symbols (you have to quote it!):
1910 - `sp-prefix-pair-object'
1911 - `sp-prefix-tag-object'
1912 - `sp-prefix-symbol-object'
1913
1914 This function will enable this prefix and then call FUNCTION.
1915
1916 FUNCTION is a function symbol.
1917
1918 This function is equivalent to doing:
1919
1920   (let ((sp-prefix-object t))
1921     (call-interactively function))
1922
1923 For example, you can restrict function `sp-forward-sexp' to just
1924 the pairs for easier navigation of blocks in C-like languages.
1925
1926 (fn OBJECT FUNCTION)
1927 (defalias 'sp-restrict-to-object #[514 "\211J\300\301\302\303\304\"\305\"\306$\216\307L\210\310!)\207" [make-byte-code 0 "\300\301L\207" vconcat vector [] 2 t call-interactively] 11 (#$ . 200375)])
1928 #@605 Return an interactive lambda that calls FUNCTION restricted to PAIRS.
1929
1930 See `sp-restrict-to-pairs'.
1931
1932 This function implements a "decorator pattern", that is, you
1933 can apply another scoping function to the output of this function
1934 and the effects will added together. In particular, you can
1935 combine it with:
1936
1937 - `sp-restrict-to-object-interactive'
1938
1939 You can also bind the output of this function directly to a key, like:
1940
1941   (global-set-key (kbd ...) (sp-restrict-to-pairs-interactive "{" 'sp-down-sexp))
1942
1943 This will be a function that descends down only into { } pair,
1944 ignoring all others.
1945
1946 (fn PAIRS FUNCTION)
1947 (defalias 'sp-restrict-to-pairs-interactive #[514 "\300\301\302\303\304\"\305\"\306\307\310&\207" [make-byte-code 256 "\302\300\301\"\207" vconcat vector [sp-restrict-to-pairs] 4 "\n\n(fn &optional ARG)" "P"] 9 (#$ . 201118)])
1948 #@709 Return an interactive lambda that calls FUNCTION restricted to OBJECT.
1949
1950 See `sp-restrict-to-object'.
1951
1952 This function implements a "decorator pattern", that is, you
1953 can apply another scoping function to the output of this function
1954 and the effects will added together. In particular, you can
1955 combine it with:
1956
1957 - `sp-restrict-to-pairs-interactive'
1958
1959 You can also bind the output of this function directly to a key, like:
1960
1961   (global-set-key (kbd ...) (sp-restrict-to-object-interactive
1962                              'sp-prefix-pair-object
1963                              'sp-forward-sexp))
1964
1965 This will be a function that navigates only by using paired
1966 expressions, ignoring strings and sgml tags.
1967
1968 (fn OBJECT FUNCTION)
1969 (defalias 'sp-restrict-to-object-interactive #[514 "\300\301\302\303\304\"\305\"\306\307\310&\207" [make-byte-code 256 "\302\300\301\"\207" vconcat vector [sp-restrict-to-object] 4 "\n\n(fn &optional ARG)" "P"] 9 (#$ . 201961)])
1970 #@400 Read the command and invoke it on the next tag object.
1971
1972 If you specify a regular emacs prefix argument this is passed to
1973 the executed command.  Therefore, executing
1974 "\[universal-argument] 2 \[sp-prefix-tag-object] \[sp-forward-sexp]" will move two tag
1975 expressions forward, ignoring possible symbols or paired
1976 expressions inbetween.
1977
1978 Tag object is anything delimited by sgml tag.
1979
1980 (fn &optional ARG)
1981 (defalias 'sp-prefix-tag-object #[256 "\301\302\303\"\304!\303\305!\203\306!\202\307!)\207" [sp-prefix-tag-object read-key-sequence "" t key-binding commandp call-interactively execute-kbd-macro] 5 (#$ . 202910) "P"])
1982 #@401 Read the command and invoke it on the next pair object.
1983
1984 If you specify a regular emacs prefix argument this is passed to
1985 the executed command.  Therefore, executing
1986 "\[universal-argument] 2 \[sp-prefix-pair-object] \[sp-forward-sexp]" will move two paired
1987 expressions forward, ignoring possible symbols inbetween.
1988
1989 Pair object is anything delimited by pairs from `sp-pair-list'.
1990
1991 (fn &optional ARG)
1992 (defalias 'sp-prefix-pair-object #[256 "\301\302\303\"\304!\303\305!\203\306!\202\307!)\207" [sp-prefix-pair-object read-key-sequence "" t key-binding commandp call-interactively execute-kbd-macro] 5 (#$ . 203543) "P"])
1993 #@387 Read the command and invoke it on the next pair object.
1994
1995 If you specify a regular emacs prefix argument this is passed to
1996 the executed command.  Therefore, executing
1997 "\[universal-argument] 2 \[sp-prefix-symbol-object] \[sp-forward-sexp]" will move two symbols
1998 forward, ignoring any structure.
1999
2000 Symbol is defined as a chunk of text recognized by
2001 `sp-forward-symbol'.
2002
2003 (fn &optional ARG)
2004 (defalias 'sp-prefix-symbol-object #[256 "\301\302\303\"\304!\303\305!\203\306!\202\307!)\207" [sp-prefix-symbol-object read-key-sequence "" t key-binding commandp call-interactively execute-kbd-macro] 5 (#$ . 204179) "P"])
2005 #@154 Execute the command keeping the point fixed.
2006
2007 If you specify a regular emacs prefix argument this is passed to
2008 the executed command.
2009
2010 (fn &optional ARG)
2011 (defalias 'sp-prefix-save-excursion #[256 "\300\301\302\"\303!i\304 \212\305!\203\306!\210\202\307!\210)\310\"\266\202\207" [read-key-sequence "" t key-binding sp--current-indentation commandp call-interactively execute-kbd-macro sp--back-to-indentation] 8 (#$ . 204805) "P"])
2012 #@286 Find next thing after point, or before if BACK is non-nil.
2013
2014 Thing is either symbol (`sp-get-symbol'),
2015 string (`sp-get-string') or balanced expression recognized by
2016 `sp-get-sexp'.
2017
2018 If `sp-navigate-consider-symbols' is nil, only balanced
2019 expressions are considered.
2020
2021 (fn &optional BACK)
2022 (defalias 'sp-get-thing #[256 "\306 \210\203\215\307    \203\310!\202\213\n\203\311!\202\213 \203'\312!\202\213\211\203M\f\2045\313\314!\202\213\212\315 \203A\316\314!\202I\317\314\307\314#\210 4>\203`\320\321!\204Z\322\321!\203`\310\314!\206I\320\323\324 !\307\"\203\302\325\326!\327\330\"\206\255\327\3075\314\326\203\245\203\245@\203\216\307\262\202\231\211A\232\203\231\211\262\210\211T\262A\262\202z\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\302\313\314!\202I\320\333\324 !\307\"\203$\325\326!\327\330\"\206\327\3075\314\326\203\203@\203\360\307\262\202\373\211A\232\203\373\211\262\210\211T\262A\262\202\334\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203$\313\314!\202I\334\335`S!!\336=\203]\337`S!\204]\340 \314=\203W\212\214~\210\341 \211\211A\262\242}\266\342\314!*\202I\316\314!\202I\320\343 \307\"\203\275\325\326!\327\330\"\206\250\327\3075\314\326\203\240\203\240@\203\211\307\262\202\224\211A\232\203\224\211\262\210\211T\262A\262\202u\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\275\344\314!\202I\312\314!\211\205G\212\211\345\346\"b\266\347\333\324 !!\203E\325\326!\327\330\"\206\327\3075\314\326\203\203@\203\372\307\262\202\211A\232\203\211\262\210\211T\262A\262\202\346\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203E\325\326!\350`\"\211\203?\211\351\232\204?\313\314!\202@\266\202\202F\211)\262)\202\213\f\204W\313\307!\202\213\212\315 \203c\316\307!\202\212\352\314\307\314#\210 4>\203\212\322\353!\204\205\320\354`\355Z\"\203\212\326\224b\203\212\310 \206\212\347\333\324 !!\203\353\325\326!\327\330\"\206\326\327\3075\314\326\203\316\203\316@\203\267\307\262\202\302\211A\232\203\302\211\262\210\211T\262A\262\202\243\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\353\313\307!\202\212\347\323\324 !!\203L\325\326!\327\330\"\2067\327\3075\314\326\203/\203/@\203\307\262\202#\211A\232\203#\211\262\210\211T\262A\262\202\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203L\313\307!\202\212\334\335`!!\336=\203\202\337 \204\202\340 \314=\203|\212\214~\210\341 \211\211A\262\242}\266\342\307!*\202\212\316\307!\202\212\347\343 !\203\341\325\326!\327\330\"\206\314\327\3075\314\326\203\304\203\304@\203\255\307\262\202\270\211A\232\203\270\211\262\210\211T\262A\262\202\231\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\341\344\307!\202\212\312\307!\211\205\365\211\356\345\357\"\345\346\"\"\262`\205\210\360\333\361\362!!\307\314#\203\207\325\326!\327\330\"\206I\327\3075\314\326\203A\203A@\203*\307\262\2025\211A\232\2035\211\262\210\211T\262A\262\202\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\207\325\326!\211G\206a\363[u\210\350`\"\211\203\201\211\351\232\204\201`GZY\203\201\313\307!\202\202\266\202\202\210\266\203))\207    \203\225\310!\207\n\203\235\311!\207 \203\245\312!\207\211\203\307\f\204\261\313\314!\207\212\315 \203\275\316\314!\202\305\317\314\307\314#\210 4>\203\334\320\321!\204\326\322\321!\203\334\310\314!\206\305\320\323\324 !\307\"\203>\325\326!\327\330\"\206)\327\3075\314\326\203!\203!@\203\n\307\262\202\211A\232\203\211\262\210\211T\262A\262\202\366\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203>\313\314!\202\305\320\333\324 !\307\"\203\240\325\326!\327\330\"\206\213\327\3075\314\326\203\203\203\203@\203l\307\262\202w\211A\232\203w\211\262\210\211T\262A\262\202X\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\240\313\314!\202\305\334\335`S!!\336=\203\331\337`S!\204\331\340 \314=\203\323\212\214~\210\341 \211\211A\262\242}\266\342\314!*\202\305\316\314!\202\305\320\343 \307\"\2039\325\326!\327\330\"\206$\327\3075\314\326\203\203@\203\307\262\202\211A\232\203\211\262\210\211T\262A\262\202\361\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\2039\344\314!\202\305\312\314!\211\205\303\212\211\345\346\"b\266\347\333\324 !!\203\301\325\326!\327\330\"\206\225\327\3075\314\326\203\215\203\215@\203v\307\262\202\201\211A\232\203\201\211\262\210\211T\262A\262\202b\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\301\325\326!\350`\"\211\203\273\211\351\232\204\273\313\314!\202\274\266\202\202\302\211)\262)\207\f\204\317\313\307!\207\212\315 \203\333\316\307!\202    \352\314\307\314#\210 4>\203\322\353!\204\375\320\354`\355Z\"\203\326\224b\203\310 \206    \347\333\324 !!\203c\325\326!\327\330\"\206N\327\3075\314\326\203F\203F@\203/\307\262\202:\211A\232\203:\211\262\210\211T\262A\262\202\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203c\313\307!\202    \347\323\324 !!\203\304\325\326!\327\330\"\206\257\327\3075\314\326\203\247\203\247@\203\220\307\262\202\233\211A\232\203\233\211\262\210\211T\262A\262\202|\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\304\313\307!\202    \334\335`!!\336=\203\372\337 \204\372\340 \314=\203\364\212\214~\210\341 \211\211A\262\242}\266\342\307!*\202    \316\307!\202    \347\343 !\203Y\325\326!\327\330\"\206D\327\3075\314\326\203<\203<@\203%\307\262\2020\211A\232\2030\211\262\210\211T\262A\262\202\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203Y\344\307!\202    \312\307!\211\205m\211\356\345\357\"\345\346\"\"\262`\205    \360\333\361\362!!\307\314#\203\377\325\326!\327\330\"\206\301\327\3075\314\326\203\271\203\271@\203\242\307\262\202\255\211A\232\203\255\211\262\210\211T\262A\262\202\216\266\211\262@\330\"\331\326\224\326\225\332%?\266\202\203\377\325\326!\211G\206\331\363[u\210\350`\"\211\203\371\211\351\232\204\371`GZY\203\371\313\307!\202\372\266\202\202    \266\203)\207" [case-fold-search sp-prefix-tag-object sp-prefix-pair-object sp-prefix-symbol-object sp-navigate-consider-symbols major-mode sp--maybe-init nil sp-get-sgml-tag sp-get-paired-expression sp-get-symbol sp-get-sexp t sp-point-in-empty-string sp-get-string sp-skip-backward-to-symbol sp--looking-back ">" looking-at sp--get-closing-regexp sp--get-allowed-pair-list match-string 0 sp-get-pair :skip-match sp--skip-match-p :pair-skip sp--get-opening-regexp syntax-class syntax-after 7 sp-char-is-escaped-p sp-point-in-string sp-get-quoted-string-bounds sp-get-stringlike-expression sp--get-stringlike-regexp sp-get-expression plist-get :end sp--looking-at sp--get-prefix "" sp-skip-forward-to-symbol "<" "</?" 2 buffer-substring-no-properties :beg sp--search-forward-regexp sp--get-pair-list-context navigate 1 sp-navigate-consider-sgml-tags sp-pair-list] 13 (#$ . 205252)])
2023 #@191 Make text outside current balanced expression invisible.
2024 A numeric arg specifies to move up by that many enclosing expressions.
2025
2026 See also `narrow-to-region' and `narrow-to-defun'.
2027
2028 (fn ARG)
2029 (defalias 'sp-narrow-to-sexp #[257 "\300!\211\205\211\301\302\"\301\303\"GZ\301\304\"}\262\207" [sp-get-enclosing-sexp plist-get :beg :prefix :end] 7 (#$ . 212421) "p"])
2030 #@559 Move forward across one balanced expression.
2031
2032 With ARG, do it that many times.  Negative arg -N means move
2033 backward across N balanced expressions.  If there is no forward
2034 expression, jump out of the current one (effectively doing
2035 `sp-up-sexp').
2036
2037 With `sp-navigate-consider-symbols' symbols and strings are also
2038 considered balanced expressions.
2039
2040 Examples: (prefix arg in comment)
2041
2042   |(foo bar baz)   -> (foo bar baz)|
2043
2044   (|foo bar baz)   -> (foo| bar baz)
2045
2046   (|foo bar baz)   -> (foo bar| baz) ;; 2
2047
2048   (foo (bar baz|)) -> (foo (bar baz)|)
2049
2050 (fn &optional ARG)
2051 (defalias 'sp-forward-sexp #[256 "\211\206\300\262\211\301W\203\302[!\207\211\303\211\2036\301V\2036\304 \262S\262\211\203\211\305\306\"\262b\210\202\207" [1 0 sp-backward-sexp t sp-get-thing plist-get :end] 7 (#$ . 212795) "^p"])
2052 (put 'sp-forward-sexp 'CUA 'move)
2053 #@576 Move backward across one balanced expression (sexp).
2054
2055 With ARG, do it that many times.  Negative arg -N means move
2056 forward across N balanced expressions.  If there is no previous
2057 expression, jump out of the current one (effectively doing
2058 `sp-backward-up-sexp').
2059
2060 With `sp-navigate-consider-symbols' symbols and strings are also
2061 considered balanced expressions.
2062
2063 Examples: (prefix arg in comment)
2064
2065   (foo bar baz)|   -> |(foo bar baz)
2066
2067   (foo| bar baz)   -> (|foo bar baz)
2068
2069   (foo bar| baz)   -> (|foo bar baz) ;; 2
2070
2071   (|(foo bar) baz) -> ((|foo bar) baz)
2072
2073 (fn &optional ARG)
2074 (defalias 'sp-backward-sexp #[256 "\211\206\300\262\211\301W\203\302[!\207\211\303\211\2037\301V\2037\304\303!\262S\262\211\203\211\305\306\"\262b\210\202\207" [1 0 sp-forward-sexp t sp-get-thing plist-get :beg] 7 (#$ . 213643) "^p"])
2075 (put 'sp-backward-sexp 'CUA 'move)
2076 #@875 Move forward to the beginning of next balanced expression.
2077
2078 With ARG, do it that many times.  If there is no next expression
2079 at current level, jump one level up (effectively doing
2080 `sp-backward-up-sexp').  Negative arg -N means move to the
2081 beginning of N-th previous balanced expression.
2082
2083 If `sp-navigate-interactive-always-progress-point' is non-nil,
2084 and this is called interactively, the point will move to the
2085 first expression in forward direction where it will end up
2086 greater than the current location.
2087
2088 With `sp-navigate-consider-symbols' symbols and strings are also
2089 considered balanced expressions.
2090
2091 Examples:
2092
2093   ((foo) |bar (baz quux)) -> ((foo) bar |(baz quux))
2094
2095   ((foo) bar |(baz quux)) -> |((foo) bar (baz quux))
2096
2097 and with non-nil `sp-navigate-interactive-always-progress-point'
2098
2099   (f|oo bar) -> (foo |bar)
2100
2101   ((fo|o) (bar)) -> ((foo) |(bar))
2102
2103 (fn &optional ARG)
2104 (defalias 'sp-next-sexp #[256 "\211\206\301\262\211\302X\203\303[!\207\203J\304\305!\203J\302W\203?`\306 \211\2052\211\307\310\"\262X\262\204#\210\211S\262\202\311\312!\307\310\"\262b\207\211\301U\203v\311 \211\205u`\307\310\"\262U\203k\306\313!\210\303 \202u\211\307\310\"\262b\210\211\207\306!\210\303 \207" [sp-navigate-interactive-always-progress-point 1 0 sp-backward-sexp called-interactively-p any sp-forward-sexp plist-get :beg sp-get-thing t 2] 7 (#$ . 214513) "^p"])
2105 (put 'sp-next-sexp 'CUA 'move)
2106 #@871 Move backward to the end of previous balanced expression.
2107
2108 With ARG, do it that many times.  If there is no next
2109 expression at current level, jump one level up (effectively
2110 doing `sp-up-sexp').  Negative arg -N means move to the end of
2111 N-th following balanced expression.
2112
2113 With `sp-navigate-consider-symbols' symbols and strings are also
2114 considered balanced expressions.
2115
2116 If `sp-navigate-interactive-always-progress-point' is non-nil,
2117 and this is called interactively, the point will move to the
2118 first expression in backward direction where it will end up
2119 less than the current location.
2120
2121 Examples:
2122
2123   ((foo) bar| (baz quux)) -> ((foo)| bar (baz quux))
2124
2125   ((foo)| bar (baz quux)) -> ((foo) bar (baz quux))|
2126
2127 and if `sp-navigate-interactive-always-progress-point' is non-nil
2128
2129   (foo b|ar baz) -> (foo| bar baz)
2130
2131   (foo (b|ar baz)) -> (foo| (bar baz))
2132
2133 (fn &optional ARG)
2134 (defalias 'sp-previous-sexp #[256 "\211\206\301\262\211\302X\203\303[!\207\203C\302W\2039`\304 \211\205,\211\305\306\"\262Y\262\204\210\211S\262\202\307 \305\306\"\262b\207\211\301U\203p\307\310!\211\205o`\305\306\"\262U\203e\304\311!\210\303 \202o\211\305\306\"\262b\210\211\207\304!\210\303 \207" [sp-navigate-interactive-always-progress-point 1 0 sp-forward-sexp sp-backward-sexp plist-get :end sp-get-thing t 2] 7 (#$ . 215934) "^p"])
2135 (put 'sp-previous-sexp 'CUA 'move)
2136 #@297 Move forward across one balanced expressions at the same depth.
2137
2138 If calling `sp-forward-sexp' at point would result in raising a
2139 level up, loop back to the first expression at current level,
2140 that is the first child of the enclosing sexp as defined by
2141 `sp-get-enclosing-sexp'.
2142
2143 (fn &optional ARG)
2144 (defalias 'sp-forward-parallel-sexp #[256 "\211\206\300\262\211\301W\203\302[!\207\303\301V\203xS\262\304 \304\305!\303=\2030eb\210\306 \202s\211\303=\203C\307\310\"\262b\210\202s\307\311\"\262\307\311\"\262V\203b\307\310\"\262b\210\202s\307\311\"\307\312\"G\\\262b\210\306 \266\203\202\211\207" [1 0 sp-backward-parallel-sexp nil sp-get-thing t sp-forward-sexp plist-get :end :beg :op] 9 (#$ . 217317) "^p"])
2145 #@297 Move backward across one balanced expressions at the same depth.
2146
2147 If calling `sp-backward-sexp' at point would result in raising a
2148 level up, loop back to the last expression at current level, that
2149 is the last child of the enclosing sexp as defined by
2150 `sp-get-enclosing-sexp'.
2151
2152 (fn &optional ARG)
2153 (defalias 'sp-backward-parallel-sexp #[256 "\211\206\300\262\211\301W\203\302[!\207\303\301V\203xS\262\304 \304\305!\211\303=\2030db\210\306 \202s\303=\203C\211\307\310\"\262b\210\211\202s\211\307\311\"\262\307\311\"\262W\203b\211\307\310\"\262b\210\211\202s\211\307\311\"\307\312\"GZ\262b\210\306 \266\203\202\211\207" [1 0 sp-forward-parallel-sexp nil sp-get-thing t sp-backward-sexp plist-get :beg :end :cl] 9 (#$ . 218067) "^p"])
2154 #@78 Return t if ARG represents raw argument, that is a non-empty list.
2155
2156 (fn ARG)
2157 (defalias 'sp--raw-argument-p #[257 "\211<\205\211@\207" [] 2 (#$ . 218834)])
2158 #@262 Return the argument ARG but negated.
2159
2160 If the argument is a raw prefix argument (cons num nil) return a
2161 list with its car negated.  If the argument is just the - symbol,
2162 return 1.  If the argument is nil, return -1.  Otherwise negate
2163 the input number.
2164
2165 (fn ARG)
2166 (defalias 'sp--negate-argument #[257 "\300!\203 \211@[C\207\211\301=\203\302\207\211\204\303\207\211[\207" [sp--raw-argument-p - 1 -1] 3 (#$ . 218998)])
2167 #@897 Move forward down one level of sexp.
2168
2169 With ARG, do this that many times.  A negative argument -N means
2170 move backward but still go down a level.
2171
2172 If ARG is raw prefix argument \[universal-argument], descend forward as much as
2173 possible.
2174
2175 If ARG is raw prefix argument \[universal-argument] \[universal-argument], jump to the beginning of
2176 current list.
2177
2178 If the point is inside sexp and there is no down expression to
2179 descend to, jump to the beginning of current one.  If moving
2180 backwards, jump to end of current one.
2181
2182 Examples:
2183
2184   |foo (bar (baz quux)) -> foo (|bar (baz quux))
2185
2186   |foo (bar (baz quux)) -> foo (bar (|baz quux)) ;; 2
2187
2188   |foo (bar (baz (quux) blab)) -> foo (bar (baz (|quux) blab)) ;; \[universal-argument]
2189
2190   (foo (bar baz) |quux) -> (|foo (bar baz) quux)
2191
2192   (blab foo |(bar baz) quux) -> (|blab foo (bar baz) quux) ;; \[universal-argument] \[universal-argument]
2193
2194 (fn &optional ARG)
2195 (defalias 'sp-down-sexp #[256 "\300!\301!\302!\303\304\203K\302!\305U\203K\306 \211\203G\307V\2035\211\310\311\"\310\312\"G\\\262b\210\202D\211\310\313\"\310\314\"GZ\262b\210\211\262\210\202\241\203\241\307V\203\241\315\307W!\262\203l`U\203p\304\262\202pS\262\203K`\262\307W\203\217\310\313\"\310\314\"GZ\262b\210\202K\310\311\"\310\312\"G\\\262b\210\202K\207" [sp--raw-argument-p prefix-numeric-value abs t -1 16 sp-get-enclosing-sexp 0 plist-get :beg :op :end :cl sp-get-sexp] 12 (#$ . 219425) "^P"])
2196 (put 'sp-down-sexp 'CUA 'move)
2197 #@890 Move backward down one level of sexp.
2198
2199 With ARG, do this that many times.  A negative argument -N means
2200 move forward but still go down a level.
2201
2202 If ARG is raw prefix argument \[universal-argument], descend backward as much as
2203 possible.
2204
2205 If ARG is raw prefix argument \[universal-argument] \[universal-argument], jump to the end of current
2206 list.
2207
2208 If the point is inside sexp and there is no down expression to
2209 descend to, jump to the end of current one.  If moving forward,
2210 jump to beginning of current one.
2211
2212 Examples:
2213
2214   foo (bar (baz quux))| -> foo (bar (baz quux)|)
2215
2216   (bar (baz quux)) foo| -> (bar (baz quux|)) foo ;; 2
2217
2218   foo (bar (baz (quux) blab))| -> foo (bar (baz (quux|) blab)) ;; \[universal-argument]
2219
2220   (foo| (bar baz) quux) -> (foo (bar baz) quux|)
2221
2222   (foo (bar baz) |quux blab) -> (foo (bar baz) quux blab|) ;; \[universal-argument] \[universal-argument]
2223
2224 (fn &optional ARG)
2225 (defalias 'sp-backward-down-sexp #[256 "\300\301!!\207" [sp-down-sexp sp--negate-argument] 4 (#$ . 220911) "^P"])
2226 (put 'sp-backward-down-sexp 'CUA 'move)
2227 #@1030 Jump to beginning of the sexp the point is in.
2228
2229 The beginning is the point after the opening delimiter.
2230
2231 With no argument, this is the same as calling
2232 \[universal-argument] \[universal-argument] `sp-down-sexp'
2233
2234 With ARG positive N > 1, move forward out of the current
2235 expression, move N-2 expressions forward and move down one level
2236 into next expression.
2237
2238 With ARG negative -N < 1, move backward out of the current
2239 expression, move N-1 expressions backward and move down one level
2240 into next expression.
2241
2242 With ARG raw prefix argument \[universal-argument] move out of the current expressions
2243 and then to the beginning of enclosing expression.
2244
2245 Examples:
2246
2247   (foo (bar baz) quux| (blab glob)) -> (|foo (bar baz) quux (blab glob))
2248
2249   (foo (bar baz|) quux (blab glob)) -> (foo (|bar baz) quux (blab glob))
2250
2251   (|foo) (bar) (baz quux) -> (foo) (bar) (|baz quux) ;; 3
2252
2253   (foo bar) (baz) (quux|) -> (|foo bar) (baz) (quux) ;; -3
2254
2255   ((foo bar) (baz |quux) blab) -> (|(foo bar) (baz quux) blab) ;; \[universal-argument]
2256
2257 (fn &optional ARG)
2258 (defalias 'sp-beginning-of-sexp #[256 "\300!\301!\203\211\302U\203\303 \210\304 \202H\211\305U\203$\306\307!\202H\211\310W\2037\311 \210\312T!\210\306 \202H\211\310V\205H\303 \210\312\313Z!\210\306 \314\315\316\"\262\317\320#\210\207" [sp--raw-argument-p prefix-numeric-value 4 sp-up-sexp sp-beginning-of-sexp 1 sp-down-sexp (16) 0 sp-backward-up-sexp sp-forward-sexp 2 sp--run-hook-with-args plist-get :op :post-handlers beginning-of-sexp] 9 (#$ . 221963) "^P"])
2259 (put 'sp-beginning-of-sexp 'CUA 'move)
2260 #@1049 Jump to end of the sexp the point is in.
2261
2262 The end is the point before the closing delimiter.
2263
2264 With no argument, this is the same as calling
2265 \[universal-argument] \[universal-argument] `sp-backward-down-sexp'.
2266
2267 With ARG positive N > 1, move forward out of the current
2268 expression, move N-1 expressions forward and move down backward
2269 one level into previous expression.
2270
2271 With ARG negative -N < 1, move backward out of the current
2272 expression, move N-2 expressions backward and move down backward
2273 one level into previous expression.
2274
2275 With ARG raw prefix argument \[universal-argument] move out of the current expressions
2276 and then to the end of enclosing expression.
2277
2278 Examples:
2279
2280   (foo |(bar baz) quux (blab glob)) -> (foo (bar baz) quux (blab glob)|)
2281
2282   (foo (|bar baz) quux (blab glob)) -> (foo (bar baz|) quux (blab glob))
2283
2284   (|foo) (bar) (baz quux) -> (foo) (bar) (baz quux|) ;; 3
2285
2286   (foo bar) (baz) (quux|) -> (foo bar|) (baz) (quux) ;; -3
2287
2288   ((foo |bar) (baz quux) blab) -> ((foo bar) (baz quux) blab|) ;; \[universal-argument]
2289
2290 (fn &optional ARG)
2291 (defalias 'sp-end-of-sexp #[256 "\300!\301!\203\211\302U\203\303 \210\304 \202H\211\305U\203$\306\307!\202H\211\310W\2038\311 \210\312\313\\!\210\314 \202H\211\310V\205H\303 \210\312S!\210\314 \315\316\317\"\262\320\321#\210\207" [sp--raw-argument-p prefix-numeric-value 4 sp-up-sexp sp-end-of-sexp 1 sp-down-sexp (-16) 0 sp-backward-up-sexp sp-forward-sexp 2 sp-backward-down-sexp sp--run-hook-with-args plist-get :op :post-handlers end-of-sexp] 9 (#$ . 223521) "^P"])
2292 (put 'sp-end-of-sexp 'CUA 'move)
2293 #@340 Jump to the beginning of next sexp on the same depth.
2294
2295 Optional argument ARG defaults to 1 and means how many times we
2296 should repeat.
2297
2298 This acts exactly as `sp-beginning-of-sexp' but adds 1 to the
2299 numeric argument.
2300
2301 Examples:
2302
2303   (f|oo) (bar) (baz) -> (foo) (|bar) (baz)
2304
2305   (f|oo) (bar) (baz) -> (foo) (bar) (|baz) ;; 2
2306
2307 (fn &optional ARG)
2308 (defalias 'sp-beginning-of-next-sexp #[256 "\300!\203\n\301!\207\302!\211\303V\203\301T!\202\301S!\207" [sp--raw-argument-p sp-beginning-of-sexp prefix-numeric-value 0] 4 (#$ . 225097) "^P"])
2309 (put 'sp-beginning-of-next-sexp 'CUA 'move)
2310 #@356 Jump to the beginning of previous sexp on the same depth.
2311
2312 Optional argument ARG defaults to 1 and means how many times we
2313 should repeat.
2314
2315 This acts exactly as `sp-beginning-of-sexp' with negative
2316 argument but subtracts 1 from it.
2317
2318 Examples:
2319
2320   (foo) (b|ar) (baz) -> (|foo) (bar) (baz)
2321
2322   (foo) (bar) (b|az) -> (|foo) (bar) (baz) ;; 2
2323
2324 (fn &optional ARG)
2325 (defalias 'sp-beginning-of-previous-sexp #[256 "\300!\203\f\301\302!!\207\303!\211\304V\203\301T[!\202\"\301S[!\207" [sp--raw-argument-p sp-beginning-of-sexp sp--negate-argument prefix-numeric-value 0] 4 (#$ . 225689) "^P"])
2326 (put 'sp-beginning-of-previous-sexp 'CUA 'move)
2327 #@328 Jump to the end of next sexp on the same depth.
2328
2329 Optional argument ARG defaults to 1 and means how many times we
2330 should repeat.
2331
2332 This acts exactly as `sp-end-of-sexp' but adds 1 to the
2333 numeric argument.
2334
2335 Examples:
2336
2337   (f|oo) (bar) (baz) -> (foo) (bar|) (baz)
2338
2339   (f|oo) (bar) (baz) -> (foo) (bar) (baz|) ;; 2
2340
2341 (fn &optional ARG)
2342 (defalias 'sp-end-of-next-sexp #[256 "\300!\203\n\301!\207\302!\211\303V\203\301T!\202\301S!\207" [sp--raw-argument-p sp-end-of-sexp prefix-numeric-value 0] 4 (#$ . 226333) "^P"])
2343 (put 'sp-end-of-next-sexp 'CUA 'move)
2344 #@344 Jump to the end of previous sexp on the same depth.
2345
2346 Optional argument ARG defaults to 1 and means how many times we
2347 should repeat.
2348
2349 This acts exactly as `sp-end-of-sexp' with negative
2350 argument but subtracts 1 from it.
2351
2352 Examples:
2353
2354   (foo) (b|ar) (baz) -> (foo|) (bar) (baz)
2355
2356   (foo) (bar) (b|az) -> (foo|) (bar) (baz) ;; 2
2357
2358 (fn &optional ARG)
2359 (defalias 'sp-end-of-previous-sexp #[256 "\300!\203\f\301\302!!\207\303!\211\304V\203\301T[!\202\"\301S[!\207" [sp--raw-argument-p sp-end-of-sexp sp--negate-argument prefix-numeric-value 0] 4 (#$ . 226895) "^P"])
2360 (put 'sp-end-of-previous-sexp 'CUA 'move)
2361 #@825 Move forward out of one level of parentheses.
2362
2363 With ARG, do this that many times.  A negative argument means
2364 move backward but still to a less deep spot.
2365
2366 The argument INTERACTIVE is for internal use only.
2367
2368 If called interactively and `sp-navigate-reindent-after-up' is
2369 enabled for current major-mode, remove the whitespace between end
2370 of the expression and the last "thing" inside the expression.
2371
2372 If `sp-navigate-close-if-unbalanced' is non-nil, close the
2373 unbalanced expressions automatically.
2374
2375 Examples:
2376
2377   (foo |(bar baz) quux blab) -> (foo (bar baz) quux blab)|
2378
2379   (foo (bar |baz) quux blab) -> (foo (bar baz) quux blab)| ;; 2
2380
2381   (foo bar |baz              -> (foo bar baz)| ;; re-indent the expression
2382 ​   )
2383
2384   (foo  |(bar baz)           -> (foo)| (bar baz) ;; close unbalanced expr.
2385
2386 (fn &optional ARG INTERACTIVE)
2387 (defalias 'sp-up-sexp #[512 "\206\306\262\203\245\307\310\311!!\211\203j\312V\203(\211\313\314\"\262b\210\2021\211\313\315\"\262b\210\311!\306U\203\240\211\313\316\"\262    \232\204\240\n\317 \236>\204Y\n\320 \236>\203\240\203\240\f\204p\211\321\313\314\"\313\322\"GZ!?\262\203\240\321 \211?\206\210\313\323\"\262\324=\206\207\325!=\262\203\240\212\312V\203\377\211\313\314\"\313\322\"GZ\262b\210\326\324!\313\315\"\262\313\315\"\262\232\203\323\313\315\"\313\323\"G\\\313\314\"\313\322\"GZ|\266\202\373\212\327\307x\210`\313\314\"\313\330\"G\\\262U)\203\373\211\313\314\"\313\330\"G\\\262`|\210\210\202f\211\313\315\"\313\323\"G\\\262b\210\326 \313\315\"\262\313\315\"\262\232\203=\313\315\"\313\323\"G\\\313\314\"\313\322\"GZ|\266\202e\212\327\307w\210`\313\315\"\313\316\"GZ\262U)\203e`\313\315\"\313\316\"GZ\262|\210\210)\202\240\312V\203\240 \203\240\307\212\331 \204v\332\324!\210\333\334 !\203\220\335\312!\336 \"\266\202)\211\203\237\331 \210\337 \210\211Ac\210\210\211\262)\207\310\311!!\211\203\312V\203\300\211\313\314\"\262b\210\202\311\211\313\315\"\262b\210\311!\306U\2038\211\313\316\"\262    \232\2048\n\317 \236>\204\361\n\320 \236>\2038\2038\f\204\211\321\313\314\"\313\322\"GZ!?\262\2038\321 \211?\206 \313\323\"\262\324=\206\325!=\262\2038\212\312V\203\227\211\313\314\"\313\322\"GZ\262b\210\326\324!\313\315\"\262\313\315\"\262\232\203k\313\315\"\313\323\"G\\\313\314\"\313\322\"GZ|\266\202\223\212\327\307x\210`\313\314\"\313\330\"G\\\262U)\203\223\211\313\314\"\313\330\"G\\\262`|\210\210\202\376\211\313\315\"\313\323\"G\\\262b\210\326 \313\315\"\262\313\315\"\262\232\203\325\313\315\"\313\323\"G\\\313\314\"\313\322\"GZ|\266\202\375\212\327\307w\210`\313\315\"\313\316\"GZ\262U)\203\375`\313\315\"\313\316\"GZ\262|\210\210)\2028\312V\2038 \2038\307\212\331 \204\332\324!\210\333\334 !\203(\335\312!\336 \"\266\202)\211\2037\331 \210\337 \210\211Ac\210\210\211\207" [case-fold-search sp-comment-char major-mode sp-navigate-reindent-after-up sp-navigate-reindent-after-up-in-string sp-navigate-close-if-unbalanced 1 nil sp-get-enclosing-sexp abs 0 plist-get :end :beg :prefix always interactive sp-point-in-string :cl :op t char-to-string sp-get-thing "     \n" :suffix sp-backward-sexp sp-skip-backward-to-symbol sp--looking-back sp--get-opening-regexp match-string assoc sp-forward-sexp sp-pair-list] 10 (#$ . 227509) "^p\np"])
2388 (put 'sp-up-sexp 'CUA 'move)
2389 #@635 Move backward out of one level of parentheses.
2390
2391 With ARG, do this that many times.  A negative argument means
2392 move forward but still to a less deep spot.
2393
2394 The argument INTERACTIVE is for internal use only.
2395
2396 If called interactively and `sp-navigate-reindent-after-up' is
2397 enabled for current major-mode, remove the whitespace between
2398 beginning of the expression and the first "thing" inside the
2399 expression.
2400
2401 Examples:
2402
2403   (foo (bar baz) quux| blab) -> |(foo (bar baz) quux blab)
2404
2405   (foo (bar |baz) quux blab) -> |(foo (bar baz) quux blab) ;; 2
2406
2407   (                  -> |(foo bar baz)
2408 ​    foo |bar baz)
2409
2410 (fn &optional ARG INTERACTIVE)
2411 (defalias 'sp-backward-up-sexp #[512 "\206\300\262\301[\"\207" [1 sp-up-sexp] 5 (#$ . 230916) "^p\np"])
2412 (put 'sp-backward-up-sexp 'CUA 'move)
2413 #@142 Save the whitespace cleaned after the last kill.
2414
2415 If the next command is `sp-kill-sexp', append the whitespace
2416 between the successive kills.
2417 (defvar sp-last-kill-whitespace nil (#$ . 231705))
2418 #@267 Kill or copy region between BEG and END according to DONT-KILL.
2419 If `evil-mode' is active, copying a region will also add it to the 0 register.
2420 Additionally, if command was prefixed with a register, copy the region
2421 to that register.
2422
2423 (fn BEG END &optional DONT-KILL)
2424 (defalias 'sp--kill-or-copy-region #[770 "\211\203 \302\"\202\303\"\304\300!\2031\2031\203$\305\306\307\310!\"\210    \2031\305    \307\310!\"\210\311\211\207" [evil-mode evil-this-register copy-region-as-kill kill-region boundp evil-set-register 48 evil-get-register 49 nil] 8 (#$ . 231904) nil])
2425 #@1959 Kill the balanced expression following point.
2426
2427 If point is inside an expression and there is no following
2428 expression, kill the topmost enclosing expression.
2429
2430 With ARG being positive number N, repeat that many times.
2431
2432 With ARG being Negative number -N, repeat that many times in
2433 backward direction.
2434
2435 With ARG being raw prefix \[universal-argument], kill all the expressions from
2436 point up until the end of current list.  With raw prefix \[negative-argument] \[universal-argument],
2437 kill all the expressions from beginning of current list up until
2438 point.  If point is inside a symbol, this is also killed.  If
2439 there is no expression after/before the point, just delete the
2440 whitespace up until the closing/opening delimiter.
2441
2442 With ARG being raw prefix \[universal-argument] \[universal-argument], kill current list (the list
2443 point is inside).
2444
2445 With ARG numeric prefix 0 (zero) kill the insides of the current
2446 list, that is everything from after the opening delimiter to
2447 before the closing delimiter.
2448
2449 If ARG is nil, default to 1 (kill single expression forward)
2450
2451 If second optional argument DONT-KILL is non-nil, save the to be
2452 killed region in the kill ring, but do not kill the region from
2453 buffer.
2454
2455 With `sp-navigate-consider-symbols', symbols and strings are also
2456 considered balanced expressions.
2457
2458 Examples:
2459
2460  (foo |(abc) bar)  -> (foo | bar) ;; nil, defaults to 1
2461
2462  (foo (bar) | baz) -> |           ;; 2
2463
2464  (foo |(bar) baz)  -> |           ;; \[universal-argument] \[universal-argument]
2465
2466  (1 |2 3 4 5 6)    -> (1|)        ;; \[universal-argument]
2467
2468  (1 |2 3 4 5 6)    -> (1 | 5 6)   ;; 3
2469
2470  (1 2 3 4 5| 6)    -> (1 2 3 | 6) ;; -2
2471
2472  (1 2 3 4| 5 6)    -> (|5 6)      ;; - \[universal-argument]
2473
2474  (1 2 |   )        -> (1 2|)      ;; \[universal-argument], kill useless whitespace
2475
2476  (1 2 3 |4 5 6)    -> (|)         ;; 0
2477
2478 Note: prefix argument is shown after the example in
2479 "comment". Assumes `sp-navigate-consider-symbols' equal to t.
2480
2481 (fn &optional ARG DONT-KILL)
2482 (defalias 'sp-kill-sexp #[512 "\304!\305!\306!\307d`\203\245\310U\203\245\311\312W!\313 \314\315\"\262\314\315\"\262\232\203H?\205\240\316 \211\314\315\"\314\317\"|\262\262\202\240\312V\203q\320\314\315\"\314\321\"GZ\262\314\317\"\314\322\"GZ\262 #\210\202\212\320\314\317\"\262\314\315\"\314\323\"G\\\262 #\210?\205\240\316 \211\314\315\"\314\317\"|\262\262\266\202\202\246\203\313\324U\203\313\325 \211\320\314\315\"\314\321\"GZ\314\317\" #\262\262\202\246\312U\203\367\313 \211\205\362\211\320\314\315\"\314\323\"G\\\314\317\"\314\322\"GZ #\262\262\202\246\212\312V\203=\203=\326\327!!\262\314\315\"\314\321\"GZW\203&\314\315\"\314\321\"GZ\262\314\317\"V\2035\314\317\"\262\210S\262\202\370)\205\246\330 \331\223\332=\203l    \333\235\203X\334\n\331\"\210\320`V\203c`\202d\n#\210\202s\320\n#\210?\205\244\335 \210\336\337`\"\331\307\340#)\266\203\203\232\n\337`\"P\211`|\210    \312U\205\244\334\n\331\"\262\207" [last-command sp-successive-kill-preserve-whitespace sp-last-kill-whitespace inhibit-changing-match-data sp--raw-argument-p prefix-numeric-value abs t 4 sp-get-thing 0 sp-get-enclosing-sexp plist-get :beg sp-get-whitespace :end sp--kill-or-copy-region :prefix :cl :op 16 sp-backward-up-sexp sp-forward-sexp sp--signum make-marker nil kill-region (1 2) kill-append sp--cleanup-after-kill "\n" buffer-substring-no-properties string-match] 17 (#$ . 232484) "P"])
2483 (defalias 'sp--cleanup-after-kill #[0 "\306 \307\310\311\312\313!\314\"\315$\216\316\317\320 S\")\262\204i\212\321\322\323\"\2030\324\325x\210\321\326 !\2040\325u\210`)\212\327\322!\203M\324\325w\210\330\331 !\204M\327\332!\204M\333u\210`)\334=\203d    \335U\204b\336\"\202c\337|\266 \f>\203r\340 \207 >\206}%&>?\205\230\212\341\320 \342 \"\210)\212\343 \210\344 )iV\205\230\343 \207" [this-command sp-successive-kill-preserve-whitespace sp-last-kill-whitespace major-mode sp-lisp-modes sp-no-reindent-after-kill-modes match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 looking-back "^[     ]+" line-beginning-position sp--looking-back-p " " 1 "     " nil sp--get-opening-regexp looking-at sp--looking-at sp--get-closing-regexp "$" -1 kill-region 2 buffer-substring-no-properties "" indent-according-to-mode sp--indent-region line-end-position back-to-indentation current-indentation indent-line-function sp-no-reindent-after-kill-indent-line-functions] 7])
2484 #@424 Kill the balanced expression preceding point.
2485
2486 This is exactly like calling `sp-kill-sexp' with minus ARG.
2487 In other words, the direction of all commands is reversed.  For
2488 more information, see the documentation of `sp-kill-sexp'.
2489
2490 Examples:
2491
2492   (foo (abc)| bar)           -> (foo | bar)
2493
2494   blab (foo (bar baz) quux)| -> blab |
2495
2496   (1 2 3 |4 5 6)             -> (|4 5 6) ;; \[universal-argument]
2497
2498 (fn &optional ARG DONT-KILL)
2499 (defalias 'sp-backward-kill-sexp #[512 "\300\301!\"\207" [sp-kill-sexp sp--negate-argument] 5 (#$ . 236961) "P"])
2500 #@196 Copy the following ARG expressions to the kill-ring.
2501
2502 This is exactly like calling `sp-kill-sexp' with second argument
2503 t.  All the special prefix arguments work the same way.
2504
2505 (fn &optional ARG)
2506 (defalias 'sp-copy-sexp #[256 "\212\300\301\")\207" [sp-kill-sexp t] 4 (#$ . 237507) "P"])
2507 #@204 Copy the previous ARG expressions to the kill-ring.
2508
2509 This is exactly like calling `sp-backward-kill-sexp' with second argument
2510 t.  All the special prefix arguments work the same way.
2511
2512 (fn &optional ARG)
2513 (defalias 'sp-backward-copy-sexp #[256 "\212\300\301!\302\")\207" [sp-kill-sexp sp--negate-argument t] 4 (#$ . 237801) "P"])
2514 #@229 Clone sexp after or around point.
2515
2516 If the form immediately after point is a sexp, clone it below the
2517 current one and put the point in front of it.
2518
2519 Otherwise get the enclosing sexp and clone it below the current
2520 enclosing sexp.
2521 (defalias 'sp-clone-sexp #[0 "\300 \211\301\302\"\262\303\232\204\211\202\304 \262\211\205\206\211\305 \210\301\306\"\301\307\"GZ`W\203Y\212\301\306\"\301\307\"GZb\210\310p\301\306\"\301\307\"GZ\301\311\"\301\312\"G\\#\210\313 \210)\202\202\301\311\"\301\312\"G\\b\210\212\310p\301\306\"\301\307\"GZ\301\311\"\301\312\"G\\#\210)\313 \210\314 \262\207" [sp-get-thing plist-get :op "" sp-get-enclosing-sexp undo-boundary :beg :prefix insert-buffer-substring-no-properties :end :suffix newline-and-indent sp-indent-defun] 9 (#$ . 238137) nil])
2522 #@887 Kill a line as if with `kill-line', but respecting delimiters.
2523
2524 With ARG being raw prefix \[universal-argument] \[universal-argument], kill the hybrid sexp
2525 the point is in (see `sp-get-hybrid-sexp').
2526
2527 With ARG numeric prefix 0 (zero) just call `kill-line'.
2528
2529 You can customize the behaviour of this command by toggling
2530 `sp-hybrid-kill-excessive-whitespace'.
2531
2532 Examples:
2533
2534   foo | bar baz               -> foo |               ;; nil
2535
2536   foo (bar | baz) quux        -> foo (bar |) quux    ;; nil
2537
2538   foo | bar (baz              -> foo |               ;; nil
2539              quux)
2540
2541   foo "bar |baz quux" quack   -> foo "bar |" quack   ;; nil
2542
2543   foo (bar
2544        baz) qu|ux (quack      ->   foo | hoo         ;; \[universal-argument] \[universal-argument]
2545                    zaq) hoo
2546
2547   foo | (bar                  -> foo |               ;; C-0
2548          baz)                          baz)
2549
2550 (fn ARG)
2551 (defalias 'sp-kill-hybrid-sexp #[257 "\303!\304!\212\305 \210i)i\306U\203\307 \202\322\203B\310U\203B\311 \211\312\313\314\"\313\315\"GZ\313\316\"\313\317\"G\\\"\262\262\202\322\311 \212\320=\204V\321!\203^ \204^\322 \203^\323 \210\211d\324\325!\203t\313\316\"\313\317\"G\\T\202~\313\316\"\313\317\"G\\^    \203\234\212\211b\210\326\327w\210    \330\267\202\227`\262\202\233\211`|\210)\312`\"\266)\210\331 \210\332 \205\322\333 \334 |\210\211\306U\203\302\n\203\302\335\336!\202\322iZ\211\306V\205\320\337\340\"c\262\207" [sp-hybrid-kill-entire-symbol sp-hybrid-kill-excessive-whitespace kill-whole-line sp--raw-argument-p prefix-numeric-value back-to-indentation 0 kill-line 16 sp-get-hybrid-sexp kill-region plist-get :beg :prefix :end :suffix t functionp sp-point-in-symbol sp-backward-sexp looking-at "[     ]*$" "\n      " nil #s(hash-table size 1 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (kill 145)) sp--cleanup-after-kill sp-point-in-blank-line line-beginning-position line-end-position delete-char 1 make-string 32] 13 (#$ . 238938) "P"])
2552 #@472 Kill current line in sexp-aware manner.
2553
2554 First, go to the beginning of current line and then try to kill
2555 as much as possible on the current line but without breaking
2556 balance.
2557
2558 If there is a hanging sexp at the end of line the it is killed as
2559 well.
2560
2561 If there is a closing delimiter for a sexp "up" current sexp,
2562 the kill is not extended after it.  For more details see
2563 `sp-kill-hybrid-sexp'.
2564
2565 Examples:
2566
2567   (progn                    (progn
2568     (some |long sexp))  ->    |)
2569 (defalias 'sp-kill-whole-line #[0 "\300 \210\301\302!\210\212\300 \210m)\303 \205\211?\205\304 \207" [beginning-of-line sp-kill-hybrid-sexp nil sp-point-in-blank-line kill-whole-line] 2 (#$ . 240933) nil])
2570 #@100 Transpose FIRST and SECOND object while preserving the
2571 whitespace between them.
2572
2573 (fn FIRST SECOND)
2574 (defalias 'sp--transpose-objects #[514 "\212\211\300\301\"\300\302\"GZ\262b\210\211\303\300\301\"\300\302\"GZ\300\304\"\"\262\303\300\304\"\262`\"\300\301\"\300\302\"GZ\262b\210\261\266\202)\207" [plist-get :beg :prefix delete-and-extract-region :end] 9 (#$ . 241621)])
2575 #@746 Transpose the expressions around point.
2576
2577 The operation will move the point after the transposed block, so
2578 the next transpose will "drag" it forward.
2579
2580 With arg positive N, apply that many times, dragging the
2581 expression forward.
2582
2583 With arg negative -N, apply N times backward, pushing the word
2584 before cursor backward.  This will therefore not transpose the
2585 expressions before and after point, but push the expression
2586 before point over the one before it.
2587
2588 Examples:
2589
2590   foo |bar baz     -> bar foo| baz
2591
2592   foo |bar baz     -> bar baz foo| ;; 2
2593
2594   (foo) |(bar baz) -> (bar baz) (foo)|
2595
2596   (foo bar)        ->    (baz quux)   ;; keeps the formatting
2597 ​    |(baz quux)            |(foo bar)
2598
2599   foo bar baz|     -> foo baz| bar ;; -1
2600
2601 (fn &optional ARG)
2602 (defalias 'sp-transpose-sexp #[256 "\300!\301!\302V\203\303 \203\304 \210\211\302V\205u\302W\203#\305 \210\212\306 )\212\211\307\310\"\307\311\"GZ\262b\210\305 )\312\"\210\302W\203n\211\307\310\"\307\311\"GZ\262\313\307\314\"\307\310\"\307\311\"G[\307\315\"G[$\262\\b\210S\266\203\202\207" [prefix-numeric-value abs 0 sp-point-in-symbol sp-forward-symbol sp-backward-sexp sp-forward-sexp plist-get :beg :prefix sp--transpose-objects - :end :suffix] 14 (#$ . 242014) "P"])
2603 #@539 Transpose the hybrid sexps around point.
2604
2605 `sp-backward-sexp' is used to enter the previous hybrid sexp.
2606
2607 With ARG numeric prefix call `transpose-lines' with this
2608 argument.
2609
2610 The operation will move the point at the next line after the
2611 transposed block if it is at the end of line already.
2612
2613 Examples:
2614
2615   foo bar            baz (quux
2616   |baz (quux   ->         quack)
2617         quack)       foo bar\n|
2618
2619
2620   [(foo) (bar) -> [(baz)
2621   |(baz)]          (foo) (bar)|]
2622
2623   foo bar baz  -> quux flux
2624   |quux flux      foo bar baz\n|
2625
2626 (fn &optional ARG)
2627 (defalias 'sp-transpose-hybrid-sexp #[256 "\211\247\203    \300!\207\212\301 \210\302 \210\303 )\212\211\304\305\"\262b\210\302 \210\303 )\211\304\306\"\262\304\306\"\262V\203<\307\310!\210\202A\311\"\210\312\313!\205L\314y\210\315 \207" [transpose-lines sp-forward-sexp sp-backward-sexp sp-get-hybrid-sexp plist-get :beg :end sp-message :invalid-context-prev sp--transpose-objects looking-at "[\n     ]+" nil back-to-indentation] 8 (#$ . 243267) "P"])
2628 #@367 Push the hybrid sexp after point over the following one.
2629
2630 `sp-forward-sexp' is used to enter the following hybrid sexp.
2631
2632 Examples:
2633
2634   |x = big_function_call(a,    |(a,
2635                          b)      b) = read_user_input()
2636                            ->
2637   (a,                          x = big_function_call(a,
2638    b) = read_user_input()                            b)
2639 (defalias 'sp-push-hybrid-sexp #[0 "\300 \212\211\301\302\"\262b\210\303 \210\300 )\301\304\"\262\301\304\"\262V\203*\305\306!\202.\307\"\207" [sp-get-hybrid-sexp plist-get :end sp-forward-sexp :beg sp-message :invalid-context-cur sp--transpose-objects] 7 (#$ . 244273) nil])
2640 #@338 Add the hybrid sexp at line into previous sexp.  All forms
2641 between the two are also inserted.  Specifically, if the point is
2642 on empty line, move the closing delimiter there, so the next
2643 typed text will become the last item of the previous sexp.
2644
2645 This acts similarly to `sp-add-to-previous-sexp' but with special
2646 handling of empty lines.
2647 (defalias 'sp-indent-adjust-sexp #[0 "\300 \212\211\301\302\"\262b\210\303\304!)\211\203*\203*\211\301\305\"\262\301\302\"\262W\2040\306\307!\202s\212\211\301\305\"\262b\210\301\310\"c\210\301\305\"\301\310\"GZb\210\311\301\310\"G!\266)\312 \313\301\302\"\301\305\"\"\266\314 \210\315\301\316\"\262\317\320#\207" [sp-get-hybrid-sexp plist-get :beg sp-get-sexp t :end sp-message :no-structure-found :cl delete-char sp-get-enclosing-sexp sp--indent-region indent-according-to-mode sp--run-hook-with-args :op :post-handlers indent-adjust-sexp] 8 (#$ . 244934) nil])
2648 #@398 Remove the hybrid sexp at line from previous sexp.  All
2649 sibling forms after it are also removed (not deleted, just placed
2650 outside of the enclosing list).  Specifically, if the point is on
2651 empty line followed by closing delimiter of enclosing list, move
2652 the closing delimiter after the last item in the list.
2653
2654 This acts similarly to `sp-forward-barf-sexp' but with special
2655 handling of empty lines.
2656 (defalias 'sp-dedent-adjust-sexp #[0 "\300 \211\205\222\212\301\302!\210`\303\304\"\303\305\"GZ\262U\203I\306\302!\307\303\305\"G!\210\303\304\"\262b\210\214\310 \210\311\312!\210\311\313!\210)\303\305\"c\266\202\203\314\302!\210\315\316!\210\214\317 \303\304\"b\210\307\303\305\"G[!\210\310 \210\311\312!\210\311\313!\210\303\305\"c\266)\211\320\303\321\"\303\304\"\"\266)\322 \210\323\303\324\"\262\325\326#\207" [sp-get-enclosing-sexp sp-skip-forward-to-symbol t plist-get :end :cl sp-get-thing delete-char sp--narrow-to-line skip-syntax-forward " " "." sp-skip-backward-to-symbol sp-forward-barf-sexp (4) sp-backward-down-sexp sp--indent-region :beg indent-according-to-mode sp--run-hook-with-args :op :post-handlers dedent-adjust-sexp] 7 (#$ . 245867) nil])
2657 #@368 Add hybrid sexp following the current list in it by moving the
2658 closing delimiter.
2659
2660 This is philosophically similar to `sp-forward-slurp-sexp' but
2661 works better in "line-based" languages like C or Java.
2662
2663 Because the structure is much looser in these languages, this
2664 command currently does not support all the prefix argument
2665 triggers that `sp-forward-slurp-sexp' does.
2666 (defalias 'sp-slurp-hybrid-sexp #[0 "\300\301 \211\203%\212\211\302\303\"b\266\304 \302\305\"\262\302\305\"\262V\205%\306 )\211\203\212\302\303\"\302\307\"G\\b\210\310\302\311\"G\302\307\"G\\[!\210\312 \203S\313 \314 T|\210\304 \210\315\302\305\"!\315\302\303\"!=\203i\316\262\204|\306 \302\303\"\302\307\"G\\b\266\302\311\"\302\307\"\261\266\317\320!\212\212\302\305\"\302\321\"G\\b\210\322\323!)\203\262\302\303\"\302\311\"GZb\210\324 \210\202\350\302\303\"\302\311\"GZb\210\325\302\305\"\302\321\"G\\\302\305\"\302\321\"G\\\212\302\305\"\302\321\"G\\b\210\326\327!)\\\"c\210)\322\323!\204\322\330 !\204\322\331 !\204\204\324 \210\210\317\320!\332\302\305\"\302\303\"\"\266\317\320!)\202 \333\334!\210\300\262\202*\333\334!\210\300\262\207" [nil sp-get-enclosing-sexp plist-get :end sp-forward-sexp :beg sp-get-hybrid-sexp :suffix delete-char :cl sp-point-in-blank-line line-beginning-position line-end-position line-number-at-pos t sp--next-thing-selection -1 :op looking-at "[     ]*$" newline buffer-substring-no-properties skip-syntax-forward " " sp--get-stringlike-regexp sp--get-closing-regexp sp--indent-region sp-message :invalid-structure] 11 (#$ . 247058) nil])
2667 #@924 Add sexp following the current list in it by moving the closing delimiter.
2668
2669 If the current list is the last in a parent list, extend that
2670 list (and possibly apply recursively until we can extend a list
2671 or end of file).
2672
2673 If ARG is N, apply this function that many times.
2674
2675 If ARG is negative -N, extend the opening pair instead (that is,
2676 backward).
2677
2678 If ARG is raw prefix \[universal-argument], extend all the way to the end of the parent list.
2679
2680 If both the current expression and the expression to be slurped
2681 are strings, they are joined together.
2682
2683 See also `sp-slurp-hybrid-sexp' which is similar but handles
2684 C-style syntax better.
2685
2686 Examples:
2687
2688   (foo |bar) baz        -> (foo |bar baz)
2689
2690   [(foo |bar)] baz      -> [(foo |bar) baz]
2691
2692   [(foo |bar) baz]      -> [(foo |bar baz)]
2693
2694   ((|foo) bar baz quux) -> ((|foo bar baz quux)) ;; with \[universal-argument]
2695
2696   "foo| bar" "baz quux" -> "foo| bar baz quux"
2697
2698 (fn &optional ARG)
2699 (defalias 'sp-forward-slurp-sexp #[256 "\300!\301V\203\204\302\300!!\303 \304 \305\211\205\203\212\306!\203\272\307\310\"\307\311\"G\\\262b\210\303 \262\205\202\307\310\"\307\312\"GZ\262b\210\313\307\314\"\262\315\316\317\n\320\n\321\n\257$\210\307\312\"\307\311\"\261\266\307\310\"\307\311\"G\\\262b\210\322\307\312\"G\307\311\"G\\[\262!\210\323\307\324\"\307\325\"GZ\262\307\310\"\262\"\210\313\307\314\"\262\326\316\317\n\320\n\321\n\257$\202\202\301V\205\202\307\310\"\307\311\"G\\\262b\210\262\327\305!\262\307\324\"\262\307\324\"\262W\203\307\310\"\307\311\"G\\\262b\210\262\327\305!\262\202\327\203\"\212\307\324\"b\210\304 ?\262)\203\"\330\331!\210\332\262\202\272\211\203x\307\312\"\262\333\232\203_\211\307\312\"\262\333\232\203_\334\"\210\307\310\"\262\335Zb\210\336\310\307\310\"\262\335Z#\210\202q\212\211\307\310\"\307\312\"GZ\262b\210\327\337!)\322\307\312\"G\307\311\"G\\[\262!\210\307\310\"\307\311\"G\\\262\307\312\"G\307\311\"G\\\262Zb\210\340\307\310\"\307\324\"\307\314\"G\307\312\"G$\301U?\262\203\211\307\324\"\262\327\337!\307\324\"\262\232\203\307\310\"\307\311\"G\\\262\307\324\"\307\325\"GZ\262U\203\212\307\310\"\307\312\"GZ\262b\210\341c\210)\210\313\307\314\"\262\315\316\317\n\320\n\342    \321\f\257$\210\211\307\312\"\307\311\"\261\266\323\307\324\"\307\325\"GZ\262`\"\210\307\324\"\262\307\324\"\262U\203W\336\310`#\210\313\307\314\"\262\326\316\317\n\320\n\342    \321\f\257$\210S\262\202\272\330\343!\210\332\262\202\272)\207\344\345!!\207" [prefix-numeric-value 0 abs sp-get-enclosing-sexp sp-point-in-comment nil sp--raw-argument-p plist-get :end :suffix :cl sp--run-hook-with-args :op :pre-handlers slurp-forward :arg :enc :next-thing delete-char sp--indent-region :beg :prefix :post-handlers sp-get-thing sp-message :cant-slurp-context -1 "\"" sp--join-sexp 2 plist-put t - " " :ok :cant-slurp sp-backward-slurp-sexp sp--negate-argument] 18 (#$ . 248663) "P"])
2700 #@855 Add the sexp preceding the current list in it by moving the opening delimiter.
2701
2702 If the current list is the first in a parent list, extend that
2703 list (and possibly apply recursively until we can extend a list
2704 or beginning of file).
2705
2706 If arg is N, apply this function that many times.
2707
2708 If arg is negative -N, extend the closing pair instead (that is,
2709 forward).
2710
2711 If ARG is raw prefix \[universal-argument], extend all the way to the beginning of the parent list.
2712
2713 If both the current expression and the expression to be slurped
2714 are strings, they are joined together.
2715
2716 Examples:
2717
2718   foo (bar| baz)        -> (foo bar| baz)
2719
2720   foo [(bar| baz)]      -> [foo (bar| baz)]
2721
2722   [foo (bar| baz)]      -> [(foo bar| baz)]
2723
2724   (foo bar baz (|quux)) -> ((foo bar baz |quux)) ;; with \[universal-argument]
2725
2726   "foo bar" "baz |quux" -> "foo bar baz |quux"
2727
2728 (fn &optional ARG)
2729 (defalias 'sp-backward-slurp-sexp #[256 "\300!\301V\203\202\302\300!!\303 \304 \305\211\205\201\212\306!\203\252\307\310\"\307\311\"GZ\262b\210\303 \262\205\200\312\307\313\"G\307\311\"G\\\262!\210\307\310\"\307\313\"G\\\262b\210\314\307\313\"\262\315\316\317\n\320\n\321\n\257$\210\307\311\"\307\313\"\261\266\322\307\310\"\307\313\"G\\\262\307\323\"\262\"\210\314\307\313\"\262\324\316\317\n\320\n\321\n\257$\202\200\301V\205\200\307\310\"\307\311\"GZ\262b\210\262\325\326!\262\307\323\"\262\307\323\"\262V\203\363\307\310\"\307\311\"GZ\262b\210\262\325\326!\262\202\307\203\212\307\310\"b\210\304 ?\262)\203\327\330!\210\331\262\202\252\211\203v\307\332\"\262\333\232\203Q\211\307\332\"\262\333\232\203Q\334\"\210\307\310\"\307\311\"GZ\262b\210\335\310\307\310\"\262#\210\202o\212\211\307\310\"\307\313\"G\\\262b\210\325 )\312\307\313\"G\307\311\"G\\\262!\210\307\310\"\307\311\"GZ\262b\210\336\307\323\"\307\310\"\307\313\"G\307\332\"G$\301U?\262\203\336\307\323\"\262\307\313\"G\307\311\"G#\262\325 \307\323\"\262U\203\307\310\"\307\311\"GZ\262\307\323\"\307\337\"G\\\262U\203\212\336\307\310\"\307\313\"G\\\307\313\"G\307\311\"G#\262b\210\340c\210)\210\314\307\313\"\262\315\316\317\n\320\n\341    \321\f\257$\210\211\307\311\"\307\313\"\261\266\322`\307\323\"\262\"\210\307\310\"\262\307\310\"\262\232\203U\335\310`\307\313\"G\262Z#\210\314\307\313\"\262\324\316\317\n\320\n\341    \321\f\257$\210S\262\202\252\327\342!\210\331\262\202\252)\207\343\344!!\207" [prefix-numeric-value 0 abs sp-get-enclosing-sexp sp-point-in-comment nil sp--raw-argument-p plist-get :beg :prefix delete-char :op sp--run-hook-with-args :pre-handlers slurp-backward :arg :enc :next-thing sp--indent-region :end :post-handlers sp-get-thing t sp-message :cant-slurp-context -1 :cl "\"" sp--join-sexp plist-put - :suffix " " :ok :cant-slurp sp-forward-slurp-sexp sp--negate-argument] 18 (#$ . 251674) "P"])
2730 #@714 Add the expression around point to the first list preceding point.
2731
2732 With ARG positive N add that many expressions to the preceding
2733 list.
2734
2735 If ARG is raw prefix argument \[universal-argument] add all expressions until
2736 the end of enclosing list to the previous list.
2737
2738 If ARG is raw prefix argument \[universal-argument] \[universal-argument] add the current
2739 list into the previous list.
2740
2741 Examples:
2742
2743   (foo bar) |baz quux        -> (foo bar |baz) quux
2744
2745   (foo bar) |baz quux        -> (foo bar |baz quux) ;; 2
2746
2747   (blab (foo bar) |baz quux) -> (blab (foo bar |baz quux)) ;; \[universal-argument]
2748
2749   (foo bar) (baz |quux)      -> (foo bar (baz |quux)) ;; \[universal-argument] \[universal-argument]
2750
2751 (fn &optional ARG)
2752 (defalias 'sp-add-to-previous-sexp #[256 "\212\211\300\267\202\301 \210\302 \210\303 \210\202\302 \210\303!\210)\304 \207" [#s(hash-table size 1 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ((16) 7)) sp-backward-up-sexp sp-backward-down-sexp sp-forward-slurp-sexp indent-according-to-mode] 3 (#$ . 254607) "P"])
2753 #@723 Add the expressions around point to the first list following point.
2754
2755 With ARG positive N add that many expressions to the following
2756 list.
2757
2758 If ARG is raw prefix argument \[universal-argument] add all expressions until
2759 the beginning of enclosing list to the following list.
2760
2761 If ARG is raw prefix argument \[universal-argument] \[universal-argument] add the current
2762 list into the following list.
2763
2764 Examples:
2765
2766   foo bar| (baz quux)        -> foo (bar| baz quux)
2767
2768   foo bar| (baz quux)        -> (foo bar| baz quux) ;; 2
2769
2770   (foo bar |(bar quux) blab) -> ((foo bar |bar quux) blab) ;; \[universal-argument]
2771
2772   (foo |bar) (baz quux)      -> ((foo |bar) baz quux) ;; \[universal-argument] \[universal-argument]
2773
2774 (fn &optional ARG)
2775 (defalias 'sp-add-to-next-sexp #[256 "\212\211\300\267\202\301 \210\302 \210\303 \202\302 \210\303!)\207" [#s(hash-table size 1 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ((16) 7)) sp-up-sexp sp-down-sexp sp-backward-slurp-sexp] 3 (#$ . 255666) "P"])
2776 #@718 Remove the last sexp in the current list by moving the closing delimiter.
2777
2778 If ARG is positive number N, barf that many expressions.
2779
2780 If ARG is negative number -N, contract the opening pair instead.
2781
2782 If ARG is raw prefix \[universal-argument], barf all expressions from the one after
2783 point to the end of current list and place the point before the
2784 closing delimiter of the list.
2785
2786 If the current list is empty, do nothing.
2787
2788 Examples: (prefix arg in comment)
2789
2790   (foo bar| baz)   -> (foo bar|) baz   ;; nil (defaults to 1)
2791
2792   (foo| [bar baz]) -> (foo|) [bar baz] ;; 1
2793
2794   (1 2 3| 4 5 6)   -> (1 2 3|) 4 5 6   ;; \[universal-argument] (or numeric prefix 3)
2795
2796   (foo bar| baz)   -> foo (bar| baz)   ;; -1
2797
2798 (fn &optional ARG)
2799 (defalias 'sp-forward-barf-sexp #[256 "\300!\301!\211\302V\203+\303 \203\304\305!\2020\212\306 \211\2039\307U\2039\310\311!\312\313\"\312\314\"G\\b\266\202^\312\313\"\312\315\"GZb\210\316!\210`\312\317\"X\203^\312\317\"\312\320\"G\\b\210\310\311!\211\312\317\"\262\312\317\"\262\232\203\202\312\317\"\312\320\"G\\b\210\202\221\211\312\313\"\312\314\"G\\\262b\210\210\321\312\320\"\322\323\324\325F$\266\306 `\211\312\313\"\312\315\"GZV\203\340\211b\210\312\315\"\312\314\"\261\210\312\313\"\312\315\"GZb\210\326\312\315\"G\312\314\"G\\!\210\202\312\313\"\312\315\"GZb\210\326\312\315\"G\312\314\"G\\!\210\211b\210\312\315\"\312\314\"\261\210\210\327\312\317\"\312\313\"\"\210\321\312\320\"\330\323\324\325F$\262\262)\2020\331\332!!\207" [sp--raw-argument-p prefix-numeric-value 0 sp-point-in-blank-sexp sp-message :blank-sexp sp-get-enclosing-sexp 4 sp-get-thing t plist-get :end :suffix :cl sp-backward-sexp :beg :op sp--run-hook-with-args :pre-handlers barf-forward :arg :enc delete-char sp--indent-region :post-handlers sp-backward-barf-sexp sp--negate-argument] 14 (#$ . 256675) "P"])
2800 #@405 This is exactly like calling `sp-forward-barf-sexp' with minus ARG.
2801 In other words, instead of contracting the closing pair, the
2802 opening pair is contracted.  For more information, see the
2803 documentation of `sp-forward-barf-sexp'.
2804
2805 Examples:
2806
2807   (foo bar| baz) -> foo (bar| baz)
2808
2809   ([foo bar] |baz) -> [foo bar] (|baz)
2810
2811   (1 2 3 |4 5 6) -> 1 2 3 (|4 5 6) ;; \[universal-argument] (or 3)
2812
2813 (fn &optional ARG)
2814 (defalias 'sp-backward-barf-sexp #[256 "\300!\301!\211\302V\203)\303 \203\304\305!\202.\212\306 \211\2038\307U\2038\310 \311\312\"\311\313\"GZb\266\202]\311\312\"\311\314\"G\\b\210\315!\210`\311\316\"Y\203]\311\316\"\311\317\"GZb\210\310 \211\311\312\"\262\311\312\"\262\232\203\200\311\316\"\311\317\"GZb\210\202\217\211\311\312\"\311\313\"GZ\262b\210\210\320\311\314\"\321\322\323\324F$\266\306 `\211\311\312\"\311\313\"GZW\203\336\311\312\"\311\313\"GZb\210\325\311\314\"G\311\313\"G\\!\210\211b\210\311\313\"\311\314\"\261\210\202\211b\210\311\313\"\311\314\"\261\210\311\312\"\311\313\"GZb\210\325\311\314\"G\311\313\"G\\!\210\210\326\311\312\"\311\316\"\"\210\320\311\314\"\327\322\323\324F$\262\262)\202.\330\331!!\207" [sp--raw-argument-p prefix-numeric-value 0 sp-point-in-blank-sexp sp-message :blank-sexp sp-get-enclosing-sexp 4 sp-get-thing plist-get :beg :prefix :op sp-forward-sexp :end :cl sp--run-hook-with-args :pre-handlers barf-backward :arg :enc delete-char sp--indent-region :post-handlers sp-forward-barf-sexp sp--negate-argument] 14 (#$ . 258558) "P"])
2815 #@85 Generate `sp-skip-forward-to-symbol' or `sp-skip-backward-to-symbol'.
2816
2817 (fn FORWARD)
2818 (defalias 'sp--skip-to-symbol-1 '(macro . #[257 "\211\203\300\202    \301\203\301\202\300\203\302\202\303\203#\304\202$\305\203,\306\202-\307\2035\310\2026\311\203?\312\202@\313\203I\314\202J\315\316\317\320\321\322\323\321\324\325\326\327BDF\321\330\331\326\332BDF\321\333\334\322\326\335BDDF\321\336B\337BB\321\340B\341BB\257D\323\342\343\fCD\344BB\345\346\347\350\315\351\203\236\352\202\237\353DDEE\354\321\323\203\257\307\202\260\306\203\271\355\202\272\356D\203\304\307\202\305\306\357BE\360\361\362CE\363BBE\257E\364\365\360\366\367BD\370\n\371BEE\370    \372BEFEE\207" [1+ 1- forward-char backward-char following-char preceding-char sp--looking-at sp--looking-back sp--get-suffix sp--get-prefix (eobp) (bobp) cdr car let ((in-comment (sp-point-in-comment)) (allowed-pairs (sp--get-allowed-regexp)) (allowed-open (sp--get-opening-regexp (sp--get-allowed-pair-list))) (allowed-close (sp--get-closing-regexp (sp--get-allowed-pair-list))) (allowed-strings (sp--get-stringlike-regexp)) (prefix nil)) while and not or stop-after-string (not (sp-point-in-string)) sp-point-in-string ((point)) stop-at-string (not (sp-point-in-string)) ((point)) stop-inside-string (sp-point-in-string) ((point)) (allowed-pairs) ((or in-comment (not (sp-point-in-comment)))) (allowed-strings) ((or in-comment (not (sp-point-in-comment)))) member char-syntax ('(60 62 33 124 32 92 34 39 46)) /= 0 logand (lsh 1 20) syntax-after (point) (1- (point)) (unless in-comment (sp-point-in-comment)) allowed-close allowed-open (allowed-strings) progn setq prefix ((> (length prefix) 0)) if (and (not in-comment) (sp-point-in-comment)) goto-char ((sp-get-comment-bounds)) unless (1) ((max (length prefix) 1))] 25 (#$ . 260114)]))
2819 #@412 Skip whitespace and comments moving forward.
2820
2821 If STOP-AT-STRING is non-nil, stop before entering a string (if
2822 not already in a string).
2823
2824 If STOP-AFTER-STRING is non-nil, stop after exiting a string.
2825
2826 If STOP-INSIDE-STRING is non-nil, stop before exiting a string.
2827
2828 Examples:
2829
2830   foo|   bar -> foo   |bar
2831
2832   foo|   [bar baz] -> foo   |[bar baz]
2833
2834 (fn &optional STOP-AT-STRING STOP-AFTER-STRING STOP-INSIDE-STRING)
2835 (defalias 'sp-skip-forward-to-symbol #[768 "\300 \301 \302\303 !\304\303 !\305 \306m\206d\203$\307 \204$\307`S!\206d\2035\307 \2045\307`T!\206d\203G\307 \203G\307`T!?\206d\310!\203W\206d\300 ?\206d\310!\205d\206d\300 ??\205\303gz\311\235\204\236\312\313\314\315\"\316`!@\"\317U\203\236\204\207\300 \204\236\320!\204\223\320!\205\303\321 \262\211G\317V\205\303\204\266\300 \203\266\322 Ab\210m\204\314u\210\202m\204\211G\314]u\210\202\207" [sp-point-in-comment sp--get-allowed-regexp sp--get-opening-regexp sp--get-allowed-pair-list sp--get-closing-regexp sp--get-stringlike-regexp nil sp-point-in-string sp--looking-at (60 62 33 124 32 92 34 39 46) logand lsh 1 20 syntax-after 0 sp--looking-back sp--get-suffix sp-get-comment-bounds] 13 (#$ . 261972) "^"])
2836 (put 'sp-skip-forward-to-symbol 'CUA 'move)
2837 #@412 Skip whitespace and comments moving backward.
2838 If STOP-AT-STRING is non-nil, stop before entering a string (if
2839 not already in a string).
2840
2841 If STOP-AFTER-STRING is non-nil, stop after exiting a string.
2842
2843 If STOP-INSIDE-STRING is non-nil, stop before exiting a string.
2844
2845 Examples:
2846
2847   foo   |bar -> foo|   bar
2848
2849   [bar baz]   |foo -> [bar baz]|   foo
2850
2851 (fn &optional STOP-AT-STRING STOP-AFTER-STRING STOP-INSIDE-STRING)
2852 (defalias 'sp-skip-backward-to-symbol #[768 "\300 \301 \302\303 !\304\303 !\305 \306o\206d\203$\307 \204$\307`T!\206d\2035\307 \2045\307`S!\206d\203G\307 \203G\307`S!?\206d\310!\203W\206d\300 ?\206d\310!\205d\206d\300 ??\205\311hz\311\235\204\237\312\313\314\315\"\316`S!@\"\317U\203\237\204\210\300 \204\237\320!\204\224\320!\205\311\321 \262\211G\317V\205\311\204\267\300 \203\267\322 @b\210o\204\323u\210\202o\204\211G\314]\206\303\314[u\210\202\207" [sp-point-in-comment sp--get-allowed-regexp sp--get-opening-regexp sp--get-allowed-pair-list sp--get-closing-regexp sp--get-stringlike-regexp nil sp-point-in-string sp--looking-back (60 62 33 124 32 92 34 39 46) logand lsh 1 20 syntax-after 0 sp--looking-at sp--get-prefix sp-get-comment-bounds -1] 13 (#$ . 263240) "^"])
2853 (put 'sp-skip-backward-to-symbol 'CUA 'move)
2854 #@95 Move the point into the next string.
2855
2856 With BACK non-nil, move backwards.
2857
2858 (fn &optional BACK)
2859 (defalias 'sp-skip-into-string #[256 "\211\203\300 ?\205\301u\210\202\300 ?\205\302u\210\202\207" [sp-point-in-string -1 nil] 2 (#$ . 264527)])
2860 #@665 Move point to the next position that is the end of a symbol.
2861
2862 With ARG being positive number N, repeat that many times.
2863
2864 With ARG being Negative number -N, repeat that many times in
2865 backward direction.
2866
2867 A symbol is any sequence of characters that are in either the
2868 word constituent or symbol constituent syntax class.  Current
2869 symbol only extend to the possible opening or closing delimiter
2870 as defined by `sp-add-pair' even if part of this delimiter
2871 would match "symbol" syntax classes.
2872
2873 Examples:
2874
2875   |foo bar baz          -> foo| bar baz
2876
2877   |foo (bar (baz))      -> foo (bar| (baz)) ;; 2
2878
2879   |foo (bar (baz) quux) -> foo (bar (baz) quux|) ;; 4
2880
2881 (fn &optional ARG)
2882 (defalias 'sp-forward-symbol #[256 "\211\206\302\262\203\311\303\304!\305V\306 \307!\310!\203\302\305V\205\305m\204\370gz\311>\2046\303u\210\202%\203\227\312!\203\227\313\305!\314\315\"\206\202\314\303    \316\305\203z\203z@\203c\303\262\202n\211A\232\203n\211\262\210\211T\262A\262\202O\266\211\262@\315\"\317\305\224\305\225\320%?\266\202\203\227\305\225b\202\365\203\370\312!\203\370\313\305!\314\315\"\206\343\314\303    \316\305\203\333\203\333@\203\304\303\262\202\317\211A\232\203\317\211\262\210\211T\262A\262\202\260\266\211\262@\315\"\317\305\224\305\225\320%?\266\202\203\370\305\225b\204%m\204\273\203\256\312!\203W\313\305!\314\315\"\206H\314\303    \316\305\203@\203@@\203)\303\262\2024\211A\232\2034\211\262\210\211T\262A\262\202\266\211\262@\315\"\317\305\224\305\225\320%?\266\202\204\273\312!\203\256\313\305!\314\315\"\206\237\314\303    \316\305\203\227\203\227@\203\200\303\262\202\213\211A\232\203\213\211\262\210\211T\262A\262\202l\266\211\262@\315\"\317\305\224\305\225\320%?\266\202\204\273gz\321>\203\273\303u\210\202\370S\262\202\322!\266\205)\207\304!\305V\306 \307!\310!\203~\305V\205\201m\204\264gz\311>\204\362\303u\210\202\341\203S\312!\203S\313\305!\314\315\"\206>\314\303    \316\305\2036\2036@\203\303\262\202*\211A\232\203*\211\262\210\211T\262A\262\202 \266\211\262@\315\"\317\305\224\305\225\320%?\266\202\203S\305\225b\202\261\203\264\312!\203\264\313\305!\314\315\"\206\237\314\303    \316\305\203\227\203\227@\203\200\303\262\202\213\211A\232\203\213\211\262\210\211T\262A\262\202l\266\211\262@\315\"\317\305\224\305\225\320%?\266\202\203\264\305\225b\204\341m\204w\203j\312!\203\313\305!\314\315\"\206\314\303    \316\305\203\374\203\374@\203\345\303\262\202\360\211A\232\203\360\211\262\210\211T\262A\262\202\321\266\211\262@\315\"\317\305\224\305\225\320%?\266\202\204w\312!\203j\313\305!\314\315\"\206[\314\303    \316\305\203S\203S@\203<\303\262\202G\211A\232\203G\211\262\210\211T\262A\262\202(\266\211\262@\315\"\317\305\224\305\225\320%?\266\202\204wgz\321>\203w\303u\210\202\264S\262\202\333\322!\207" [case-fold-search sp-pair-list 1 nil abs 0 sp--get-allowed-pair-list sp--get-opening-regexp sp--get-closing-regexp (119 95) sp--looking-at match-string sp-get-pair :skip-match t sp--skip-match-p :pair-skip (119 95) sp-backward-symbol] 15 (#$ . 264782) "^p"])
2883 (put 'sp-forward-symbol 'CUA 'move)
2884 #@678 Move point to the next position that is the beginning of a symbol.
2885
2886 With ARG being positive number N, repeat that many times.
2887
2888 With ARG being Negative number -N, repeat that many times in
2889 forward direction.
2890
2891 A symbol is any sequence of characters that are in either the word
2892 constituent or symbol constituent syntax class.  Current symbol only
2893 extend to the possible opening or closing delimiter as defined by
2894 `sp-add-pair' even if part of this delimiter would match "symbol"
2895 syntax classes.
2896
2897 Examples:
2898
2899   foo bar| baz            -> foo |bar baz
2900
2901   ((foo bar) baz)|        -> ((foo |bar) baz) ;; 2
2902
2903   (quux ((foo) bar) baz)| -> (|quux ((foo) bar) baz) ;; 4
2904
2905 (fn &optional ARG)
2906 (defalias 'sp-backward-symbol #[256 "\211\206\302\262\203\326\303\304!\305V\306\307 !\310\307 !\203\317\305V\205\322o\204\360hz\311>\2046\312u\210\202%\313!\203\223\314\305!\315\316\"\206~\315\303    \317\305\203v\203v@\203_\303\262\202j\211A\232\203j\211\262\210\211T\262A\262\202K\266\211\262@\316\"\320\305\224\305\225\321%?\266\202\203\223\305\224b\202\355\313!\203\360\314\305!\315\316\"\206\333\315\303    \317\305\203\323\203\323@\203\274\303\262\202\307\211A\232\203\307\211\262\210\211T\262A\262\202\250\266\211\262@\316\"\320\305\224\305\225\321%?\266\202\203\360\305\224b\204%o\204\257\313!\203K\314\305!\315\316\"\206<\315\303    \317\305\2034\2034@\203\303\262\202(\211A\232\203(\211\262\210\211T\262A\262\202    \266\211\262@\316\"\320\305\224\305\225\321%?\266\202\204\257\313!\203\242\314\305!\315\316\"\206\223\315\303    \317\305\203\213\203\213@\203t\303\262\202\211A\232\203\211\262\210\211T\262A\262\202`\266\211\262@\316\"\320\305\224\305\225\321%?\266\202\204\257hz\322>\203\257\312u\210\202\360m\204\310\323\324\302\325\"\326`!@\"\305U\204\310\302u\210\202\257S\262\202\327!\266\204)\207\304!\305V\306\307 !\310\307 !\203\230\305V\205\233o\204\271hz\311>\204\377\312u\210\202\356\313!\203\\\314\305!\315\316\"\206G\315\303    \317\305\203?\203?@\203(\303\262\2023\211A\232\2033\211\262\210\211T\262A\262\202\266\211\262@\316\"\320\305\224\305\225\321%?\266\202\203\\\305\224b\202\266\313!\203\271\314\305!\315\316\"\206\244\315\303    \317\305\203\234\203\234@\203\205\303\262\202\220\211A\232\203\220\211\262\210\211T\262A\262\202q\266\211\262@\316\"\320\305\224\305\225\321%?\266\202\203\271\305\224b\204\356o\204x\313!\203\314\305!\315\316\"\206\315\303    \317\305\203\375\203\375@\203\346\303\262\202\361\211A\232\203\361\211\262\210\211T\262A\262\202\322\266\211\262@\316\"\320\305\224\305\225\321%?\266\202\204x\313!\203k\314\305!\315\316\"\206\\\315\303    \317\305\203T\203T@\203=\303\262\202H\211A\232\203H\211\262\210\211T\262A\262\202)\266\211\262@\316\"\320\305\224\305\225\321%?\266\202\204xhz\322>\203x\312u\210\202\271m\204\221\323\324\302\325\"\326`!@\"\305U\204\221\302u\210\202xS\262\202\350\327!\207" [case-fold-search sp-pair-list 1 nil abs 0 sp--get-opening-regexp sp--get-allowed-pair-list sp--get-closing-regexp (119 95) -1 sp--looking-back match-string sp-get-pair :skip-match t sp--skip-match-p :pair-skip (119 95) logand lsh 20 syntax-after sp-forward-symbol] 14 (#$ . 268047) "^p"])
2907 (put 'sp-backward-symbol 'CUA 'move)
2908 #@591 Rewrap the enclosing expression with a different pair.
2909
2910 PAIR is the new enclosing pair.
2911
2912 If optional argument KEEP-OLD is set, keep old delimiter and wrap
2913 with PAIR on the outside of the current expression.
2914
2915 When used interactively, the new pair is specified in minibuffer
2916 by typing the *opening* delimiter, same way as with pair
2917 wrapping.
2918
2919 When used interactively with raw prefix argument \[universal-argument], KEEP-OLD
2920 is set to non-nil.
2921
2922 Examples:
2923
2924   (foo |bar baz) -> [foo |bar baz]   ;; [
2925
2926   (foo |bar baz) -> [(foo |bar baz)] ;; \[universal-argument] [
2927
2928 (fn PAIR &optional KEEP-OLD)
2929 (defalias 'sp-rewrap-sexp #[513 "\204\301 \207\302 \211\205v\212\211\303\304\"b\210\204\"\305\303\306\"G[!\210Ac\210\303\307\"b\210@c\210\204<\305\303\310\"G!\210\311\303\307\"\312\303\304\"@GAG\303\310\"G[\303\306\"G[%@A$\210)\313@\314\315\316\303\310\"\262D$\207" [sp-last-wrapped-region sp-unwrap-sexp sp-get-enclosing-sexp plist-get :end delete-char :cl :beg :op sp--get-last-wraped-region + sp--run-hook-with-args :post-handlers rewrap-sexp :parent] 14 (#$ . 271439) (byte-code "\3012\250\302\303!\304\211\305\204\244\306\307\310\"\311\"\262\211\305\232\203(\312=\203(\313\301\304\"\210\211\314\315!!P\262\316\304\311\317\203^\203^@\203J\304\262\202R\320@\"\262\210\211T\262A\262\2026\266\211\262!\204l\321\322\"\210\304\311\317\203\232\203\232@\203\204\304\262\202\216@\232\203\216\211\262\210\211T\262A\262\202p\266\211\262\262\202\n\266\2040D\207" [current-prefix-arg done sp--get-pair-list-context wrap nil "" read-event format "Rewrap with: %s" t return throw format-kbd-macro vector ---truthy\? 0 string-prefix-p user-error "Impossible pair prefix selected: %s"] 13)])
2930 #@297 Swap the enclosing delimiters of this and the parent expression.
2931
2932 With N > 0 numeric argument, ascend that many levels before
2933 swapping.
2934
2935 Examples:
2936
2937   (foo [|bar] baz)              -> [foo (|bar) baz] ;; 1
2938
2939   (foo {bar [|baz] quux} quack) -> [foo {bar (|baz) quux} quack] ;; 2
2940
2941 (fn &optional ARG)
2942 (defalias 'sp-swap-enclosing-sexp #[256 "\300 \300T!\203\231\211\203\231\212\211\301\302\"b\210\303\301\304\"G[!\266\301\304\"c\210\301\302\"b\210\303\301\304\"G[!\266\211\301\304\"c\266\301\305\"\301\306\"GZb\266\211\301\306\"\301\307\"\261\266\303\301\307\"G\301\306\"G\\!\266\211\301\305\"\301\306\"GZb\266\301\306\"\301\307\"\261\266\211\303\301\307\"G\301\306\"G\\!\262)\202\234\310\311!\207" [sp-get-enclosing-sexp plist-get :end delete-char :cl :beg :prefix :op sp-message :point-not-deep-enough] 9 (#$ . 273205) "p"])
2943 #@229 Unwrap expression defined by SEXP.
2944
2945 Warning: this function remove possible empty lines and reindents
2946 the unwrapped sexp, so the SEXP structure will no longer
2947 represent a valid object in a buffer!
2948
2949 (fn SEXP &optional NO-CLEANUP)
2950 (defalias 'sp--unwrap-sexp #[513 "\305\306\"\305\307\"GZ\305\306\"|\210\305\310\"\305\311\"GZ\305\310\"\305\312\"G\\|\266\211?\205\270\305\310\"\305\311\"GZ\262\313\305\306\"\305\307\"GZ\305\312\"G\305\311\"G#\262\314\211\212b\210\315\316\317!\314\320\321#)\266\203\203u\322\317!\211@A|\266`\262b\210\315\316\317!\314\320\321#)\266\203\203\227\322\317!\211@A|\266`\262)    \n>\206\244 \f>?\205\266i\323 \324\"\210\325\"\266\202\266\204\207" [inhibit-changing-match-data major-mode sp-no-reindent-after-kill-modes indent-line-function sp-no-reindent-after-kill-indent-line-functions plist-get :end :cl :beg :prefix :op - nil "^[\n     ]+\\'" thing-at-point line t string-match bounds-of-thing-at-point sp--current-indentation sp--indent-region sp--back-to-indentation] 13 (#$ . 274072)])
2951 #@234 Change the inside of the next expression.
2952
2953 First, kill the inside of the next balanced expression, then move
2954 point just after the opening delimiter.
2955
2956 Examples:
2957
2958   (f|oo [bar] baz) -> (foo [|] baz)
2959
2960   {|'foo': 'bar'}  -> {'|': 'bar'}
2961 (defalias 'sp-change-inner #[0 "\300 \211\205+\211\301\302\303\"\302\304\"G\\\302\305\"\302\306\"GZ\"\210\302\303\"\302\304\"G\\b\262\207" [sp-get-sexp kill-region plist-get :beg :op :end :cl] 8 (#$ . 275132) nil])
2962 #@370 Change the inside of the enclosing expression.
2963
2964 Whitespace on both sides of the inner items is preserved if it
2965 contains newlines.  Invoking this function on a blank sexp will
2966 wipe out remaining whitespace (see `sp-point-in-blank-sexp').
2967
2968 Move the point to the beginning of the original content.
2969
2970 Examples:
2971
2972   (f|oo [bar] baz) -> (|)
2973
2974   {'f|oo': 'bar'}  -> {'|': 'bar'}
2975 (defalias 'sp-change-enclosing #[0 "\300 \211\205^\211\301 \2031\302\303\304\"\303\305\"G\\\303\306\"\303\307\"GZ\"\210\303\304\"\303\305\"G\\b\202\\\303\304\"\303\305\"G\\b\210\310\311w\210`\303\306\"\303\307\"GZb\210\310\311x\210`\302\"\210b\266\202\262\207" [sp-get-enclosing-sexp sp-point-in-blank-sexp kill-region plist-get :beg :op :end :cl "    \n " nil] 8 (#$ . 275595) nil])
2976 #@488 Unwrap the following expression.
2977
2978 With ARG N, unwrap Nth expression as returned by
2979 `sp-forward-sexp'.  If ARG is negative -N, unwrap Nth expression
2980 backwards as returned by `sp-backward-sexp'.
2981
2982 Return the information about the just unwrapped expression.  Note
2983 that this structure does not represent a valid expression in the
2984 buffer.
2985
2986 Examples:
2987
2988   |(foo bar baz)     -> |foo bar baz
2989
2990   (foo bar| baz)     -> foo bar| baz
2991
2992   |(foo) (bar) (baz) -> |(foo) bar (baz) ;; 2
2993
2994 (fn &optional ARG)
2995 (defalias 'sp-unwrap-sexp #[256 "\211\206\301\262\302\212\303!)\211\203\304!\210\211\262)\207" [sp-navigate-consider-symbols 1 nil sp-forward-sexp sp--unwrap-sexp] 4 (#$ . 276369) "p"])
2996 #@346 Unwrap the previous expression.
2997
2998 With ARG N, unwrap Nth expression as returned by
2999 `sp-backward-sexp'.  If ARG is negative -N, unwrap Nth expression
3000 forward as returned by `sp-forward-sexp'.
3001
3002 Examples:
3003
3004   (foo bar baz)|     -> foo bar baz|
3005
3006   (foo bar)| (baz)   -> foo bar| (baz)
3007
3008   (foo) (bar) (baz)| -> foo (bar) (baz) ;; 3
3009
3010 (fn &optional ARG)
3011 (defalias 'sp-backward-unwrap-sexp #[256 "\300\206\301[!\207" [sp-unwrap-sexp 1] 3 (#$ . 277058) "p"])
3012 #@317 Unwrap the current list.
3013
3014 With ARG N, unwrap Nth list as returned by applying `sp-up-sexp'
3015 N times.  This function expect positive arg.
3016
3017 Examples:
3018
3019   (foo (bar| baz) quux) -> (foo bar| baz quux)
3020
3021   (foo |(bar baz) quux) -> foo |(bar baz) quux
3022
3023   (foo (bar| baz) quux) -> foo (bar| baz) quux ;; 2
3024
3025 (fn &optional ARG)
3026 (defalias 'sp-splice-sexp #[256 "\211\206\300\262\301!\211\2057\211\302\303\"\262\304\232\2034\211\212\302\305\"b\210\301!\211\205,\306!\262)\262\2027\306!\207" [1 sp-get-enclosing-sexp plist-get :prefix ";" :beg sp--unwrap-sexp] 6 (#$ . 277516) "p"])
3027 #@246 Save the text in the region between BEG and END inside EXPR,
3028 then delete EXPR and insert the saved text.
3029
3030 If optional argument JUPM-END is equal to the symbol 'end move
3031 the point after the re-inserted text.
3032
3033 (fn BEG END EXPR &optional JUMP-END)
3034 (defalias 'sp--splice-sexp-do-killing #[1027 "\300\211\301\"\262\302\303\"\302\304\"GZ\262\302\305\"\262|\210\212c\210\306\302\303\"\302\304\"GZ\262`\"\210`\262)\307=\205A\211b\207" [nil buffer-substring-no-properties plist-get :beg :prefix :end sp--indent-region end] 12 (#$ . 278107)])
3035 #@761 Unwrap the current list and kill all the expressions
3036 between start of this list and the point.
3037
3038 With the optional argument ARG, repeat that many times.  This
3039 argument should be positive number.
3040
3041 Examples:
3042
3043   (foo (let ((x 5)) |(sqrt n)) bar)  -> (foo |(sqrt n) bar)
3044
3045 ​  (when ok|                             |(perform-operation-1)
3046 ​    (perform-operation-1)            ->  (perform-operation-2)
3047 ​    (perform-operation-2))
3048
3049 ​  (save-excursion                    -> |(awesome-stuff-happens) ;; 2
3050 ​    (unless (test)
3051 ​      |(awesome-stuff-happens)))
3052
3053 Note that to kill only the content and not the enclosing
3054 delimiters you can use \[universal-argument] \[sp-backward-kill-sexp].
3055 See `sp-backward-kill-sexp' for more information.
3056
3057 (fn &optional ARG)
3058 (defalias 'sp-splice-sexp-killing-backward #[256 "\211\300V\205\301\302!\210\211S\262\202\207" [0 sp-splice-sexp-killing-around (4)] 3 (#$ . 278667) "p"])
3059 #@455 Unwrap the current list and kill all the expressions between
3060 the point and the end of this list.
3061
3062 With the optional argument ARG, repeat that many times.  This
3063 argument should be positive number.
3064
3065 Examples:
3066
3067   (a (b c| d e) f) -> (a b c| f)
3068
3069   (+ (x |y z) w)   -> (+ x| w)
3070
3071 Note that to kill only the content and not the enclosing
3072 delimiters you can use \[universal-argument] \[sp-kill-sexp].
3073 See `sp-kill-sexp' for more information.
3074
3075 (fn &optional ARG)
3076 (defalias 'sp-splice-sexp-killing-forward #[256 "\211\300V\205Q\301\302!\211\203F\303\304!\211\305\306\"\262\305\306\"\262\232\203)\307\310!\210\202B\311\305\312\"\262\305\306\"\305\313\"G\\\262\314$\210\210\202I\315\262\210\211S\262\202\207" [0 sp-get-enclosing-sexp 1 sp-get-thing t plist-get :beg sp-kill-sexp (16) sp--splice-sexp-do-killing :end :op end -1] 10 (#$ . 279594) "p"])
3077 #@1135 Unwrap the current list and kill everything inside except next expression.
3078
3079 With ARG save that many next expressions.  With ARG negative -N,
3080 save that many expressions backward.
3081
3082 If ARG is raw prefix argument \[universal-argument] this function behaves exactly
3083 the same as `sp-splice-sexp-killing-backward'.
3084
3085 If ARG is negative raw prefix argument \[negative-argument] \[universal-argument] this function
3086 behaves exactly the same as `sp-splice-sexp-killing-forward'.
3087
3088 Note that the behaviour with the prefix argument seems to be
3089 reversed.  This is because the backward variant is much more
3090 common and hence deserve shorter binding.
3091
3092 If ARG is raw prefix argument \[universal-argument] \[universal-argument] raise the expression the point
3093 is inside of.  This is the same as `sp-backward-up-sexp' followed by
3094 `sp-splice-sexp-killing-around'.
3095
3096 Examples:
3097
3098   (a b |(c d) e f)      -> |(c d)     ;; with arg = 1
3099
3100   (a b |c d e f)        -> |c d       ;; with arg = 2
3101
3102   (- (car x) |a 3)      -> (car x)|   ;; with arg = -1
3103
3104   (foo (bar |baz) quux) -> |(bar baz) ;; with arg = \[universal-argument] \[universal-argument]
3105
3106 (fn &optional ARG)
3107 (defalias 'sp-splice-sexp-killing-around #[256 "\211\300\267\202\n\301\302!\207\211\303\232\203\304 \210\302\262\305\306!\212\307 \210\310 \203L\311\302!\312 \313\314\"\262@V\203<\315\262\202G\211Ab\210\316\305w\210\311\302!\266\202\202O\311\302!)\211\205s\310 \203o\204o\312 \317V\203j\211@\202l\211Ab\266\307 \210\320!\310 \203\263\204\263\317V\203\230\312 @\313\321\"\313\322\"G\\\262B\202[\211\313\314\"\313\323\"GZ\313\321\"\313\322\"G\\B\262\202[\310 \203\327\203\327\211\313\314\"\313\323\"GZ\313\321\"\313\322\"G\\B\262\202[\212\316\305w\210\317V\205\310 \205\212\324\305x\210n)\205`\313\321\"\313\322\"G\\\262B)\206[\212\325 \210\317V\205?\310 \205?\312 @b\205?`\313\314\"\262V\205?\212\324\305x\210n)\205?`\313\321\"\313\322\"G\\\262B)\206[\211\313\314\"\313\323\"GZ\313\321\"\313\322\"G\\B\262\211A\262\242\326    \317V?\205p\327$\266\204\207" [#s(hash-table size 1 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ((-4) 6)) sp-splice-sexp-killing-forward 1 (16) sp-backward-up-sexp nil prefix-numeric-value sp-skip-backward-to-symbol sp-point-in-comment sp-get-enclosing-sexp sp-get-comment-bounds plist-get :beg t "    \n " 0 sp--next-thing-selection :end :suffix :prefix "     " sp-backward-symbol sp--splice-sexp-do-killing end] 14 (#$ . 280463) "P"])
3108 (defalias 'sp-raise-sexp 'sp-splice-sexp-killing-around)
3109 #@820 Convolute balanced expressions.
3110
3111 Save the expressions preceding point and delete them.  Then
3112 splice the resulting expression.  Wrap the current enclosing list
3113 with the delimiters of the spliced list and insert the saved
3114 expressions.
3115
3116 If point is in a symbol, move to end of symbol before convolving.
3117
3118 With ARG positive N, move up N lists before wrapping.
3119
3120 Examples:
3121
3122 We want to move the `while' before the `let'.
3123
3124 ​  (let ((stuff 1)             (while (we-are-good)
3125 ​        (other 2))              (let ((stuff 1)
3126 ​    (while (we-are-good)  ->          (other 2))
3127 ​     |(do-thing 1)               |(do-thing 1)
3128 ​      (do-thing 2)                (do-thing 2)
3129 ​      (do-thing 3)))              (do-thing 3)))
3130
3131   (forward-char (sp-get env |:op-l)) -> (sp-get env (forward-char |:op-l))
3132
3133 (fn &optional ARG)
3134 (defalias 'sp-convolute-sexp #[256 "\212\301 \203    \302 \210\303\304\305!)\262\203\306 \210\307 \310 \211\311\212\312\313\"\312\314\"GZb\210\315 )\312\313\"\"\262\311\312\316\"\312\317\"GZ\212\320 )\"\262\307 \321\312\313\"\312\316\"\312\317\"G[\312\322\"G[$\\U\205\210\311\212\312\316\"\312\317\"GZb\210\323 \315 ])\312\316\"\312\317\"GZ\"\262\310!\211\312\313\"b\210c\210\312\316\"\312\317\"GZb\210\203\255\202\256\324\261\210\310 \325\312\316\"\312\313\"\"\266    )\326 \207" [inhibit-changing-match-data sp-point-in-symbol sp-forward-symbol " " t looking-at just-one-space buffer-size sp-get-enclosing-sexp delete-and-extract-region plist-get :end :cl sp-backward-whitespace :beg :prefix sp-forward-whitespace - :suffix line-beginning-position "" sp--indent-region indent-according-to-mode] 15 (#$ . 283026) "p"])
3135 #@427 Absorb previous expression.
3136
3137 Save the expressions preceding point and delete them.  Then slurp
3138 an expression backward and insert the saved expressions.
3139
3140 With ARG positive N, absorb that many expressions.
3141
3142 Examples:
3143
3144 ​  (do-stuff 1)         (save-excursion
3145 ​  (save-excursion  ->   |(do-stuff 1)
3146 ​   |(do-stuff 2))        (do-stuff 2))
3147
3148   foo bar (concat |baz quux) -> (concat |foo bar baz quux) ;; 2
3149
3150 (fn &optional ARG)
3151 (defalias 'sp-absorb-sexp #[256 "\300 \210`\301 \210`{`|\210\302!\210\300 \210\301 \210\211c\210\212\303 \210\304 \210)\266\300 \207" [sp-forward-whitespace sp-beginning-of-sexp sp-backward-slurp-sexp sp-backward-up-sexp indent-sexp] 5 (#$ . 284708) "p"])
3152 #@636 Move all expression preceding point except the first one out of the current list.
3153
3154 With ARG positive N, keep that many expressions from the start of
3155 the current list.
3156
3157 This is similar as `sp-backward-barf-sexp' but it also drags the
3158 first N expressions with the delimiter.
3159
3160 Examples:
3161
3162 ​  (save-excursion     ​(do-stuff 1)
3163 ​    (do-stuff 1)      (do-stuff 2)
3164 ​    (do-stuff 2)  ->  (save-excursion
3165 ​   |(do-stuff 3))      |(do-stuff 3))
3166
3167 ​  (while not-done-yet       (execute-only-once)
3168 ​    (execute-only-once) ->  (while not-done-yet    ;; arg = 2
3169 ​   |(execute-in-loop))       |(execute-in-loop))
3170
3171 (fn &optional ARG)
3172 (defalias 'sp-emit-sexp #[256 "\300\212\301 \210`\302!\210\303\304!\210\211`{\262\211`|\266)\212\305\306!\210)\307 \210\211c\210\212\310 \210\311 )\207" [nil sp-beginning-of-sexp sp-forward-sexp sp-skip-forward-to-symbol t sp-backward-barf-sexp (4) sp-down-sexp sp-backward-up-sexp indent-sexp] 5 (#$ . 285401) "p"])
3173 #@477 Move the expression after point before the enclosing balanced expression.
3174
3175 The point moves with the extracted expression.
3176
3177 With ARG positive N, extract N expressions after point.
3178
3179 With ARG negative -N, extract N expressions before point.
3180
3181 With ARG being raw prefix argument \[universal-argument], extract all the expressions
3182 up until the end of enclosing list.
3183
3184 If the raw prefix is negative, this behaves as \[universal-argument] `sp-backward-barf-sexp'.
3185
3186 (fn &optional ARG)
3187 (defalias 'sp-extract-before-sexp #[256 "\211\301\232\203\n\302\303!\207\304!\210\305 \306\211\211\211\212\307 \262\310 \262\311\312\"\311\313\"GZ\262b\210\212\314\306x\210n)\203Q\315 \211\311\316\"U\203L\311\316\"\311\312\"|\210\266\202T\317\262\320\"\262\211\203l\315 \211\311\316\"\311\312\"|\266\311\316\"\311\321\"GZ\262b\210\322\261\210\323\311\316\"\311\321\"GZ\311\312\"\"\266)\324\325\326!\306\317\327#)\266\203\203\260\330\326!\211@A|\266\311\316\"\311\321\"GZ\262b\207" [inhibit-changing-match-data (-4) sp-backward-barf-sexp (4) sp-select-next-thing sp-get-enclosing-sexp nil region-beginning region-end plist-get :end :cl "     " sp-get-whitespace :beg t delete-and-extract-region :prefix "\n" sp--indent-region "^[\n     ]+\\'" thing-at-point line string-match bounds-of-thing-at-point] 13 (#$ . 286363) "P"])
3188 #@536 Move the expression after point after the enclosing balanced expression.
3189
3190 The point moves with the extracted expression.
3191
3192 With ARG positive N, extract N expressions after point.
3193
3194 With ARG negative -N, extract N expressions before point.
3195
3196 With ARG being raw prefix argument \[universal-argument], extract all the
3197 expressions up until the end of enclosing list.
3198
3199 With ARG being negative raw prefix argument \[negative-argument] \[universal-argument], extract all the
3200 expressions up until the start of enclosing list.
3201
3202 (fn &optional ARG)
3203 (defalias 'sp-extract-after-sexp #[256 "\302!\210\203\303\304 \305\303\211\211\211\212\306 \262\307 \262\310\311\"\310\312\"GZ\262b\210\212\313\303x\210n)\203Y\314 \211\310\315\"U\203T\310\315\"\310\311\"|\210\310\311\"\310\315\"Z\262\266\202\\\316\262\317\"\262\211\203\205\314 \211\310\315\"\310\311\"|\266\211\310\311\"\310\315\"Z\\\262\266\320\310\311\"G#b\266\321\261\210\322\310\315\"\310\323\"GZ\310\311\"\"\266`\262)\305\262\324\325\326!\303\316\327#)\266\203\203\326\330\326!\211@A|\210\211A@Z\262\210\331\332 \303\316#\203\371\314 \211\310\315\"\310\311\"|\210\310\311\"\310\315\"Z\262\266Zb\266\206)\207\304 \305\303\211\211\211\212\306 \262\307 \262\310\311\"\310\312\"GZ\262b\210\212\313\303x\210n)\203P\314 \211\310\315\"U\203K\310\315\"\310\311\"|\210\310\311\"\310\315\"Z\262\266\202S\316\262\317\"\262\211\203|\314 \211\310\315\"\310\311\"|\266\211\310\311\"\310\315\"Z\\\262\266\320\310\311\"G#b\266\321\261\210\322\310\315\"\310\323\"GZ\310\311\"\"\266`\262)\305\262\324\325\326!\303\316\327#)\266\203\203\315\330\326!\211@A|\210\211A@Z\262\210\331\332 \303\316#\203\360\314 \211\310\315\"\310\311\"|\210\310\311\"\310\315\"Z\262\266Zb\207" [case-fold-search inhibit-changing-match-data sp-select-next-thing nil sp-get-enclosing-sexp 0 region-beginning region-end plist-get :end :cl "     " sp-get-whitespace :beg t delete-and-extract-region - "\n" sp--indent-region :prefix "^[\n     ]+\\'" thing-at-point line string-match bounds-of-thing-at-point sp--looking-back sp--get-opening-regexp] 14 (#$ . 287710) "P"])
3204 #@120 Skip forward past the whitespace characters.
3205 With non-nil ARG return number of characters skipped.
3206
3207 (fn &optional ARG)
3208 (defalias 'sp-forward-whitespace #[256 "\300\301w\203 \211\202\f`\207" ["     \n" nil] 3 (#$ . 289912) "^P"])
3209 (put 'sp-forward-whitespace 'CUA 'move)
3210 #@121 Skip backward past the whitespace characters.
3211 With non-nil ARG return number of characters skipped.
3212
3213 (fn &optional ARG)
3214 (defalias 'sp-backward-whitespace #[256 "\300\301x\203 \211\202\f`\207" ["     \n" nil] 3 (#$ . 290188) "^P"])
3215 (put 'sp-backward-whitespace 'CUA 'move)
3216 #@670 Split the list or string the point is on into two.
3217
3218 If ARG is a raw prefix \[universal-argument] split all the sexps in current expression
3219 in separate lists enclosed with delimiters of the current
3220 expression.
3221
3222 See also setting `sp-split-sexp-always-split-as-string' which
3223 determines how sexps inside strings are treated and also for a
3224 discussion of how to automatically add concatenation operators to
3225 string splitting.
3226
3227 Examples:
3228
3229   (foo bar |baz quux)   -> (foo bar) |(baz quux)
3230
3231   "foo bar |baz quux"   -> "foo bar" |"baz quux"
3232
3233   ([foo |bar baz] quux) -> ([foo] |[bar baz] quux)
3234
3235   (foo bar| baz quux) -> (foo) (bar|) (baz) (quux) ;; \[universal-argument]
3236
3237 (fn ARG)
3238 (defalias 'sp-split-sexp #[257 "\211\301\267\202i\302 \211\205h\211@\303\304\"\262@\303\305\"\262@\303\306\"\262@\303\307\"\262A\262\237\262\212\211b\210\310G[!\210\203^@\303\307\"b\210c\210\303\306\"b\210c\266A\262\202>b\210\310G!)\266\204\207\205o\311 \211\203\201\212\312 ASb\210\313\314!)\202\204\313\314!\211\205\310\211\315\303\304\"\316\317#\210\203\247\303\305\"c\210\212\303\304\"c\210)\202\276\320\321!\303\305\"c\210[u\210\212\322 \210\303\304\"c\210)\315\303\304\"\323\317#\262\262\207" [sp-split-sexp-always-split-as-string #s(hash-table size 1 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ((4) 6)) sp-get-list-items plist-get :op :cl :beg :end delete-char sp-point-in-string sp-get-quoted-string-bounds sp-get-enclosing-sexp 1 sp--run-hook-with-args :pre-handlers split-sexp sp-backward-whitespace t sp-forward-whitespace :post-handlers] 10 (#$ . 290467) "P"])
3239 #@245 Join the expressions PREV and NEXT if they are of the same type.
3240
3241 The expression with smaller :beg is considered the previous one,
3242 so the input order does not actually matter.
3243
3244 Return the information about resulting expression.
3245
3246 (fn PREV NEXT)
3247 (defalias 'sp--join-sexp #[514 "\300\301\"\262\300\301\"\262\232\203\251\300\302\"\262\300\302\"\262\232\203\251\300\303\"\262\300\303\"\262V\203<\262\262\211\300\303\"\300\304\"GZ\300\303\"\300\301\"G\\|\266\300\305\"\300\302\"GZ\300\305\"|\266\303\300\303\"\262\305\306\300\305\"\300\301\"G\300\304\"G#\262\300\302\"G\262Z\301\300\301\"\262\302\300\302\"\262\304\n\300\304\"\262\257\n\207\307\310!\207" [plist-get :op :cl :beg :prefix :end - sp-message :different-type] 15 (#$ . 292087)])
3248 #@727 Join the sexp before and after point if they are of the same type.
3249
3250 If ARG is positive N, join N expressions after the point with the
3251 one before the point.
3252
3253 If ARG is negative -N, join N expressions before the point with
3254 the one after the point.
3255
3256 If ARG is a raw prefix \[universal-argument] join all the things up until the end
3257 of current expression.
3258
3259 The joining stops at the first expression of different type.
3260
3261 Examples:
3262
3263   (foo bar) |(baz)                    -> (foo bar |baz)
3264
3265   (foo) |(bar) (baz)                  -> (foo |bar baz) ;; 2
3266
3267   [foo] [bar] |[baz]                  -> [foo bar |baz] ;; -2
3268
3269   (foo bar (baz)| (quux) (blob bluq)) -> (foo bar (baz| quux blob bluq)) ;; \[universal-argument]
3270
3271 (fn &optional ARG)
3272 (defalias 'sp-join-sexp #[256 "\300!\301!\302!\212\303\304!!)\305\212\203c\306U\203c\307\304!!\262\310V\203;\211\311\312\"\262\311\313\"\262V\202P\310W\203}\211\311\313\"\262\311\312\"\262W\203}\314\"\262\307\304!!\262\202#\310V\203}\307\304!!\262\314\"\262S\262\202c)\207" [sp--raw-argument-p prefix-numeric-value abs sp-backward-sexp sp--signum nil 4 sp-forward-sexp 0 plist-get :beg :end sp--join-sexp] 11 (#$ . 292886) "P"])
3273 #@409 Return the bounds of selection over next thing.
3274
3275 See `sp-select-next-thing' for the meaning of ARG.
3276
3277 If POINT is non-nil, it is assumed it's a point inside the buffer
3278 from which the selection extends, either forward or backward,
3279 depending on the value of ARG.
3280
3281 The return value has the same format as `sp-get-sexp'.  This does
3282 not necessarily represent a valid balanced expression!
3283
3284 (fn &optional ARG POINT)
3285 (defalias 'sp--next-thing-selection #[512 "\212\300!\301!\211\302\211\211\211\203\237\303U\203\237\304 \211\204&\305\306!\210\202S\212\211\307\310\"\307\311\"GZ\262b\210\312\313!\211\203Q\211\307\310\"\262\307\311\"\262\307\314\"\262\210\210)    \204\233\312 \211\203\232\211\307\315\"\262\307\315\"\262\232\203\206\262\307\310\"\307\311\"GZ\262\262\202\232\211\307\315\"\262    \307\316\"\262\307\317\"\262\210\210\210\202\277\203    \320U\203    \304 \211\204\270\305\306!\210\202\344\212\211\307\315\"\307\316\"G\\\262b\210\312 \211\203\342\211\307\315\"\262    \307\316\"\262\307\317\"\262\210\210)\210\204\277\312\313!\211\203\211\307\310\"\262\307\311\"\262\307\314\"\262\210\210\202\277\203N\321!\322U\203N\304 \211\204$\305\306!\210\202J\211\307\315\"\262\307\310\"\262\307\316\"\262\307\311\"\262\307\317\"\262\307\314\"\262\210\210\202\277\323V\203\316\324 \211S\262    \n\206i\307\315\"\262\262\323V\203\227\211\203\227\324 \262\211\307\315\"\262\211    W\203\216\262\211\262    \210S\262    \202k\n\203\244\nU\204\270\307\315\"\262    \307\316\"\262\307\317\"\262\210\211\307\310\"\262\307\311\"\262\307\314\"\266\204\202\277\323W\203Q\325 \211T\262    \n\206\351\307\310\"\262\262\323W\203\211\203\325 \262\211\307\310\"\262\211V\203\262\211\262\210T\262    \202\353\211\307\315\"\262    \307\316\"\262\307\317\"\262\210\n\2038\nU\204L\307\310\"\262\307\311\"\262\307\314\"\262\210\266\202\277\323U\203\277\304 \211\204e\305\306!\210\202\276\212\211\307\315\"\307\316\"G\\\262b\210\312 \211\203\217\211\307\315\"\262    \307\316\"\262\307\317\"\262\210\210)\212\211\307\310\"\307\311\"GZ\262b\210\312\313!\211\203\274\211\307\310\"\262\307\311\"\262\307\314\"\262\210\210)\210\315\310\316\311    \317\n\314 \257\f\266\210)\207" [sp--raw-argument-p prefix-numeric-value "" 4 sp-get-enclosing-sexp error "No enclosing expression" plist-get :end :cl sp-get-thing t :suffix :beg :op :prefix -4 abs 16 0 sp-forward-sexp sp-backward-sexp] 22 (#$ . 294091)])
3286 #@1326 Set active region over next thing as recognized by `sp-get-thing'.
3287
3288 If ARG is positive N, select N expressions forward.
3289
3290 If ARG is negative -N, select N expressions backward.
3291
3292 If ARG is a raw prefix \[universal-argument] select all the things up until the
3293 end of current expression.
3294
3295 If ARG is a raw prefix \[universal-argument] \[universal-argument] select the current expression (as
3296 if doing `sp-backward-up-sexp' followed by
3297 `sp-select-next-thing').
3298
3299 If ARG is number 0 (zero), select all the things inside the
3300 current expression.
3301
3302 If POINT is non-nil, it is assumed it's a point inside the buffer
3303 from which the selection extends, either forward or backward,
3304 depending on the value of ARG.
3305
3306 If the currently active region contains a balanced expression,
3307 following invocation of `sp-select-next-thing' will select the
3308 inside of this expression .  Therefore calling this function
3309 twice with no active region will select the inside of the next
3310 expression.
3311
3312 If the point is right in front of the expression any potential
3313 prefix is ignored.  For example, '|(foo) would only select (foo)
3314 and not include ' in the selection.  If you wish to also select
3315 the prefix, you have to move the point backwards.
3316
3317 With `sp-navigate-consider-symbols' symbols and strings are also
3318 considered balanced expressions.
3319
3320 (fn &optional ARG POINT)
3321 (defalias 'sp-select-next-thing #[512 "\300\"`\301\302\"\262\301\303\"\262\304\203\204(\305o\203%\306\202&\307!\210\310 \203z\311 \312 \301\302\"U\206H\301\302\"\301\313\"GZU\262\203x\211\301\303\"\262U\203x\301\302\"\301\314\"G\\\262\301\303\"\301\315\"GZ\262\210\316\262\266\317!\320V\203\220\321!\204\220U\204\243\211\204\243\301\302\"\301\313\"GZ\262\262\322\316\211#\210b\210\207" [sp--next-thing-selection plist-get :beg :end nil user-error "At beginning of buffer" "At end of buffer" region-active-p region-beginning region-end :prefix :op :cl t prefix-numeric-value 0 sp--raw-argument-p push-mark] 15 (#$ . 296648) "P"])
3322 #@264 Set active region over ARG previous things as recognized by `sp-get-thing'.
3323
3324 If ARG is negative -N, select that many expressions forward.
3325
3326 With `sp-navigate-consider-symbols' symbols and strings are also
3327 considered balanced expressions.
3328
3329 (fn &optional ARG POINT)
3330 (defalias 'sp-select-previous-thing #[512 "\300\301!\"\207" [sp-select-next-thing sp--negate-argument] 5 (#$ . 298668) "P"])
3331 #@106 Just like `sp-select-next-thing' but run `exchange-point-and-mark' afterwards.
3332
3333 (fn &optional ARG POINT)
3334 (defalias 'sp-select-next-thing-exchange #[512 "\300\"\301 \210\207" [sp-select-next-thing exchange-point-and-mark] 5 (#$ . 299065) "P"])
3335 #@110 Just like `sp-select-previous-thing' but run `exchange-point-and-mark' afterwards.
3336
3337 (fn &optional ARG POINT)
3338 (defalias 'sp-select-previous-thing-exchange #[512 "\300\"\301 \210\207" [sp-select-previous-thing exchange-point-and-mark] 5 (#$ . 299317) "P"])
3339 #@386 Set mark ARG balanced expressions from point.
3340 The place mark goes is the same place \[sp-forward-sexp] would
3341 move to with the same argument.
3342 Interactively, if this command is repeated
3343 or (in Transient Mark mode) if the mark is active,
3344 it marks the next ARG sexps after the ones already marked.
3345 This command assumes point is not in a string or comment.
3346
3347 (fn &optional ARG ALLOW-EXTEND)
3348 (defalias 'sp-mark-sexp #[512 "\211\203L    =\203\304\305!\204\n\203L \203L\203\"\306!\202.\304 `W\203-\307\202.\310\262\311\212`\304 b\210\312!\210\313`\"\204F\314\315!\210`\262)!\207\316\212\312\306!!\210`)\317\305#\207" [last-command this-command transient-mark-mode mark-active mark t prefix-numeric-value -1 1 set-mark sp-forward-sexp sp-region-ok-p user-error "Can not extend selection: region invalid" push-mark nil] 7 (#$ . 299581) "P\np"])
3349 #@925 Delete a character forward or move forward over a delimiter.
3350
3351 If on an opening delimiter, move forward into balanced expression.
3352
3353 If on a closing delimiter, refuse to delete unless the balanced
3354 expression is empty, in which case delete the entire expression.
3355
3356 If the delimiter does not form a balanced expression, it will be
3357 deleted normally.
3358
3359 With a numeric prefix argument N > 0, delete N characters forward.
3360
3361 With a numeric prefix argument N < 0, delete N characters backward.
3362
3363 With a numeric prefix argument N = 0, simply delete a character
3364 forward, without regard for delimiter balancing.
3365
3366 If ARG is raw prefix argument \[universal-argument], delete
3367 characters forward until a closing delimiter whose deletion would
3368 break the proper pairing is hit.
3369
3370 Examples:
3371
3372  (quu|x "zot") -> (quu| "zot")
3373
3374  (quux |"zot") -> (quux "|zot") -> (quux "|ot")
3375
3376  (foo (|) bar) -> (foo | bar)
3377
3378  |(foo bar) -> (|foo bar)
3379
3380 (fn &optional ARG)
3381 (defalias 'sp-delete-char #[256 "\203N\302\303!\211\203\304\202\305!\211\306V\2039\211\306V\205J\307 \211\203:\211@G\206-\310[u\210\311@GAG\\!\210\211\262\203G\211S\262\202\312 \203\\\212\302u\210\312 )\204\\\306\262\202\313\314\315\316!!!\203\314\317 \320\306\321\322\323!\324\"\325$\216\326 )\262\211\203\275\211\327\330\"\327\331\"GZ\262`U\203\225\306\262\202\304\211\327\332\"\262`U\203\263\211\327\332\"\327\333\"G\\\262b\210\202\304\311\334\306!G!\210\202\304\311\334\306!G!\210\210\211S\262\202\312 \204\345\212\302u\210\312 )\203\345\302u\210\211S\262\202\313\335\315\316!!!\203\317 \320\306\321\322\323!\336\"\325$\216\326 )\262\203 \306\262\202\311\334\306!G!\210\211S\262\202\337\301!\203.    \203.\340\310!\210\211S\262\202\311\310!\210\211S\262\202\211\306U\203E\311\310!\202J\341\342!!\266\202)\207\303!\211\203Y\304\202\\\305!\211\306V\203\201\211\306V\205\222\307 \211\203\202\211@G\206u\310[u\210\311@GAG\\!\210\211\262\203\217\211S\262\202b\312 \203\244\212\302u\210\312 )\204\244\306\262\202b\313\314\315\316!!!\203\317 \320\306\321\322\323!\343\"\325$\216\326 )\262\211\203\211\327\330\"\327\331\"GZ\262`U\203\335\306\262\202\f\211\327\332\"\262`U\203\373\211\327\332\"\327\333\"G\\\262b\210\202\f\311\334\306!G!\210\202\f\311\334\306!G!\210\210\211S\262\202b\312 \204-\212\302u\210\312 )\203-\302u\210\211S\262\202b\313\335\315\316!!!\203a\317 \320\306\321\322\323!\344\"\325$\216\326 )\262\203S\306\262\202b\311\334\306!G!\210\211S\262\202b\337\301!\203v    \203v\340\310!\210\211S\262\202b\311\310!\210\211S\262\202b\211\306U\203\215\311\310!\202\222\341\342!!\207" [case-fold-search hungry-delete-mode nil sp--raw-argument-p 100000000 prefix-numeric-value 0 sp-point-in-empty-sexp 1 delete-char sp-point-in-string sp--looking-at sp--get-opening-regexp sp--get-pair-list-context navigate match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 sp-get-thing plist-get :end :cl :beg :op match-string sp--get-closing-regexp [set-match-data evaporate] boundp hungry-delete-forward sp-backward-delete-char sp--negate-argument [set-match-data evaporate] [set-match-data evaporate]] 10 (#$ . 300439) "P"])
3382 #@929 Delete a character backward or move backward over a delimiter.
3383
3384 If on a closing delimiter, move backward into balanced expression.
3385
3386 If on a opening delimiter, refuse to delete unless the balanced
3387 expression is empty, in which case delete the entire expression.
3388
3389 If the delimiter does not form a balanced expression, it will be
3390 deleted normally.
3391
3392 With a numeric prefix argument N > 0, delete N characters backward.
3393
3394 With a numeric prefix argument N < 0, delete N characters forward.
3395
3396 With a numeric prefix argument N = 0, simply delete a character
3397 backward, without regard for delimiter balancing.
3398
3399 If ARG is raw prefix argument \[universal-argument], delete
3400 characters backward until a opening delimiter whose deletion would
3401 break the proper pairing is hit.
3402
3403 Examples:
3404
3405  ("zot" q|uux) -> ("zot" |uux)
3406
3407  ("zot"| quux) -> ("zot|" quux) -> ("zo|" quux)
3408
3409  (foo (|) bar) -> (foo | bar)
3410
3411  (foo bar)| -> (foo bar|)
3412
3413 (fn &optional ARG)
3414 (defalias 'sp-backward-delete-char #[256 "\203     \304=\203 \305 \207\n\203`\306\307!\211\203\310\202!\311!\211\312V\203K\211\312V\205\\\313 \211\203G\211@G\206:\314[u\210\315@GAG\\!\210\211\262\203T\211S\262\202'\316 \203i\212\317u\210\316 )\204i\312\262\202'\320\321\322\323!!!\203\334\324 \325\312\326\327\330!\331\"\332$\216\333\334!)\262\211\203\314\211\335\336\"\262`U\203\251\211\335\336\"\335\337\"GZ\262b\210\202\324\211\335\340\"\335\341\"G\\\262`U\203\301\312\262\202\324\315\342\312!G[!\210\202\324\315\342\312!G[!\210\210\211S\262\202'\316 \204\365\212\317u\210\316 )\203\365\317u\210\211S\262\202'\320\343\322\323!!!\203+\324 \325\312\326\327\330!\344\"\332$\216\333\334!)\262\203\312\262\202'\315\342\312!G[!\210\211S\262\202'\345\303!\203@ \203@\346\314!\210\211S\262\202'\315\317!\210\211S\262\202'\211\312U\203W\315\317!\202\\\347\350!!\266\202)\207\307!\211\203k\310\202n\311!\211\312V\203\230\211\312V\205\251\313 \211\203\224\211@G\206\207\314[u\210\315@GAG\\!\210\211\262\203\241\211S\262\202t\316 \203\266\212\317u\210\316 )\204\266\312\262\202t\320\321\322\323!!!\203)\324 \325\312\326\327\330!\351\"\332$\216\333\334!)\262\211\203\211\335\336\"\262`U\203\366\211\335\336\"\335\337\"GZ\262b\210\202!\211\335\340\"\335\341\"G\\\262`U\203\312\262\202!\315\342\312!G[!\210\202!\315\342\312!G[!\210\210\211S\262\202t\316 \204B\212\317u\210\316 )\203B\317u\210\211S\262\202t\320\343\322\323!!!\203x\324 \325\312\326\327\330!\352\"\332$\216\333\334!)\262\203i\312\262\202t\315\342\312!G[!\210\211S\262\202t\345\303!\203\215 \203\215\346\314!\210\211S\262\202t\315\317!\210\211S\262\202t\211\312U\203\244\315\317!\202\251\347\350!!\207" [sp-autodelete-wrap sp-last-operation case-fold-search hungry-delete-mode sp-wrap-region sp-backward-unwrap-sexp nil sp--raw-argument-p 100000000 prefix-numeric-value 0 sp-point-in-empty-sexp 1 delete-char sp-point-in-string -1 sp--looking-back sp--get-closing-regexp sp--get-pair-list-context navigate match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 sp-get-thing t plist-get :end :cl :beg :op match-string sp--get-opening-regexp [set-match-data evaporate] boundp hungry-delete-backward sp-delete-char sp--negate-argument [set-match-data evaporate] [set-match-data evaporate]] 10 (#$ . 303655) "P"])
3415 (byte-code "\300\301\302\303#\210\300\304\302\303#\207" [put sp-backward-delete-char delete-selection supersede sp-delete-char] 4)
3416 #@170 Return non-nil if point is in empty sexp or string.
3417
3418 The return value is active cons pair of opening and closing sexp
3419 delimiter enclosing this sexp.
3420
3421 (fn &optional POS)
3422 (defalias 'sp-point-in-empty-sexp #[256 "\211\206`\262\301\211\302\303\304\305!!!\203[\306\307!\262\301\310\307\203G\203G@\2030\301\262\202;\211@\232\203;\211\262\210\211T\262A\262\202\266\211\262\262\311\312A!!\205^\211\202^\313!\207" [sp-pair-list nil sp--looking-back sp--get-opening-regexp sp--get-pair-list-context navigate match-string 0 t sp--looking-at regexp-quote sp-point-in-empty-string] 10 (#$ . 307143)])
3423 #@168 Return non-nil if point is in empty string.
3424
3425 The return value is actually cons pair of opening and closing
3426 string delimiter enclosing this string.
3427
3428 (fn &optional POS)
3429 (defalias 'sp-point-in-empty-string #[256 "\211\206`\262\300 \205E\212d`U\203\301\202\302u\210\300 ?)\205E\212\303u\210\300 )?\205E\212\304\305!8\306\301=\203=g\202>!\211B\266\202)\207" [sp-point-in-string t nil -1 3 syntax-ppss char-to-string] 5 (#$ . 307769)])
3430 #@142 Return non-nil if word killing commands should kill subwords.
3431 This is the case if `subword-mode' is enabled and
3432 `sp-use-subword' is non-nil.
3433 (defalias 'sp--use-subword #[0 "\205 \302\301!\205     \207" [sp-use-subword subword-mode boundp] 2 (#$ . 308222)])
3434 #@45 Kill N words or subwords.
3435
3436 (fn &optional N)
3437 (defalias 'sp--kill-word #[256 "\211\206\300\301 \203\302!\202\303!\207" [1 sp--use-subword subword-kill kill-word] 4 (#$ . 308485)])
3438 #@53 Move forward N words or subwords.
3439
3440 (fn &optional N)
3441 (defalias 'sp--forward-word #[256 "\211\206\300\301 \203\302!\202\211v\207" [1 sp--use-subword subword-forward] 4 (#$ . 308677)])
3442 #@54 Move backward N words or subwords.
3443
3444 (fn &optional N)
3445 (defalias 'sp--backward-word #[256 "\211\206\300\301 \203\302!\202\211\206\300[v\207" [1 sp--use-subword subword-backward] 4 (#$ . 308872)])
3446 #@288 Kill a symbol forward, skipping over any intervening delimiters.
3447
3448 With ARG being positive number N, repeat that many times.
3449
3450 With ARG being Negative number -N, repeat that many times in
3451 backward direction.
3452
3453 See `sp-forward-symbol' for what constitutes a symbol.
3454
3455 (fn &optional ARG WORD)
3456 (defalias 'sp-kill-symbol #[512 "\203\243\301\302V\203\233\302V\205\241\303 \211\203\220\211\304\305\"\304\306\"GZ`W\2037\2030`\202Y\304\305\"\202Y\212\307 \210`)\304\305\"\304\306\"GZU\203O`\202Y\304\305\"\304\306\"GZ\203}\212\310 \210`)\311\"\203n\211\202x\304\312\"\304\313\"G\\\262\202\207\304\312\"\304\313\"G\\b\210\314\"\266\210\315 \210S\262\202\f\316\317!\")\207\302V\2038\302V\205>\303 \211\203-\211\304\305\"\304\306\"GZ`W\203\324\203\315`\202\366\304\305\"\202\366\212\307 \210`)\304\305\"\304\306\"GZU\203\354`\202\366\304\305\"\304\306\"GZ\203\212\310 \210`)\311\"\203 \211\202\304\312\"\304\313\"G\\\262\202$\304\312\"\304\313\"G\\b\210\314\"\266\210\315 \210S\262\202\251\316\317!\"\207" [case-fold-search nil 0 sp-get-symbol plist-get :beg :prefix sp-skip-forward-to-symbol sp--forward-word sp-region-ok-p :end :suffix kill-region sp--cleanup-after-kill sp-backward-kill-symbol sp--negate-argument] 10 (#$ . 309082) "p"])
3457 #@221 Kill a word forward, skipping over intervening delimiters.
3458
3459 With ARG being positive number N, repeat that many times.
3460
3461 With ARG being Negative number -N, repeat that many times in
3462 backward direction.
3463
3464 (fn &optional ARG)
3465 (defalias 'sp-kill-word #[256 "\300\301\"\207" [sp-kill-symbol t] 4 (#$ . 310400) "p"])
3466 #@349 Delete a symbol forward, skipping over any intervening delimiters.
3467
3468 Deleted symbol does not go to the clipboard or kill ring.
3469
3470 With ARG being positive number N, repeat that many times.
3471
3472 With ARG being Negative number -N, repeat that many times in
3473 backward direction.
3474
3475 See `sp-forward-symbol' for what constitutes a symbol.
3476
3477 (fn &optional ARG WORD)
3478 (defalias 'sp-delete-symbol #[512 "\302\303\"*\207" [kill-ring select-enable-clipboard nil sp-kill-symbol] 5 (#$ . 310716) "p"])
3479 #@280 Delete a word forward, skipping over intervening delimiters.
3480
3481 Deleted word does not go to the clipboard or kill ring.
3482
3483 With ARG being positive number N, repeat that many times.
3484
3485 With ARG being Negative number -N, repeat that many times in
3486 backward direction.
3487
3488 (fn &optional ARG)
3489 (defalias 'sp-delete-word #[256 "\300\301\"\207" [sp-delete-symbol t] 4 (#$ . 311205) "p"])
3490 #@289 Kill a symbol backward, skipping over any intervening delimiters.
3491
3492 With ARG being positive number N, repeat that many times.
3493
3494 With ARG being Negative number -N, repeat that many times in
3495 forward direction.
3496
3497 See `sp-backward-symbol' for what constitutes a symbol.
3498
3499 (fn &optional ARG WORD)
3500 (defalias 'sp-backward-kill-symbol #[512 "\203\252\301\302V\203\242\302V\205\250\303\304!\211\203\227\211`\305\306\"\305\307\"G\\W\203>\2031`\202`\305\306\"\305\307\"G\\\202`\212\310 \210`)\305\306\"\305\307\"G\\U\203V`\202`\305\306\"\305\307\"G\\\203\204\212\311 \210`)\312\"\203u\211\202\305\313\"\305\314\"GZ\262\202\216\305\313\"\305\314\"GZb\210\315\"\266\210\316 \210S\262\202\f\317\320!\")\207\302V\203F\302V\205L\303\304!\211\203;\211`\305\306\"\305\307\"G\\W\203\342\203\325`\202\305\306\"\305\307\"G\\\202\212\310 \210`)\305\306\"\305\307\"G\\U\203\372`\202\305\306\"\305\307\"G\\\203(\212\311 \210`)\312\"\203\211\202#\305\313\"\305\314\"GZ\262\2022\305\313\"\305\314\"GZb\210\315\"\266\210\316 \210S\262\202\260\317\320!\"\207" [case-fold-search nil 0 sp-get-symbol t plist-get :end :suffix sp-skip-backward-to-symbol sp--backward-word sp-region-ok-p :beg :prefix kill-region sp--cleanup-after-kill sp-kill-symbol sp--negate-argument] 10 (#$ . 311584) "p"])
3501 #@222 Kill a word backward, skipping over intervening delimiters.
3502
3503 With ARG being positive number N, repeat that many times.
3504
3505 With ARG being Negative number -N, repeat that many times in
3506 backward direction.
3507
3508 (fn &optional ARG)
3509 (defalias 'sp-backward-kill-word #[256 "\300\301\"\207" [sp-backward-kill-symbol t] 4 (#$ . 312939) "p"])
3510 #@350 Delete a symbol backward, skipping over any intervening delimiters.
3511
3512 Deleted symbol does not go to the clipboard or kill ring.
3513
3514 With ARG being positive number N, repeat that many times.
3515
3516 With ARG being Negative number -N, repeat that many times in
3517 forward direction.
3518
3519 See `sp-backward-symbol' for what constitutes a symbol.
3520
3521 (fn &optional ARG WORD)
3522 (defalias 'sp-backward-delete-symbol #[512 "\302\303\"*\207" [kill-ring select-enable-clipboard nil sp-backward-kill-symbol] 5 (#$ . 313274) "p"])
3523 #@281 Delete a word backward, skipping over intervening delimiters.
3524
3525 Deleted word does not go to the clipboard or kill ring.
3526
3527 With ARG being positive number N, repeat that many times.
3528
3529 With ARG being Negative number -N, repeat that many times in
3530 backward direction.
3531
3532 (fn &optional ARG)
3533 (defalias 'sp-backward-delete-word #[256 "\300\301\"\207" [sp-backward-delete-symbol t] 4 (#$ . 313782) "p"])
3534 #@232 Delete the text between point and mark, like `delete-region'.
3535
3536 BEG and END are the bounds of region to be deleted.
3537
3538 If that text is unbalanced, signal an error instead.
3539 With a prefix argument, skip the balance check.
3540
3541 (fn BEG END)
3542 (defalias 'sp-delete-region #[514 "\204\302\"\204\303\304\305\306\"!\205\307|\207" [current-prefix-arg this-command sp-region-ok-p user-error sp-message :unbalanced-region :return delete-region] 6 (#$ . 314180) "r"])
3543 #@227 Kill the text between point and mark, like `kill-region'.
3544
3545 BEG and END are the bounds of region to be killed.
3546
3547 If that text is unbalanced, signal an error instead.
3548 With a prefix argument, skip the balance check.
3549
3550 (fn BEG END)
3551 (defalias 'sp-kill-region #[514 "\204\302\"\204\303\304\305\306\"!\205\307\211\"\207" [current-prefix-arg this-command sp-region-ok-p user-error sp-message :unbalanced-region :return kill-region] 7 (#$ . 314647) "r"])
3552 #@235 Reindent the current defun.
3553
3554 If point is inside a string or comment, fill the current
3555 paragraph instead, and with ARG, justify as well.
3556
3557 Otherwise, reindent the current defun, and adjust the position
3558 of the point.
3559
3560 (fn &optional ARG)
3561 (defalias 'sp-indent-defun #[256 "\300 \203    \301!\207i\302 \212\303 \210\304 \210\305 \210)\306\"\207" [sp-point-in-string-or-comment fill-paragraph sp--current-indentation end-of-defun beginning-of-defun indent-sexp sp--back-to-indentation] 6 (#$ . 315110) "P"])
3562 #@307 Test if region between START and END is balanced.
3563
3564 A balanced region is one where all opening delimiters are matched
3565 by closing delimiters.
3566
3567 This function does *not* check that the delimiters are correctly
3568 ordered, that is [(]) is correct even though it is not logically
3569 properly balanced.
3570
3571 (fn START END)
3572 (defalias 'sp-region-ok-p #[514 "\212\214\302!\302!=\205?}\210\303\304\305 \"!eb\210\306 \307 \210\204\211\310\311!)\262\2034\312\225b\204\313\310\311!)\262\262*\207" [sp-pair-list inhibit-changing-match-data sp-point-in-string sp--get-allowed-regexp -difference sp--get-allowed-pair-list sp-forward-sexp sp-skip-forward-to-symbol t looking-at 0 "[[:blank:]\n]*\\'"] 6 (#$ . 315619) "r"])
3573 #@365 Insert a newline and indent it.
3574
3575 This is like `newline-and-indent', but it not only indents the
3576 line that the point is on but also the S-expression following the
3577 point, if there is one.
3578
3579 If in a string, just insert a literal newline.
3580
3581 If in a comment and if followed by invalid structure, call
3582 `indent-new-comment-line' to keep the invalid structure in a
3583 comment.
3584 (defalias 'sp-newline #[0 "\300 \203\301 \207\302 \203&\303`\304 \"\203#\305 \210\3061 \307 0\207\210\310\207\311 \207\305 \210\31211\307 0\207\210\310\207" [sp-point-in-string newline sp-point-in-comment sp-region-ok-p point-at-eol newline-and-indent (error) indent-sexp nil indent-new-comment-line (error)] 3 (#$ . 316339) nil])
3585 #@95 Insert the comment character and adjust hanging sexps such
3586   that it doesn't break structure.
3587 (defalias 'sp-comment #[0 "\305 \203\306!G\307U\203\306!c\207    c\207\n\203\335\310`i\311 \312 \313 \314\315\316\"\262b\210\317\320\321 P!\203N\312 U\203N`\262\322 \210\323 `ZT\262\202h\312 U\204h\324 \210\325\326!\\\262\322 \210\323 `Z\262b\210\327\315\330\"\315\316\"\\\"\266\331\"\210\310 \332\314\203\255\203\255@\203\227\310\262\202\241\f@>\203\241\211\262\210\211T\262A\262\202\203\266\211\262A\206\267    i\314U\204\306\333\334!\204\306\326c\210\211c\210\314U?\205\327\212\307y\210\335 )\262\266\206)\207`i\311 \312 \313 \314\315\316\"\262b\210\317\320\321 P!\203\312 U\203`\262\322 \210\323 `ZT\262\202)\312 U\204)\324 \210\325\326!\\\262\322 \210\323 `Z\262b\210\327\315\330\"\315\316\"\\\"\266\331\"\210\310 \332\314\203n\203n@\203X\310\262\202b\f@>\203b\211\262\210\211T\262A\262\202D\266\211\262A\206x    i\314U\204\207\333\334!\204\207\326c\210\211c\210\314U?\205\230\212\307y\210\335 )\262\207" [last-command-event comment-start case-fold-search sp-comment-string major-mode sp-point-in-string-or-comment single-key-description 1 nil sp--current-indentation line-number-at-pos sp-get-hybrid-sexp 0 plist-get :end sp--looking-at-p "\\s-*" sp--get-closing-regexp newline line-end-position sp-backward-sexp skip-syntax-backward " " sp--indent-region :beg sp--back-to-indentation t sp--looking-back-p "\\s-" indent-according-to-mode] 13 (#$ . 317046) nil])
3588 #@43 Wrap following sexp in round parentheses.
3589 (defalias 'sp-wrap-round #[0 "\300\301!\207" [sp-wrap-with-pair "("] 2 (#$ . 318607) nil])
3590 #@41 Wrap following sexp in square brackets.
3591 (defalias 'sp-wrap-square #[0 "\300\301!\207" [sp-wrap-with-pair "["] 2 (#$ . 318746) nil])
3592 #@38 Wrap following sexp in curly braces.
3593 (defalias 'sp-wrap-curly #[0 "\300\301!\207" [sp-wrap-with-pair "{"] 2 (#$ . 318884) nil])
3594 (byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\314\315\304\301&\210\306\316\310\311\317DD\320\314\321\304\301&\210\306\322\310\311\323DD\324\314\325\304\301&\210\326\327\330\331\304\301%\210\326\332\333\334\304\301%\210\326\335\336\337\304\301%\210\326\340\302\341\304\301%\207" [custom-declare-group show-smartparens nil "Show smartparens minor mode." :group smartparens custom-declare-variable sp-show-pair-delay funcall function #[0 "\300\207" [0.125] 1] "Time in seconds to delay before showing a matching pair." :type (number :tag "seconds") sp-show-enclosing-pair-commands #[0 "\300\207" [(sp-show-enclosing-pair sp-forward-slurp-sexp sp-backward-slurp-sexp sp-forward-barf-sexp sp-backward-barf-sexp)] 1] "List of commands after which the enclosing pair is highlighted.\n\nAfter the next command the pair will automatically disappear." (repeat symbol) sp-show-pair-from-inside #[0 "\300\207" [nil] 1] "If non-nil, highlight the enclosing pair if immediately after\nthe opening delimiter or before the closing delimiter." boolean custom-declare-face sp-show-pair-match-face ((t (:inherit show-paren-match))) "`show-smartparens-mode' face used for a matching pair." sp-show-pair-mismatch-face ((t (:inherit show-paren-mismatch))) "`show-smartparens-mode' face used for a mismatching pair." sp-show-pair-enclosing ((t (:inherit highlight))) "The face used to highlight pair overlays." sp-show-pair-match-content-face "`show-smartparens-mode' face used for a matching pair's content."] 8)
3595 (defvar sp-show-pair-idle-timer nil)
3596 (defvar sp-show-pair-overlays nil)
3597 (defvar sp-show-pair-previous-match-positions nil)
3598 (defvar sp-show-pair-previous-point nil)
3599 (defvar sp-show-pair-enc-overlays nil)
3600 #@111 Non-nil if Show-Smartparens mode is enabled.
3601 Use the command `show-smartparens-mode' to change this variable.
3602 (defvar show-smartparens-mode nil (#$ . 320738))
3603 (make-variable-buffer-local 'show-smartparens-mode)
3604 #@292 Toggle visualization of matching pairs.  When enabled, any
3605 matching pair is highlighted after `sp-show-pair-delay' seconds
3606 of Emacs idle time if the point is immediately in front or after
3607 a pair.  This mode works similarly to `show-paren-mode', but
3608 support custom pairs.
3609
3610 (fn &optional ARG)
3611 (defalias 'show-smartparens-mode #[256 "\304 \305=\203 ?\202\306!\307V\211\203$    \204+\310\n\311\312#\202+ \203+\313 \210\314\315\2035\316\2026\317\"\210\320\321!\203Z\304 \203J\211\304 \232\203Z\322\323\324\203U\325\202V\326#\266\210\327 \210\207" [show-smartparens-mode sp-show-pair-idle-timer sp-show-pair-delay sp-show-pair-overlays current-message toggle prefix-numeric-value 0 run-with-idle-timer t sp-show--pair-function sp-show--pair-delete-overlays run-hooks show-smartparens-mode-hook show-smartparens-mode-on-hook show-smartparens-mode-off-hook called-interactively-p any " in current buffer" message "Show-Smartparens mode %sabled%s" "en" "dis" force-mode-line-update] 8 (#$ . 320956) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
3612 (defvar show-smartparens-mode-hook nil)
3613 (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [show-smartparens-mode-map show-smartparens-mode-hook variable-documentation put "Hook run after entering or leaving `show-smartparens-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode show-smartparens-mode nil boundp] 6)
3614 (defvar show-smartparens-mode-major-mode nil)
3615 (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313\314\315\316\317& \207" [make-variable-buffer-local show-smartparens-mode-major-mode custom-declare-variable show-smartparens-global-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Show-Smartparens-Global mode is enabled.\nSee the `show-smartparens-global-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `show-smartparens-global-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group show-smartparens :type boolean] 12)
3616 #@401 Toggle Show-Smartparens mode in all buffers.
3617 With prefix ARG, enable Show-Smartparens-Global mode if ARG is positive;
3618 otherwise, disable it.  If called from Lisp, enable the mode if
3619 ARG is omitted or nil.
3620
3621 Show-Smartparens mode is enabled in all buffers where
3622 `turn-on-show-smartparens-mode' would do it.
3623 See `show-smartparens-mode' for more information on Show-Smartparens mode.
3624
3625 (fn &optional ARG)
3626 (defalias 'show-smartparens-global-mode #[256 "\302 \303\300\304=\203\305\300!?\202\306!\307V\"\210\203.\310\311\312\"\210\310\313\314\"\210\310\315\316\"\210\202=\317\311\312\"\210\317\313\314\"\210\317\315\316\"\210\320 \211\203c\211@r\211q\210\203S\321 \210\202[    \203[\301\322!\210)A\266\202\202?\210\323\324\305\300!\203p\325\202q\326\"\210\327\330!\203\233\331\300!\210\302 \203\211\211\302 \232\203\233\332\333\334\305\300!\203\226\335\202\227\336#\266\210\337 \210\305\300!\207" [show-smartparens-global-mode show-smartparens-mode current-message set-default toggle default-value prefix-numeric-value 0 add-hook after-change-major-mode-hook show-smartparens-global-mode-enable-in-buffers find-file-hook show-smartparens-global-mode-check-buffers change-major-mode-hook show-smartparens-global-mode-cmhh remove-hook buffer-list turn-on-show-smartparens-mode -1 run-hooks show-smartparens-global-mode-hook show-smartparens-global-mode-on-hook show-smartparens-global-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Show-Smartparens-Global mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 323202) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)])
3627 (defvar show-smartparens-global-mode-hook nil)
3628 (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\207" [show-smartparens-global-mode-map show-smartparens-global-mode-hook variable-documentation put "Hook run after entering or leaving `show-smartparens-global-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" add-minor-mode show-smartparens-global-mode nil boundp] 6)
3629 (defvar show-smartparens-mode-set-explicitly nil nil)
3630 (make-variable-buffer-local 'show-smartparens-mode-set-explicitly)
3631 (defalias 'show-smartparens-mode-set-explicitly #[0 "\301\211\207" [show-smartparens-mode-set-explicitly t] 2])
3632 (byte-code "\300\301\302\303#\210\304\305\301\"\207" [put show-smartparens-mode-set-explicitly definition-name show-smartparens-global-mode add-hook show-smartparens-mode-hook] 4)
3633 (defvar show-smartparens-global-mode-buffers nil)
3634 (defalias 'show-smartparens-global-mode-enable-in-buffers #[0 "\211\2056\211@\305!\203/r\211q\210    \204,\n =\204,\f\203)\304\306!\210\307 \210\202,\307 \210 )A\266\202\202\207" [show-smartparens-global-mode-buffers show-smartparens-mode-set-explicitly show-smartparens-mode-major-mode major-mode show-smartparens-mode buffer-live-p -1 turn-on-show-smartparens-mode] 4])
3635 (put 'show-smartparens-global-mode-enable-in-buffers 'definition-name 'show-smartparens-global-mode)
3636 (defalias 'show-smartparens-global-mode-check-buffers #[0 "\301 \210\302\303\304\305\"\207" [show-smartparens-global-mode-buffers show-smartparens-global-mode-enable-in-buffers nil remove-hook post-command-hook show-smartparens-global-mode-check-buffers] 3])
3637 (put 'show-smartparens-global-mode-check-buffers 'definition-name 'show-smartparens-global-mode)
3638 (defalias 'show-smartparens-global-mode-cmhh #[0 "\300\301p\"\210\302\303\304\"\207" [add-to-list show-smartparens-global-mode-buffers add-hook post-command-hook show-smartparens-global-mode-check-buffers] 3])
3639 (put 'show-smartparens-global-mode-cmhh 'definition-name 'show-smartparens-global-mode)
3640 #@34 Turn on `show-smartparens-mode'.
3641 (defalias 'turn-on-show-smartparens-mode #[0 "    \235\206\302\303!?\205\304N\305=?\205\306\307!\207" [major-mode sp-ignore-modes-list derived-mode-p comint-mode mode-class special show-smartparens-mode t] 2 (#$ . 326924) nil])
3642 #@35 Turn off `show-smartparens-mode'.
3643 (defalias 'turn-off-show-smartparens-mode #[0 "\300\301!\207" [show-smartparens-mode -1] 2 (#$ . 327196) nil])
3644 #@44 Highlight the enclosing pair around point.
3645 (defalias 'sp-show-enclosing-pair #[0 "\300\207" [nil] 1 (#$ . 327347) nil])
3646 #@93 Highlight the expression returned by the next command, preserving point position.
3647
3648 (fn ARG)
3649 (defalias 'sp-highlight-current-sexp #[257 "\300\301\302\"\303!\304!\203\212\305!\306!\262)\202\307!\207" [read-key-sequence "" t key-binding commandp call-interactively sp-show--pair-enc-function execute-kbd-macro] 6 (#$ . 327473) "P"])
3650 #@116 Display the show pair overlays and print the line of the
3651 matching paren in the echo area if not visible on screen.
3652 (defalias 'sp-show--pair-function #[0 "\205\224    \203\320\306\307 \310\311\312\313\314!\315\"\316$\216\306\317\262\320 \321!\322!\n\205*\323 \324 \204P\325 \204P\326 \204P\327\n\203B\202C!\203P\330\311!\331\"\202\307\324 \204_\325 \204_\326 \203f\332\323 !\204\207\332\n\203o\202p!\204\207\333\334 !\204\207 \f>\203\217\333\335!\203\217\330\311!!\202\307\327\n\203\230\202\231!\204\260\327\334 !\204\260 \f>\203\271\327\336!\203\271\330\311!\331\"\202\307 \205\307\337 \210\306\211\"\211#\266\204\262)\262)\207\307 \310\311\312\313\314!\340\"\316$\216\306\341\262\320 \321!\322!\n\205\360\323 \324 \204\325 \204\326 \204\327\n\203\202    !\203\330\311!\331\"\202\215\324 \204%\325 \204%\326 \203,\332\323 !\204M\332\n\2035\2026!\204M\333\334 !\204M \f>\203U\333\335!\203U\330\311!!\202\215\327\n\203^\202_!\204v\327\334 !\204v \f>\203\327\336!\203\330\311!\331\"\202\215 \205\215\337 \210\306\211\"\211#\266\204\262)\262\207" [show-smartparens-mode case-fold-search sp-show-pair-from-inside major-mode sp-navigate-consider-sgml-tags sp-show-pair-overlays nil match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 #[513 "\304!\211\203}\211\203$\305\306\"`U\204A\305\307\"\305\310\"G\\`U\204A?\205x\305\307\"`U\204A\305\306\"\305\311\"GZ`U\205x\312\305\307\"\305\306\"\305\310\"G\305\311\"G$\210\205x\313 \206`    ?\205x\314\305\307\"\305\306\"\305\310\"G\305\311\"G$\262\202\230\203\215\315`GZG\"\210\202\223\315`G\"\210\316\211\211\207" [sp-echo-match-when-invisible cursor-in-echo-area sp-show-pair-previous-match-positions sp-show-pair-previous-point sp-get-thing plist-get :end :beg :op :cl sp-show--pair-create-overlays active-minibuffer-window sp-show--pair-echo-match sp-show--pair-create-mismatch-overlay nil] 12 "\n\n(fn MATCH &optional BACK)"] sp--get-allowed-pair-list sp--get-opening-regexp sp--get-closing-regexp sp--get-allowed-regexp sp--evil-normal-state-p sp--evil-motion-state-p sp--evil-visual-state-p sp--looking-back match-string :back sp--looking-at looking-at sp--get-stringlike-regexp "<" ">" sp-show--pair-delete-overlays [set-match-data evaporate] #[513 "\304!\211\203}\211\203$\305\306\"`U\204A\305\307\"\305\310\"G\\`U\204A?\205x\305\307\"`U\204A\305\306\"\305\311\"GZ`U\205x\312\305\307\"\305\306\"\305\310\"G\305\311\"G$\210\205x\313 \206`    ?\205x\314\305\307\"\305\306\"\305\310\"G\305\311\"G$\262\202\230\203\215\315`GZG\"\210\202\223\315`G\"\210\316\211\211\207" [sp-echo-match-when-invisible cursor-in-echo-area sp-show-pair-previous-match-positions sp-show-pair-previous-point sp-get-thing plist-get :end :beg :op :cl sp-show--pair-create-overlays active-minibuffer-window sp-show--pair-echo-match sp-show--pair-create-mismatch-overlay nil] 12 "\n\n(fn MATCH &optional BACK)"] sp-show-pair-previous-match-positions sp-show-pair-previous-point] 10 (#$ . 327820)])
3653 #@80 Display the show pair overlays for enclosing expression.
3654
3655 (fn &optional THING)
3656 (defalias 'sp-show--pair-enc-function #[256 "\205'\211\206\n\301 \211\205%\211\302\303\304\"\303\305\"\303\306\"G\303\307\"G$\262\262\207" [show-smartparens-mode sp-get-enclosing-sexp sp-show--pair-create-enc-overlays plist-get :beg :end :op :cl] 10 (#$ . 330944)])
3657 #@58 Create the show pair overlays.
3658
3659 (fn START END OLEN CLEN)
3660 (defalias 'sp-show--pair-create-overlays #[1028 "\203\301 \210\302\211\\\303\304\303%\302\\Z\303\304\303%\302Z\303\304\303%E\305\306\307#\210\310 \204;\305\306\311#\210\305\306\307#\210\305\312\313#\210\305\312\313#\210\305\312\313#\210\305\314\315#\207" [sp-show-pair-overlays sp-show--pair-delete-overlays make-overlay nil t overlay-put face sp-show-pair-match-face use-region-p sp-show-pair-match-content-face priority 1000 type show-pair] 12 (#$ . 331305)])
3661 #@172 Print the line of the matching paren in the echo area if not
3662 visible on screen. Needs to be called after the show-pair overlay
3663 has been created.
3664
3665 (fn START END OLEN CLEN)
3666 (defalias 'sp-show--pair-echo-match #[1028 "F\232\205    `\232?\205\323\211`\303!\303!\204%\202+\211?\205+\211\205\321\212\211b\210\304 \210`\305\210`{\305\nZ\211\n\\GW\203c\211\306Y\203c\307\306]G^\310\305%\210\266\311\n\312#\211    \\GW\203\212\211\306Y\203\212\307\306]G^\310\305%\210\266\313\314\305\211\315\316\206\232\317\320Q\"\203\254\321\322\323\211$\266\202\202\257\266\202\315\324\206\267\317\325Q\"\203\311\321\322\323\211$\266\205\202\314\266\205\")\266\203)\266\203\207" [sp-show-pair-previous-match-positions sp-show-pair-previous-point message-log-max pos-visible-in-window-p beginning-of-line nil 0 add-face-text-property sp-show-pair-match-face - 1 message "Matches: %s" string-match "\\(?:" "[     \n ]+" "\\)\\'" replace-match "" t "\\`\\(?:" "\\)"] 23 (#$ . 331856)])
3667 #@67 Create the show pair enclosing overlays
3668
3669 (fn START END OLEN CLEN)
3670 (defalias 'sp-show--pair-create-enc-overlays #[1028 "\203\301 \210\302\211\\\303\304\303%\302Z\303\304\303%B\305\306\307#\210\305\306\307#\210\305\310\311#\210\305\310\311#\210\305\312\313#\207" [sp-show-pair-enc-overlays sp-show--pair-delete-enc-overlays make-overlay nil t overlay-put face sp-show-pair-enclosing priority 1000 type show-pair-enc] 11 (#$ . 332882)])
3671 #@51 Create the mismatch pair overlay.
3672
3673 (fn START LEN)
3674 (defalias 'sp-show--pair-create-mismatch-overlay #[514 "\203\301 \210\302\211\\\303\304\303%\211C\305\306\307#\210\305\310\311#\210\305\312\313#\207" [sp-show-pair-overlays sp-show--pair-delete-overlays make-overlay nil t overlay-put face sp-show-pair-mismatch-face priority 1000 type show-pair] 8 (#$ . 333338)])
3675 #@33 Remove both show pair overlays.
3676 (defalias 'sp-show--pair-delete-overlays #[0 "\205\211\203\211@\301!\210A\266\202\202\210\302\211\207" [sp-show-pair-overlays delete-overlay nil] 4 (#$ . 333717)])
3677 #@43 Remove both show pair enclosing overlays.
3678 (defalias 'sp-show--pair-delete-enc-overlays #[0 "\205@\203\301@!\210A\203\301A!\210\302\211\207" [sp-show-pair-enc-overlays delete-overlay nil] 2 (#$ . 333930)])
3679 (byte-code "\300\301\302\303\304$\210\305\301\304\"\210\300\306\307\303\304$\210\305\306\304\"\210\310\311\312\"\210\313 \210\314 \210\300\315\316\317\304$\210\305\315\304\"\210\300\320\321\317\304$\210\305\320\304\"\207" [ad-add-advice delete-backward-char (sp-delete-pair-advice nil t (advice lambda nil (save-match-data (sp-delete-pair (ad-get-arg 0))))) before nil ad-activate haskell-indentation-delete-backward-char (sp-delete-pair-advice nil t (advice lambda nil (save-match-data (sp-delete-pair (ad-get-arg 0))))) add-hook post-command-hook sp--post-command-hook-handler sp--set-base-key-bindings sp--update-override-key-bindings company--insert-candidate (sp-company--insert-candidate nil t (advice lambda nil "If `smartparens-mode' is active, we check if the completed string\nhas a pair definition.  If so, we insert the closing pair." (when smartparens-mode (sp-insert-pair)) ad-return-value)) after hippie-expand (sp-auto-complete-advice nil t (advice lambda nil (when smartparens-mode (sp-insert-pair))))] 5)
3680 #@63 A list of vars that need to be tracked on a per-cursor basis.
3681 (defvar sp--mc/cursor-specific-vars '(sp-wrap-point sp-wrap-mark sp-last-wrapped-region sp-pair-overlay-list sp-wrap-overlays sp-wrap-tag-overlays sp-last-operation sp-previous-point) (#$ . 335176))
3682 (byte-code "\300\301\302\"\210\303\304!\207" [eval-after-load multiple-cursors #[0 "\211\205\211@\211    \235\203    \210\202\211    BA\266\202\202\207" [sp--mc/cursor-specific-vars mc/cursor-specific-vars] 4] provide smartparens] 3)