;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\207" [require viper-util custom-declare-group viper-mouse nil "Support for Viper special mouse-bound commands." :prefix "viper-" :group viper] 8)
(defvar viper-frame-of-focus nil)
(defvar viper-current-frame-saved (selected-frame))
(byte-code "\300\301\302\303\304DD\305\306\307%\210\300\310\302\303\311DD\312\306\313%\207" [custom-declare-variable viper-surrounding-word-function funcall function #[0 "\300\207" [viper-surrounding-word] 1 #1=""] "Function that determines what constitutes a word for clicking events.\nTakes two parameters: a COUNT, indicating how many words to return,\nand CLICK-COUNT, telling whether this is the first click, a double-click,\nor a triple-click." :type symbol viper-multiclick-timeout #[0 "\300 \203 \301 \207\302\207" [viper-window-display-p mouse-double-click-time 500] 1 #1#] "Time interval in milliseconds for mouse clicks to be considered related." integer] 6)
(defvar viper-mouse-click-search-noerror t nil)
(make-variable-buffer-local 'viper-mouse-click-search-noerror)
(defvar viper-mouse-click-search-limit nil nil)
(make-variable-buffer-local 'viper-mouse-click-search-limit)
(defvar viper-global-prefix-argument nil)
(defvar viper-mouse-up-search-key-parsed nil)
(defvar viper-mouse-down-search-key-parsed nil)
(defvar viper-mouse-up-insert-key-parsed nil)
(defvar viper-mouse-down-insert-key-parsed nil)
(defalias 'viper-multiclick-p #[0 "\301\302\245\303\"?\207" [viper-multiclick-timeout sit-for 1000.0 t] 3])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put viper-multiclick-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@14 

(fn CLICK)
(defalias 'viper-mouse-click-window #[257 "\300!\211@\262\301!\203 \207\302\303!\207" [event-start window-live-p error "Click was not over a live window"] 4 (#$ . 1749)])#@14 

(fn CLICK)
(defalias 'viper-mouse-click-frame #[257 "\300\301!!\207" [window-frame viper-mouse-click-window] 4 (#$ . 1942)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put viper-mouse-click-frame speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@14 

(fn CLICK)
(defalias 'viper-mouse-click-window-buffer #[257 "\300\301!!\207" [window-buffer viper-mouse-click-window] 4 (#$ . 2224)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put viper-mouse-click-window-buffer speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@14 

(fn CLICK)
(defalias 'viper-mouse-click-window-buffer-name #[257 "\300\301\302!!\262!\207" [buffer-name window-buffer viper-mouse-click-window] 6 (#$ . 2523)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put viper-mouse-click-window-buffer-name speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@41 Return position of a click.

(fn CLICK)
(defalias 'viper-mouse-click-posn #[257 "\300\301!!\207" [posn-point event-start] 4 (#$ . 2855)])
(byte-code "\300\301\302\303#\210\304\301\305\306#\307\301\310\311#\207" [make-obsolete viper-mouse-click-posn nil "27.1" function-put speed -1 put byte-optimizer byte-compile-inline-expand] 5)#@777 Return word surrounding point according to a heuristic.
COUNT indicates how many regions to return.
If CLICK-COUNT is 1, `word' is a word in Vi sense.
If CLICK-COUNT is 2,then `word' is a Word in Vi sense.
If the character clicked on is a non-separator and is non-alphanumeric but
is adjacent to an alphanumeric symbol, then it is considered alphanumeric
for the purpose of this command.  If this character has a matching
character, such as `(' is a match for `)', then the matching character is
also considered alphanumeric.
For convenience, in Lisp modes, `-' is considered alphanumeric.

If CLICK-COUNT is 3 or more, returns the line clicked on with leading and
trailing space and tabs removed.  In that case, the first argument, COUNT,
is ignored.

(fn COUNT CLICK-COUNT)
(defalias 'viper-surrounding-word #[514 "\305\306\211\211\211\307V\203K \212\310 \210\311\312=\203* \211\203\" 	\306w\266\202< \n\306w\266\202< \313\314\2062 \315\2059 \316\317!$\266`\262\306\210`{)\262\202X\306\320 \206T \321!\262\204\315 \212\322 \210\321 )\204m \212\323 \210\321 )\203\315 \305\324\325!\203x \325\202\312 \324\326!\203\202 \327\202\312 \324\330!\203\214 \331\202\312 \324\332!\203\226 \333\202\312 \324\334!\203\240 \335\202\312 \324\336!\203\252 \337\202\312 \324\340!\203\264 \341\202\312 \324\342!\203\276 \342\202\312 \320 \203\307 \343\202\312 \344g!P\262\324\326!\204\341 \345\346\347\f!\"\203\341 \327P\262\212\350V\203\357 \351\352!\210\202!\321!\203\374 \353!\210\202!\320 \206\321!\262\204\354 \210\202!\350V\203\351\352!\210\202!\353!\210`\262\306\262\355V\203R\2036\323\350!\210\356\262\350V\203F\351\314!\210\202J\357!\210S\262\202'\211`{)\262\360\355G\306$\210\207" [viper-syntax-preference viper-strict-SEP-chars-sans-newline viper-strict-SEP-chars viper-SEP-char-class major-mode "_" nil 2 beginning-of-line within-line strict-vi viper-skip-syntax forward "\n" viper-line-pos end viper-looking-at-separator viper-looking-at-alpha viper-backward-char-carefully viper-forward-char-carefully looking-at "\\\\" "-" "C-C-" "[][]" "][" "[()]" ")(" "[{}]" "{}" "[<>]" "<>" "[`']" "`'" "\\^" "" char-to-string string-match "lisp" symbol-name 1 viper-skip-nonseparators backward viper-skip-alpha-backward viper-skip-nonalphasep-backward 0 t viper-skip-alpha-forward set-text-properties] 14 (#$ . 3194)])#@256 Return word surrounding the position of a mouse click.
Click may be in another window.  Current window and buffer isn't changed.
On single or double click, returns the word as determined by
`viper-surrounding-word-function'.

(fn CLICK COUNT CLICK-COUNT)
(defalias 'viper-mouse-click-get-word #[771 "\301\302\303!!\304\305!!\262\306!\204 \307\262\306!\204  \307\262\212\310 \311\312\"\216\203= q\210b\210\"\262\202A \313\314!\210*\207" [viper-surrounding-word-function "" posn-point event-start window-buffer viper-mouse-click-window natnump 1 current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] error "Click must be over a window"] 10 (#$ . 5563)])#@336 Insert word clicked or double-clicked on.
With prefix argument, N, insert that many words.
This command must be bound to a mouse click.
The double-click action of the same mouse button must not be bound
(or it must be bound to the same function).
See `viper-surrounding-word' for the definition of a word in this case.

(fn CLICK ARG)
(defalias 'viper-mouse-click-insert-word #[514 "\203 \306!\210\212\307	!\310=?\206 \307\n!\311=?)?\205\232 \211\250\2047 \211<\2034 \211@\250\2034 \211@\262\2027 \312\262\307	!\310=\205\232 \313\211\314\315\245\316\"\204X \317 \262\320\f!\203X \211\207\211:\203m \3218\250\203m \3218\262\202p \312\262\262\312V\203} \262\313\322#c\210\211\205\230 \323!\205\230 \320!?\205\230 \324!\266\202\207" [viper-frame-of-focus viper-mouse-down-insert-key-parsed viper-mouse-up-insert-key-parsed viper-multiclick-timeout last-input-event viper-global-prefix-argument select-frame key-binding viper-mouse-catch-frame-switch viper-mouse-click-insert-word 1 nil sit-for 1000.0 t read-event viper-mouse-event-p 2 viper-mouse-click-get-word eventp viper-set-unread-command-events] 8 (#$ . 6282) "e\nP"])#@14 

(fn EVENT)
(defalias 'viper-mouse-event-p #[257 "\300!\205 \301\302\303\304!!\"\207" [eventp string-match "\\(mouse-\\|frame\\|screen\\|track\\)" prin1-to-string viper-event-key] 6 (#$ . 7436)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias viper-event-click-count event-click-count nil make-obsolete "28.1"] 4)#@385 Find the word clicked or double-clicked on.  Word may be in another window.
With prefix argument, N, search for N-th occurrence.
This command must be bound to a mouse click.  The double-click action of the
same button must not be bound (or it must be bound to the same function).
See `viper-surrounding-word' for the details on what constitutes a word for
this command.

(fn CLICK N)
(defalias 'viper-mouse-click-search-word #[514 "\203 \306!\210\212\307	!\310=?\206 \307\n!\311=?)?\205f\312\211\313\f\314\245\315\"\204@ \316 \210\317!\203@ '\2068 '(\211)\207\211:\203U \3208\250\203U \3208\262\202X \321\262\262\322\312#\262\211\321V\203n '\262\312'\206s \321\262\323 \210\230\203\225 \324*!\203\225 \325*!p\232\203\225 (\311=\204\275 \326 \211*+\315,\312-.\203\255 \327!\202\256 \211/@\230\204\275 /B/\330\312\315\"\210\331V\205d\332\321!\210\3331\334-,#\204 \312,\212\324+!\203\360 \325+!\203\360 +b\210\335\336!)-eb\210\334-\312#\210\331\224b\210\337\340\"\210\321X\205\341 \210\342 0\210\202]\210\343\321!\210\230\203+(\311=\2046\337\344\345p!#\210\202E\337\346\345p!#\210\321\262\313\320!\210\315,\312-\324+!\203]\325+!\203]+b\210S\262\202\302 \266\203\207" [viper-frame-of-focus viper-mouse-down-search-key-parsed viper-mouse-up-search-key-parsed viper-s-string viper-multiclick-timeout last-input-event select-frame key-binding viper-mouse-catch-frame-switch viper-mouse-click-search-word nil sit-for 1000.0 t read-event viper-mouse-event-p 2 1 viper-mouse-click-get-word deactivate-mark markerp marker-buffer point-marker regexp-quote push-mark 0 viper-forward-word (error) search-forward viper-line-pos end message "Searching for: %s" viper-adjust-window viper-flash-search-pattern beep "`%s': String not found in %s" buffer-name "`%s': Last occurrence in %s.  Back to beginning of search" viper-global-prefix-argument last-command this-command viper-search-start-marker viper-local-search-start-marker viper-mouse-click-search-noerror viper-mouse-click-search-limit viper-re-search viper-search-history] 11 (#$ . 7779) "e\nP"])#@154 Catch the event of switching frame.
Usually is bound to a `down-mouse' event to work properly.  See sample
bindings in the Viper manual.

(fn EVENT ARG)
(defalias 'viper-mouse-catch-frame-switch #[514 "\305\211\n\306=\203\f \n\211\207" [viper-frame-of-focus prefix-arg last-command viper-current-frame-saved this-command nil handle-switch-frame] 4 (#$ . 9905) "e\nP"])#@74 Remember the selected frame before the switch-frame event.

(fn &rest _)
(defalias 'viper-remember-current-frame #[128 "\302\303 \211\207" [last-command viper-current-frame-saved handle-switch-frame selected-frame] 3 (#$ . 10284)])#@27 

(fn KEY-VAR EVENT-TYPE)
(defalias 'viper-parse-mouse-key #[514 "J\300\211\211\211\205\200 \301>\203 \302=\203 \303\202M \304\202M \305>\2032 \302=\203. \306\202M \307\202M \310>\203F \302=\203B \311\202M \312\202M \313\314#\262\315>\203Y \316\202Z \317\262\320>\203f \321\202g \317\262\322>\203s \323\202t \317\262\324\325R!!\207" [nil 1 up "mouse-1" "down-mouse-1" 2 "mouse-2" "down-mouse-2" 3 "mouse-3" "down-mouse-3" error "%S: invalid button number, %S" meta "M-" "" shift "S-" control "C-" vector intern] 13 (#$ . 10523)])
(defalias 'viper-unbind-mouse-search-key #[0 "\203 \302!\210	\203 \302	!\210\303\211\211\207" [viper-mouse-up-search-key-parsed viper-mouse-down-search-key-parsed global-unset-key nil] 3])
(defalias 'viper-unbind-mouse-insert-key #[0 "\203 \302!\210	\203 \302	!\210\303\211\211\207" [viper-mouse-up-insert-key-parsed viper-mouse-down-insert-key-parsed global-unset-key nil] 3])#@24 

(fn &optional FORCE)
(defalias 'viper-bind-mouse-search-key #[256 "\302\303\304\"\302\303\305\"\203 	\204 \306\207\211\204+ \307!\203+ \307!\310=\204+ \311\312\"\207\211\204B \307	!\203B \307	!\313=\204B \311\312	\"\207\314\310\"\210\314	\313\"\207" [viper-mouse-up-search-key-parsed viper-mouse-down-search-key-parsed viper-parse-mouse-key viper-mouse-search-key up down nil key-binding viper-mouse-click-search-word message "%S already bound to a mouse event.  Viper mouse-search feature disabled" viper-mouse-catch-frame-switch global-set-key] 4 (#$ . 11474)])#@24 

(fn &optional FORCE)
(defalias 'viper-bind-mouse-insert-key #[256 "\302\303\304\"\302\303\305\"\203 	\204 \306\207\211\204+ \307!\203+ \307!\310=\204+ \311\312\"\207\211\204B \307	!\203B \307	!\313=\204B \311\312	\"\207\314\310\"\210\314	\313\"\207" [viper-mouse-up-insert-key-parsed viper-mouse-down-insert-key-parsed viper-parse-mouse-key viper-mouse-insert-key up down nil key-binding viper-mouse-click-insert-word message "%S already bound to a mouse event.  Viper mouse-insert feature disabled" viper-mouse-catch-frame-switch global-set-key] 4 (#$ . 12054)])#@17 

(fn SYMB VAL)
(defalias 'viper-reset-mouse-search-key #[514 "\300 \210L\210\301\302!\207" [viper-unbind-mouse-search-key viper-bind-mouse-search-key force] 4 (#$ . 12634)])#@17 

(fn SYMB VAL)
(defalias 'viper-reset-mouse-insert-key #[514 "\300 \210L\210\301\302!\207" [viper-unbind-mouse-insert-key viper-bind-mouse-insert-key force] 4 (#$ . 12816)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\316&\210\317\320!\207" [custom-declare-variable viper-mouse-search-key funcall function #[0 "\300\207" [(meta shift 1)] 1 #1=""] "Key used to click-search in Viper.\nThis must be a list that specifies the mouse button and modifiers.\nThe supported modifiers are `meta', `shift', and `control'.\nFor instance, `(meta shift 1)' means that holding the meta and shift\nkeys down and clicking on a word with mouse button 1\nwill search for that word in the buffer that was current before the click.\nThis buffer may be different from the one where the click occurred." :type (list (set :inline t :tag "Modifiers" :format "%t: %v" (const :format "%v " meta) (const :format "%v " shift) (const control)) (integer :tag "Button")) :set viper-reset-mouse-search-key viper-mouse-insert-key #[0 "\300\207" [(meta shift 2)] 1 #1#] "Key used to click-insert in Viper.\nMust be a list that specifies the mouse button and modifiers.\nThe supported modifiers are `meta', `shift', and `control'.\nFor instance, `(meta shift 2)' means that holding the meta and shift keys\ndown, and clicking on a word with mouse button 2, will insert that word\nat the cursor in the buffer that was current just before the click.\nThis buffer may be different from the one where the click occurred." (list (set :inline t :tag "Modifiers" :format "%t: %v" (const :format "%v " meta) (const :format "%v " shift) (const control)) (integer :tag "Button")) viper-reset-mouse-insert-key provide viper-mous] 8)
