;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\303\304!\210\303\305!\210\303\306!\210\303\307!\210\205\310!\311\312\313\314\315\316\313\317\320\321\322\316\323& #\303\305!\207" [load-file-name sly-mrepl--path sly-mrepl--contrib require sly sly-autodoc cl-lib comint file-name-directory put sly-contribs sly-mrepl record sly-contrib nil (sly-autodoc) (slynk/mrepl) sly-mrepl-init sly-mrepl-unload ("GPL")] 13) (defalias 'sly-mrepl-init #[0 "\306\307\310\311\312\313C\"\"\"\210\314\315:\203(@\262\316 \317E\n\320\321$A\262\202\266 \322=\2038\323 \2038\324 \210\325\326\327\"\210\330\f\331\332#\210\330 \333\334#\210\325\335\336\"\210\330\f\337\340#\210\330 \341\342#\210\343\344\326\345#\210\343\346\326\347#\210\343\350\326\351#\210\343\352\335\353#\210\354\355\356\"\210\330@\357\360#\210\330@\361\317#\210\330A\362\360#\210\330A\363\317#\210\364\365\366\"\210\364\367\370\"\210\371B\372C!D>\204\262\373\374\375CD\"\210C\211\376\377I\207" [sly-autodoc--contrib sly-mrepl--path sly-contrib--required-slynk-modules this-command sly-part-button-keymap sly-button-popup-part-menu-keymap mapc funcall mapcar sly-contrib--enable cl-remove-if sly-contrib--enabled-p (slynk/mrepl) nil cl-adjoin sly-mrepl :key cl-first sly-setup sly-connected-p sly-contrib--load-slynk-dependencies defalias sly-mrepl-copy-part-to-repl #[257 "\300\301\"\300\302\"\303 \203=\300\304\"\303 =\203=\203$\211\203$\305\"\207\211\2034\306\307\300\310\"\262\301#\207\205B\306\311\"\207\306\312\313!!\207" [button-get sly-mrepl-copy-part-to-repl part-args sly-current-connection sly-connection apply sly-error #1="button of type `%s' doesn't implement `%s'" type #2="button %s doesn't have the `part-args' property" format #3="button is from an older connection"] 9 "Copy to REPL the object under BUTTON.\n\n(fn BUTTON)" (byte-code "\300 C\207" [sly-button-at] 1)] define-key [134217741] (menu-item #4="" sly-mrepl-copy-part-to-repl :filter (lambda #5=(cmd) (let #6=((button (sly-button-at))) (and button (button-get button 'sly-mrepl-copy-part-to-repl) . #7=(cmd))))) [sly-mrepl-copy-part-to-repl] (menu-item "Copy to REPL" sly-mrepl-copy-part-to-repl :visible (let #8=((button (sly-button-at))) (and button (button-get button 'sly-mrepl-copy-part-to-repl)))) sly-mrepl-copy-call-to-repl #[257 "\300\301\"\300\302\"\303 \203=\300\304\"\303 =\203=\203$\211\203$\305\"\207\211\2034\306\307\300\310\"\262\301#\207\205B\306\311\"\207\306\312\313!!\207" [button-get sly-mrepl-copy-call-to-repl part-args sly-current-connection sly-connection apply sly-error #1# type #2# format #3#] 9 "Copy call to REPL the object under BUTTON.\n\n(fn BUTTON)" (byte-code "\300 C\207" [sly-button-at] 1)] [M-S-return] (menu-item #4# sly-mrepl-copy-call-to-repl :filter (lambda #5# (let #6# (and button (button-get button 'sly-mrepl-copy-call-to-repl) . #7#)))) [sly-mrepl-copy-call-to-repl] (menu-item "Copy call to REPL" sly-mrepl-copy-call-to-repl :visible (let #8# (and button (button-get button 'sly-mrepl-copy-call-to-repl)))) button-type-put sly-inspector-part sly-inspector-copy-part-to-repl sly-db-local-variable sly-db-copy-part-to-repl sly-apropos-symbol sly-apropos-copy-symbol-to-repl sly-db-frame sly-db-copy-call-to-repl eval-after-load "sly-trace-dialog" #[0 "\300\301\302\303#\210\300\304\305\306#\207" [button-type-put sly-trace-dialog-part sly-mrepl-copy-part-to-repl sly-trace-dialog-copy-part-to-repl sly-trace-dialog-spec sly-mrepl-copy-call-to-repl sly-trace-dialog-copy-call-to-repl] 4] "~" sly-mrepl-sync "" "~" "r" add-hook sly-connected-hook sly-mrepl-on-connection sly-net-process-close-hooks sly-mrepl--teardown-repls #[257 "\211\301\302!)\207" [sly-default-connection sly-mrepl pop-to-buffer] 3 "\n\n(fn PROCESS)"] type-of signal wrong-type-argument sly-contrib 1 t sly-mode-map sly-selector-map sly-connection-list-button-action sly-mrepl--contrib cl-struct-sly-contrib-tags] 7]) (defalias 'sly-mrepl-unload #[0 "\304\305\306\"\210\304\307\310\"\210\311\312:\203#@\262\313\314\315$A\262\202\f\266\316\317\320\"\210\321\322\323\324\325\326 C\"\"\"\210\327\n! >\204E\330\331\332\nD\"\210\n\211\333\312I\207" [sly-contrib--required-slynk-modules sly-autodoc--contrib sly-mrepl--contrib cl-struct-sly-contrib-tags remove-hook sly-connected-hook sly-mrepl-on-connection sly-net-process-close-hooks sly-mrepl--teardown-repls (slynk/mrepl) nil cl-remove :key cl-first sly-warning "Disabling contrib %s" sly-mrepl mapc funcall mapcar sly-contrib--disable cl-remove-if-not sly-contrib--enabled-p type-of signal wrong-type-argument sly-contrib 1] 7]) #@48 Functions run after `sly-mrepl-mode' is set up (defvar sly-mrepl-mode-hook nil (#$ . 4650)) #@53 Functions run after `sly-mrepl-new' sets up a REPL. (defvar sly-mrepl-hook nil (#$ . 4748)) #@155 Functions run once after `sly-mrepl-new' sets up a REPL. After running the contents of this hook its default value is emptied. See also `sly-mrepl-hook' (defvar sly-mrepl-runonce-hook nil (#$ . 4847)) #@175 List of functions filtering Slynk's REPL output. This variables behaves like `comint-preoutput-filter-functions', for output printed to the REPL (not for evaluation results) (defvar sly-mrepl-output-filter-functions comint-preoutput-filter-functions (#$ . 5056)) (defvar sly-mrepl-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\307#\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\207" [make-sparse-keymap define-key " " sly-mrepl-return " " sly-mrepl-indent-and-complete-symbol "" sly-interrupt "" "" sly-mrepl-clear-recent-output [3 134217839] sly-mrepl-clear-repl [134217840] sly-mrepl-previous-input-or-button [134217838] sly-mrepl-next-input-or-button [134217744] sly-button-backward [134217742] sly-button-forward] 5)) (defvar sly-mrepl-pop-sylvester 'on-connection) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\210\300\311\312\303\304\305%\207" [custom-declare-face sly-mrepl-prompt-face ((t (:inherit font-lock-builtin-face))) "Face for the regular MREPL prompt." :group sly-mode-faces sly-mrepl-note-face ((t (:inherit font-lock-keyword-face))) "Face for the MREPL notes." sly-mrepl-output-face ((((class color) (background dark)) (:foreground "VioletRed1")) (((class color) (background light)) (:foreground "steel blue")) (t (:bold t :italic t)))] 6) (defvar sly-mrepl--remote-channel nil) (defvar sly-mrepl--local-channel nil) (defvar sly-mrepl--read-mark nil) (defvar sly-mrepl--output-mark nil) (defvar sly-mrepl--dedicated-stream nil) (defvar sly-mrepl--last-prompt-overlay nil) #@42 Output that can't be inserted right now. (defvar sly-mrepl--pending-output nil (#$ . 6690)) (defvar sly-mrepl--history-separator "####\n") (defvar sly-mrepl--dirty-history nil) (defvar sly-mrepl-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [sly-mrepl-mode-hook variable-documentation put "Hook run after entering mrepl mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp sly-mrepl-mode-map definition-name sly-mrepl-mode] 4) (defvar sly-mrepl-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [sly-mrepl-mode-abbrev-table sly-mrepl-mode-map variable-documentation put purecopy "Keymap for `sly-mrepl-mode'." boundp sly-mrepl-mode-syntax-table definition-name sly-mrepl-mode (lambda (#1=#:def-tmp-var) (defvar sly-mrepl-mode-syntax-table #1#)) make-syntax-table "Syntax table for `sly-mrepl-mode'." (lambda (#1#) (defvar sly-mrepl-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `sly-mrepl-mode'." derived-mode-parent comint-mode] 5) #@500 Major mode derived from `comint-mode' by `define-derived-mode'. It inherits all of the parent's attributes, but has its own keymap, abbrev table and syntax table: `sly-mrepl-mode-map', `sly-mrepl-mode-abbrev-table' and `sly-mrepl-mode-syntax-table' which more-or-less shadow comint-mode's corresponding tables. In addition to any hooks its parent mode might have run, this mode runs the hook `sly-mrepl-mode-hook', as the final or penultimate step during initialization. \{sly-mrepl-mode-map} (defalias 'sly-mrepl-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R ;=\204R\326 \325;C#\210\327 !\210\330\f!\210 ;\331\332!\210\333\334\335\336\337\340\341\342\343\344\345\346\347\350 D\351\352\353\211\354\211$D\355BBBBBBBBBBBBBB\354\211\211:\203\255@\262\211A\262\242\262\211@\262\306!L\210A\262\202\213\266\356'\354\"\210\357\360\361\"\210\330\311 S`\317#\210\320\313\321!\202O\322\323\324#\205O\320*\207" [inhibit-read-only sly-mrepl--read-mark sly-channel-get buffer t #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:read 15 :finished-reading 41)) sly-warning "Expectation failed: (null sly-mrepl--read-mark)" sly-mrepl--accept-process-output add-text-properties (rear-nonsticky t) sly-message "REPL now waiting for input to read" integer-or-marker-p "Expectation failed: (integer-or-marker-p sly-mrepl--read-mark)" (face bold read-only t) nil "REPL back to normal evaluation mode" error "cl-ecase failed: %s, %s" (:read :finished-reading)] 6 "\n\n(fn SELF MODE)"] :prompt #[1284 "r\300\301\"q\210\302$)\207" [sly-channel-get buffer sly-mrepl--insert-prompt] 10 "\n\n(fn SELF PACKAGE PROMPT ERROR-LEVEL &optional CONDITION)"] :open-dedicated-output-stream #[771 "r\301\302\"q\210\303\300!\210\304\305#\211)\207" [sly-mrepl--dedicated-stream sly-channel-get buffer make-local-variable sly-mrepl--open-dedicated-stream nil] 7 "\n\n(fn SELF PORT CODING-SYSTEM)"] :clear-repl-history #[257 "r\301\302\"q\210\303\304 \210\305\306!*\207" [inhibit-read-only sly-channel-get buffer t erase-buffer sly-mrepl--insert-note "Cleared REPL history"] 4 "\n\n(fn SELF)"] :server-side-repl-close #[257 "r\300\301\"q\210\302\303\304\")\207" [sly-channel-get buffer sly-mrepl--teardown "Server side close" dont-signal-server] 4 "\n\n(fn SELF)"] define-button-type sly-mrepl-part :supertype sly-part sly-button-inspect #[514 "\301\302F\303\304 #\207" [sly-mrepl--remote-channel sly-eval-for-inspector slynk-mrepl:inspect-entry :inspector-name sly-maybe-read-inspector-name] 7 "\n\n(fn ENTRY-IDX VALUE-IDX)"] sly-button-describe #[514 "\301\302F!\207" [sly-mrepl--remote-channel sly-eval-describe slynk-mrepl:describe-entry] 7 "\n\n(fn ENTRY-IDX VALUE-IDX)"] sly-button-pretty-print #[514 "\301\302F!\207" [sly-mrepl--remote-channel sly-eval-describe slynk-mrepl:pprint-entry] 7 "\n\n(fn ENTRY-IDX VALUE-IDX)"] sly-mrepl-copy-part-to-repl sly-mrepl--copy-part-to-repl] 12) #@36 (fn CONNECTION &optional HANDLE) (defalias 'sly-mrepl--buffer-name #[513 "\300\301\302\303%\207" [sly-buffer-name :mrepl :connection :suffix] 8 (#$ . 14121)]) #@16 (fn PROCESS) (defalias 'sly-mrepl--teardown-repls #[257 "\302 \303:\2031@\262\304!\203*r\211q\210\305=\203) =\203)\306\307\310\"!\210)A\262\202\303\207" [major-mode sly-buffer-connection buffer-list nil buffer-live-p sly-mrepl-mode sly-mrepl--teardown process-get sly-net-close-reason] 7 (#$ . 14290)]) (defalias 'sly-mrepl--process #[0 "\300p!\207" [get-buffer-process] 2]) #@49 Returns a marker to the end of the last prompt. (defalias 'sly-mrepl--mark #[0 "\300 \211\204\n\301\302!\210\303!\207" [sly-mrepl--process sly-user-error "Not in a connected REPL" process-mark] 3 (#$ . 14688)]) #@57 Like `sly-mrepl--mark', but safe if there's no process. (defalias 'sly-mrepl--safe-mark #[0 "\300 \203\301 \207d\207" [sly-mrepl--process sly-mrepl--mark] 1 (#$ . 14907)]) #@25 (fn PROPS &rest BODY) (defalias 'sly-mrepl--commiting-text '(macro . #[385 "\300 \301\302B\303B\304\305\306\304\307 EFC\"BB\207" [cl-gensym let ((marker-position (sly-mrepl--mark))) ((inhibit-read-only t)) append add-text-properties (sly-mrepl--mark) '(read-only t front-sticky (read-only))] 13 (#$ . 15087)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put sly-mrepl--commiting-text edebug-form-spec (sexp &rest form) function-put lisp-indent-function 1] 4) #@118 Just like `forward-sexp' unless point it at prompt start. In that case, moving a sexp backward does nothing. (fn N) (defalias 'sly-mrepl--forward-sexp #[257 "\211\211\301V\262\204`\302 U?\205\303\304!)\207" [forward-sexp-function 0 sly-mrepl--safe-mark nil forward-sexp] 4 (#$ . 15577)]) #@68 Make everything up to current prompt comment syntax. (fn BEG END) (defalias 'sly-mrepl--syntax-propertize #[514 "\300\301#\210\211\302 ^V\205*\303\304!8\204\"\305\211T\306\307D#\210\305S\306\307D#\207" [remove-text-properties (syntax-table nil) sly-mrepl--safe-mark 8 syntax-ppss add-text-properties syntax-table (14)] 9 (#$ . 15879)]) #@23 (fn REPL-BUFFER FN) (defalias 'sly-mrepl--call-with-repl #[514 "rq\210\300\301p\"\204\302\303\304\305 !\"\210\306\307!\210\202\211 )\207" [buffer-local-value sly-mrepl--remote-channel sly-warning "Waiting for a REPL to be setup for %s" sly-connection-name sly-current-connection sit-for 0.5] 6 (#$ . 16233)]) #@31 (fn REPL-BUFFER &rest BODY) (defalias 'sly-mrepl--with-repl '(macro . #[385 "\300\301\302\303BBDE\207" [sly-mrepl--call-with-repl function lambda nil] 8 (#$ . 16555)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-mrepl--with-repl lisp-indent-function 1 put edebug-form-spec (sexp &rest form)] 5) #@30 (fn STRING &optional FACE) (defalias 'sly-mrepl--insert #[513 "\301\302 !\303\304\305 \306\307\303#\"\210\310\302 \311\312\205\"\313\314 F\"#)\207" [inhibit-read-only marker-position sly-mrepl--mark t comint-output-filter sly-mrepl--process propertize sly-mrepl-break-output add-text-properties append (read-only t front-sticky (read-only)) face font-lock-face] 12 (#$ . 16887)]) #@12 (fn POS) (defalias 'sly-mrepl--break-output-p #[257 "\211f\300=?\205\f\301\302\"\207" [10 get-char-property sly-mrepl-break-output] 4 (#$ . 17284)]) #@40 (fn STRING &optional FACE NOFILTERS) (defalias 'sly-mrepl--insert-output #[769 "C\204j\211\242\203j\304\305 !\206\306\212 b\210o\204/\307S!\203/i\310U\204/\311\312!\210\313 \242P\314\315%\240\210\316\204M\317\320\321\322\"\"\210\311\242!\210i\310U\204c\307`!\203c\212\312c\210)\323 \324#*\207 \242P\325\326!\207" [sly-mrepl--read-mark sly-mrepl--output-mark inhibit-read-only sly-mrepl--pending-output t marker-position sly-mrepl-output-face sly-mrepl--break-output-p 0 insert-before-markers "\n" propertize face font-lock-face nil run-hook-wrapped sly-mrepl-output-filter-functions make-closure #[257 "\300\300\242!\240\210\301\207" [V0 nil] 4 "\n\n(fn FN)"] add-text-properties (read-only t front-sticky (read-only) field sly-mrepl--output) sly-message "Some output saved for later insertion"] 14 (#$ . 17443)]) #@30 (fn STRING &optional FACE) (defalias 'sly-mrepl--insert-note #[513 "\211\206\300\301\302\303#\304 \203\305 \210\306\"\207\307\"\207" [sly-mrepl-note-face replace-regexp-in-string "^" "; " sly-mrepl--process sly-mrepl--ensure-newline sly-mrepl--insert sly-mrepl--insert-output] 7 (#$ . 18296)]) (defalias 'sly-mrepl--send-input-sexp #[0 "db\210\212\303\304x\210`\305 ]d|\210)\306 \210\307\310\311#\210\312\301!\210\313\314\305 !\313\315 \210\316\305 \317\320\321\322\323\324 \325\326\327#\210\325\330\327#\210\325\331\327#\210\211\262F\"#\210)\210\332 \207" [sly-mrepl--last-prompt-overlay sly-mrepl--dirty-history inhibit-read-only "\n " nil sly-mrepl--mark buffer-disable-undo overlay-put face highlight make-local-variable t marker-position comint-send-input add-text-properties append (read-only t front-sticky (read-only)) field sly-mrepl-input keymap make-sparse-keymap define-key " " sly-mrepl-insert-input [return] [mouse-2] sly-mrepl--ensure-prompt-face] 14]) (defalias 'sly-mrepl--ensure-newline #[0 "\212\300 b\210i\301U)?\205\302\303!\207" [sly-mrepl--mark 0 sly-mrepl--insert "\n"] 2]) (defalias 'sly-mrepl--accept-process-output #[0 "\205\301!\205\302\303\304 \305=\205\306#\205\202\n\207" [sly-mrepl--dedicated-stream process-live-p accept-process-output 0 window-system w32 1] 5]) #@58 Override `comint.el''s use of `comint-highlight-prompt'. (defalias 'sly-mrepl--ensure-prompt-face #[0 "\302\303\304 !\305 !\306#)\207" [inhibit-read-only sly-mrepl--last-prompt-overlay t add-text-properties overlay-start overlay-end (font-lock-face sly-mrepl-prompt-face)] 4 (#$ . 19632)]) #@55 (fn PACKAGE PROMPT ERROR-LEVEL &optional CONDITION) (defalias 'sly-mrepl--insert-prompt #[1027 "\301 \210\302\303\304#\210\211\203\305\306\307\"!\210\310 \210\311 \210\312\313 !\314\315\211\316V\262\2053\317\306\320\"\321\"\322P\315\323P\303\324\325\324%P\326\227#!\210\327\313 #\266\330 \210\331 \210\332 \207" [sly-mrepl--last-prompt-overlay sly-mrepl--accept-process-output overlay-put face bold sly-mrepl--insert-note format "Debugger entered on %s" sly-mrepl--ensure-newline sly-mrepl--catch-up marker-position sly-mrepl--mark sly-mrepl--insert propertize 0 sly-make-action-button "[%d]" sly-db-pop-to-debugger-maybe " " "> " sly-mrepl-prompt-face font-lock-face sly-mrepl--prompt move-overlay sly-mrepl--ensure-prompt-face buffer-disable-undo buffer-enable-undo] 14 (#$ . 19929)]) #@28 (fn ENTRY-IDX VALUE-IDX) (defalias 'sly-mrepl--copy-part-to-repl #[514 "\300D\301\302\303##\207" [sly-mrepl--copy-objects-to-repl :before format "Returning value %s of history entry %s"] 9 (#$ . 20740)]) #@562 Evaluate SLYFUN-AND-ARGS in Slynk, then call callbacks. SLYFUN-AND-ARGS is (SLYFUN . ARGS) and is called in Slynk. SLYFUN's multiple return values are captured in a list and passed to the optional unary callbacks BEFORE-PROMPT and AFTER-PROMPT, called before or after prompt insertion, respectively. If INSERT-P is non-nil, SLYFUN's results are printable representations of Slynk objects and should be inserted into the REPL. POP-TO-BUFFER says whether to pop the REPL buffer. (fn SLYFUN-AND-ARGS &key INSERT-P BEFORE-PROMPT AFTER-PROMPT (POP-TO-BUFFER t)) (defalias 'sly-mrepl--eval-for-repl #[385 "\301\302\"A@\301\303\"A@\301\304\"A@\301\305\"\206\306A@\211\203H\211@\307>\2030\211AA\262\202\310>A@\203?\311\262\202\312\313@\"\210\202\210\314\315\316 @D ABBB\317\320%\"\207" [sly-mrepl--remote-channel plist-member :insert-p :before-prompt :after-prompt :pop-to-buffer (nil t) (:insert-p :before-prompt :after-prompt :pop-to-buffer :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:insert-p :before-prompt :after-prompt :pop-to-buffer)" sly-eval-async slynk-mrepl:eval-for-mrepl quote make-closure #[257 "\211\211G\304U\203\211A\262\242\202\305\306\307GD\"\242\310 b\210`d{`d|\210\311 \210\301\2030\301!\210\300\2038\312!\210\313\314\"\210\303\203E\315p!\210\310 b\210\211c\210\302\205S\302!\207" [V0 V1 V2 V3 2 signal wrong-number-of-arguments (prompt-args results) sly-mrepl--mark sly-mrepl--catch-up sly-mrepl--insert-results apply sly-mrepl--insert-prompt pop-to-buffer] 8 "\n\n(fn PROMPT-ARGS-AND-RESULTS)"]] 14 (#$ . 20958)]) #@411 Recall objects in the REPL history as a new entry. METHOD-ARGS are SLYNK-MREPL:COPY-TO-REPL's optional args. If nil , consider the globally saved objects that SLYNK-MREPL:GLOBALLY-SAVE-OBJECT stored. Otherwise, it is a list (ENTRY-IDX VALUE-IDX). BEFORE and AFTER as in `sly-mrepl--save-and-copy-for-repl' POP-TO-BUFFER as in `sly-mrepl--eval-for-repl'. (fn METHOD-ARGS &key BEFORE AFTER (POP-TO-BUFFER t)) (defalias 'sly-mrepl--copy-objects-to-repl #[385 "\300\301\"A@\300\302\"A@\300\303\"\206\304A@\211\203A\211@\305>\203*\211AA\262\202\306>A@\2038\307\262\202\310\311@\"\210\202\210\312\313B\314;\203U\315\316\"\202V\317\303&\207" [plist-member :before :after :pop-to-buffer (nil t) (:before :after :pop-to-buffer :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:before :after :pop-to-buffer)" sly-mrepl--eval-for-repl slynk-mrepl:copy-to-repl :before-prompt make-closure #[257 "\301\300!\210\302!\207" [V0 sly-mrepl--insert-note sly-mrepl--insert-results] 3 "\n\n(fn OBJECTS)"] :after-prompt] 13 (#$ . 22583)]) #@19 (fn RESULT IDX) (defalias 'sly-mrepl--make-result-button #[514 "\300@\301\302\303\304A@D\305\306\307!\310 \311\312 &\f\207" [sly--make-text-button nil :type sly-mrepl-part part-args part-label format "REPL Result" sly-mrepl--result sly-button-search-id sly-button-next-search-id] 15 (#$ . 23673)]) #@16 (fn RESULTS) (defalias 'sly-mrepl--insert-results #[257 "\301\211\204\f\302\303!\2020\211\301\304:\203-@\262\305 \210\306\307\"!\210A\262\211T\262\202\266\301)\207" [comint-preoutput-filter-functions nil sly-mrepl--insert-note "No values" 0 sly-mrepl--ensure-newline sly-mrepl--insert sly-mrepl--make-result-button] 8 (#$ . 23985)]) #@57 Synchronize the output mark with the REPL process mark. (defalias 'sly-mrepl--catch-up #[0 "\301 \302\223\207" [sly-mrepl--output-mark sly-mrepl--mark nil] 3 (#$ . 24341)]) #@20 (fn PROC STRING) (defalias 'sly-mrepl--input-sender #[514 "\300\301!!\207" [sly-mrepl--send-string substring-no-properties] 5 (#$ . 24521)]) #@40 (fn STRING &optional COMMAND-STRING) (defalias 'sly-mrepl--send-string #[513 "\300\301D!\207" [sly-mrepl--send :process] 5 (#$ . 24671)]) #@43 Send MSG to the remote channel. (fn MSG) (defalias 'sly-mrepl--send #[257 "\301\"\207" [sly-mrepl--remote-channel sly-send-to-remote-channel] 4 (#$ . 24818)]) #@104 Find the shortest-named (default) `sly-mrepl' buffer for CONNECTION. (fn &optional CONNECTION THREAD) (defalias 'sly-mrepl--find-buffer #[512 "\206 \302\211\303 *\304\305\306#\307 \"\310\311\312\313\314\315\"$\211@\207" [sly-dispatching-connection sly-buffer-connection nil sly-connection cl-remove-if-not make-closure #[257 "r\211q\210\n\305=\205 \301=\205\300?\206\300\f=)\207" [V0 V1 major-mode sly-buffer-connection sly-current-thread sly-mrepl-mode] 3 "\n\n(fn X)"] buffer-list cl-sort < :key sly-compose length buffer-name] 11 (#$ . 24987)]) #@19 (fn CONNECTION) (defalias 'sly-mrepl--find-create #[257 "\300!\206 \301!\207" [sly-mrepl--find-buffer sly-mrepl-new] 3 (#$ . 25555)]) (defalias 'sly-mrepl--busy-p #[0 "\301 Y\207" [sly-mrepl--output-mark sly-mrepl--mark] 2]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-mrepl-history-file-name funcall function #[0 "\300\301!\207" [expand-file-name "~/.sly-mrepl-history"] 2] "File used to store SLY REPL's input history across sessions." :type file :group sly] 8) (defalias 'sly-mrepl--read-input-ring #[0 " \304 *\207" [sly-mrepl--history-separator sly-mrepl-history-file-name comint-input-ring-file-name comint-input-ring-separator comint-read-input-ring] 2]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-mrepl-prevent-duplicate-history funcall function #[0 "\300\207" [move] 1] "If non-nil, prevent duplicate entries in input history.\n\nOtherwise (if nil), input entry are always added to the end of\nthe history, even if they already occur in the history.\n\nIf the non-nil value is `move', the previously occuring entry is\ndiscarded, i.e. moved to a more recent spot. Any other non-nil\nvalue laves the previous entry untouched and it is the more\nrecent entry that is discarded." :type symbol :group sly] 8) (defalias 'sly-mrepl--merge-and-save-history #[0 "\306\307\"\310!  \311 \210\211S\312\211\211\313Y\203h\314\"\262\315\"\262\203= \316=\203=\317\"\210\320\"\210\202R\203M \204M\320\"\210\202R\320\"\210\315\"\204^\320\"\210S\262\312\262\202\266\321\322 \210)\323\324!\210\312\211*\207" [comint-input-ring sly-mrepl--history-separator comint-input-ring-separator sly-mrepl-history-file-name comint-input-ring-file-name sly-mrepl-prevent-duplicate-history copy-tree vectors-too ring-length sly-mrepl--read-input-ring nil 0 ring-ref ring-member move ring-remove ring-insert utf-8-unix comint-write-input-ring make-local-variable sly-mrepl--dirty-history coding-system-for-write] 9]) (defalias 'sly-mrepl--save-all-histories #[0 "\302 \303:\203%@\262r\211q\210\304=\203 \203\305 \210)A\262\202\303\207" [major-mode sly-mrepl--dirty-history buffer-list nil sly-mrepl-mode sly-mrepl--merge-and-save-history] 4]) #@44 (fn &optional REASON DONT-SIGNAL-SERVER) (defalias 'sly-mrepl--teardown #[512 "\304\305\306\307#\210\307db\210`i\310U\204\311c\210\312\313\206\314\"c\210i\310U\204(\311c\210\315c\210\316`\317#\266)\320 \210 \203F\321 \322\323#\210\324\325 !!\210\326\n!\210\211\204[\3271Z\330\331!0\210\202[\210\332\303!\210\323\333 \205j\334\333 !\207" [inhibit-read-only sly-mrepl--dedicated-stream sly-mrepl--local-channel sly-mrepl--remote-channel remove-hook kill-buffer-hook sly-mrepl--teardown t 0 "\n" format "; %s" "REPL teardown" "; --------------------------------------------------------\n" add-text-properties (read-only t) sly-mrepl--merge-and-save-history process-put sly-mrepl--channel nil kill-buffer process-buffer sly-close-channel (error) sly-mrepl--send (:teardown) make-local-variable sly-mrepl--process delete-process] 7 (#$ . 27840)]) #@23 (fn PROCESS STRING) (defalias 'sly-mrepl--dedicated-stream-output-filter #[514 "\301\302\"\211\205\f\303\304\"\305!\203-r\211q\210G\211\306V\262\205+\307!\310=\205+\311!)\207\312\313\"\207" [sly-buffer-connection process-get sly-mrepl--channel sly-channel-get buffer buffer-live-p 0 process-status open sly-mrepl--insert-output sly-warning "No channel in process %s, probably torn down"] 7 (#$ . 28705)]) #@35 (fn CHANNEL PORT CODING-SYSTEM) (defalias 'sly-mrepl--open-dedicated-stream #[771 "\303\304\305\306\"\307! >\204\310\311\312D\"\210\313H#\314\315\303\316\"!\317!@$\320\n\321\322$@\323\324\"\210\325\326D\"\210\327\330\"\210\331\211#\210\332 \211\203T\333\"\210\210\334\335\"\210\207" [sly-buffer-connection cl-struct-sly-channel-tags sly-net-valid-coding-systems format "sly-dds-%s-%s" process-get sly--net-connect-counter type-of signal wrong-type-argument sly-channel 3 open-network-stream generate-new-buffer " *%s*" process-contact cl-find :key cl-third set-process-query-on-exit-flag nil set-process-plist sly-mrepl--channel set-process-filter sly-mrepl--dedicated-stream-output-filter set-process-coding-system sly-secret sly-net-send run-hook-with-args sly-mrepl--dedicated-stream-hooks] 10 (#$ . 29130)]) #@584 Evaluate SLYFUN-AND-ARGS in Slynk and prepare to copy to REPL. BEFORE is a string inserted as a note, or a nullary function which is run just before the object is copied to the REPL. Optional BEFORE and AFTER are unary functions called with a list of the saved values' presentations strings and run before and after the the the prompt are inserted, respectively. BEFORE can also be a string in which case it is inserted via `sly-insert-note' followed by the saved values' presentations. REPL is the REPL buffer to return the objects to. (fn SLYFUN-AND-ARGS &key REPL BEFORE AFTER) (defalias 'sly-mrepl--save-and-copy-for-repl #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311\312\313@DABB\314\315$\"\207" [plist-member :repl :before :after (:repl :before :after :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:repl :before :after)" sly-eval-async slynk-mrepl:globally-save-object quote make-closure #[257 "\303\304\301\305\302\306\300&\207" [V0 V1 V2 sly-mrepl--copy-globally-saved-to-repl :before :after :repl] 8 "\n\n(fn IGNORED)"]] 12 (#$ . 29977)]) #@175 Copy last globally saved values to REPL, or active REPL. BEFORE and AFTER as described in `sly-mrepl--save-and-copy-for-repl'. (fn &key BEFORE AFTER REPL (POP-TO-BUFFER t)) (defalias 'sly-mrepl--copy-globally-saved-to-repl #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"\206\305A@\211\203H\211@\306>\2030\211AA\262\202\307>A@\203?\310\262\202\311\312@\"\210\202\210\313\206R\314\315 !\316\317$\"\207" [plist-member :before :after :repl :pop-to-buffer (nil t) (:before :after :repl :pop-to-buffer :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:before :after :repl :pop-to-buffer)" sly-mrepl--call-with-repl sly-mrepl--find-create sly-connection make-closure #[0 "\303\304\305\300\306\301\307\302&\207" [V0 V1 V2 sly-mrepl--copy-objects-to-repl nil :before :after :pop-to-buffer] 8]] 12 (#$ . 31183)]) #@21 (fn SPEC RESULTS) (defalias 'sly-mrepl--insert-call #[514 "\300 d|\210\301\302\303\211\211\211\304\303:\203J@\262\211A\262\242\262\211A\262\242\262@\262\206:\305\301\306#!B\262A\262T\262\202\211\237\266\207B\"c\207" [sly-mrepl--mark format "%s" nil 0 make-symbol "#v%d:%d"] 17 (#$ . 32060)]) (defalias 'sly-mrepl--assert-mrepl #[0 "\301=?\205\n\302\303!\207" [major-mode sly-mrepl-mode sly-error "Not in a mREPL buffer"] 2]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-mrepl-eli-like-history-navigation funcall function #[0 "\300\207" [nil] 1] "If non-NIL navigate history like ELI.\nWhen this option is active, previous history entries navigated to\nby M-p and M-n keep the current input and use it to surround the\nhistory entry navigated to." :type boolean :group sly] 8) (defvar sly-mrepl--eli-input nil) (defalias 'sly-mrepl--set-eli-input #[0 "\205!`\302 Z\211\303V\205\302 d{\211\205\211\303O\304OB\266\202\211\207" [sly-mrepl-eli-like-history-navigation sly-mrepl--eli-input sly-mrepl--mark 0 nil] 6]) (defalias 'sly-mrepl--keep-eli-input-maybe #[0 "\205\212\301 b\210@c\210db\210Ac)\207" [sly-mrepl--eli-input sly-mrepl--mark] 1]) (defvar sly-mrepl--eli-input-overlay nil) (defalias 'sly-mrepl--surround-with-eli-input-overlay #[0 "\203\302\303 d#\210\202\304\303 d\"\305\306 @#\210\305\307 A#\207" [sly-mrepl--eli-input-overlay sly-mrepl--eli-input move-overlay sly-mrepl--mark make-overlay overlay-put before-string after-string] 4]) (defalias 'sly-mrepl--setup-comint-isearch #[0 "\303=\204\f\304\300!\210\305\306 \210 \205\304\302!\210\307\211\207" [isearch-search-fun-function sly-mrepl-eli-like-history-navigation isearch-push-state-function isearch-search-fun-default make-local-variable #[0 "\300\207" [#[128 "\300K\301\302\"\216\300\303M\210\304\305 \")\207" [comint-line-beginning-position make-closure #[0 "\301\300M\207" [V0 comint-line-beginning-position] 2] field-beginning apply comint-history-isearch-search] 5 "\n\n(fn &rest ARGS)"]] 1] sly-mrepl--set-eli-input sly-mrepl--isearch-push-state] 2]) #@19 (fn &rest ARGS) (defalias 'sly-mrepl--isearch-push-state #[128 "\301\302\"\210\303>?\205\304 \207" [this-command apply comint-history-isearch-push-state (isearch-backward isearch-forward) sly-mrepl--surround-with-eli-input-overlay] 4 (#$ . 34202)]) (defalias 'sly-mrepl--teardown-comint-isearch #[0 "\302\300!\210\303\304 !\203\305 !\210\306\307 \207" [isearch-search-fun-function sly-mrepl--eli-input-overlay make-local-variable isearch-search-fun-default overlayp delete-overlay nil sly-mrepl--keep-eli-input-maybe] 2]) #@251 Indent the current line, perform symbol completion or show arglist. Completion performed by `completion-at-point' or `company-complete'. If there's no symbol at the point, show the arglist for the most recently enclosed macro or function. (fn ARG) (defalias 'sly-mrepl-indent-and-complete-symbol #[257 "`\301\300!\203\203\302\202\303\304!\210`U\2051\212\305\306\307\310#)\203'\211 \207`Sf\311>\2051\312 \207" [company-mode boundp company-complete completion-at-point indent-for-tab-command re-search-backward "[^() \n ]+\\=" nil t (9 32) sly-show-arglist] 7 (#$ . 34741) "P"]) #@101 If the input is a whole expression, evaluate it and return the result. (fn &optional END-OF-INPUT) (defalias 'sly-mrepl-return #[256 "\302 \204 \303\304!\210\305\306 !\204\303\307\310\311\211$\210\312 \210\204'\313 \203'\314\315!\207\204=\316\317 d\"\2047\211\203=\320 \210\321 \207\203U\211\204Kdb\210\322 \210\323\324\325!\210)\321 \207\326 \210\314\327!\207" [sly-mrepl--read-mark comint-input-filter sly-connection cl--assertion-failed (sly-connection) process-live-p sly-mrepl--process (process-live-p (sly-mrepl--process)) "No local live process, cannot use this REPL" nil accept-process-output sly-mrepl--busy-p sly-message "REPL is busy" sly-input-complete-p sly-mrepl--mark sly-mrepl--send-input-sexp sly-mrepl--catch-up newline #[257 "\300\207" [nil] 2 "\n\n(fn S)"] comint-send-input no-newline newline-and-indent "Input not complete"] 6 (#$ . 35340) "P"]) #@10 (fn N) (defalias 'sly-mrepl-previous-input-or-button #[257 "`\301 Y\203\302>\204\303 \210\304!\210\305 \207\306!\207" [last-command sly-mrepl--mark (sly-mrepl-previous-input-or-button sly-mrepl-next-input-or-button) sly-mrepl--set-eli-input comint-previous-input sly-mrepl--keep-eli-input-maybe sly-button-backward] 3 (#$ . 36229) "p"]) #@10 (fn N) (defalias 'sly-mrepl-next-input-or-button #[257 "\300[!\207" [sly-mrepl-previous-input-or-button] 3 (#$ . 36581) "p"]) (byte-code "\300\301\302\303#\210\300\304\302\303#\207" [put sly-mrepl-next-input-or-button sly-button-navigation-command t sly-mrepl-previous-input-or-button] 4) #@318 Find or create the first useful REPL for the default connection. If supplied, DISPLAY-ACTION is called on the buffer. Interactively, DISPLAY-ACTION defaults to using `switch-to-buffer' unless the intended buffer is already visible in some window, in which case that window is selected. (fn &optional DISPLAY-ACTION) (defalias 'sly-mrepl #[256 "\300\301 !\203\f!\210\207" [sly-mrepl--find-create sly-current-connection] 4 (#$ . 36880) (list #[257 "\300!\211\203 \301!\207\302!\207" [get-buffer-window select-window switch-to-buffer] 4 "\n\n(fn BUF)"])]) (defalias 'sly-mrepl-on-connection #[0 "\301 \205 \302\301 !\211\205\303\304\"\305=\206\306\307!\210)\211\203*\310!\210\311!\210db\207" [sly-mrepl-pop-sylvester sly-process process-buffer get-buffer-window t on-connection sly-mrepl pop-to-buffer bury-buffer delete-window] 4]) #@266 Create and setup a new REPL buffer for CONNECTION. CONNECTION defaults to the current SLY connection. If such a buffer already exists, or a prefix arg is given, prompt for a handle to distinguish the new buffer from the existing. (fn CONNECTION &optional HANDLE) (defalias 'sly-mrepl-new #[513 "\306\"\307!\203\211\203\310\311!\210\312 \210\313!\314!\315 !\203& \202)\316\317!r\211q\210\320 \210\204D\n\321=\203D\322\323\324 \325Q\326\"\210\327\330\331\332 \333\"\334!\f>\204_\335\336\337D\"\210\340H#p\341#\210\342\343 \341\"\210\330\344\334!\f>\204\335\336\337D\"\210\340H\"\345\346p#\210\347\350\351\341\352$\210\353\354!\210,)\355\356\334!\f>\204\253\335\336\337D\"\210\340HD\357\360\"\"\210)\207" [sly-listener-channel-methods default-directory sly-mrepl-pop-sylvester sly-buffer-connection cl-struct-sly-channel-tags header-line-format sly-mrepl--buffer-name get-buffer sly-user-error "A REPL with that handle already exists" sly-mrepl--save-all-histories sly-make-channel pop-to-buffer file-readable-p expand-file-name "~/" sly-mrepl-mode t sly-mrepl--insert-note "\n" sly-mrepl-random-sylvester "\n\n" sly-mrepl-output-face start-process format "sly-pty-%s-%s" process-get sly--net-connect-counter type-of signal wrong-type-argument sly-channel 3 nil set-process-query-on-exit-flag sly-mrepl--process "Waiting for REPL creation ack for channel %d..." sly-channel-put buffer add-hook kill-buffer-hook sly-mrepl--teardown local make-local-variable sly-mrepl--local-channel sly-eval-async slynk-mrepl:create-mrepl make-closure #[257 "\211\211G\304U\203\211A\262\242\202\305\306\307GD\"\242r\300q\210\310 \210\311\211\312\303!\210\313\216\314\315\316\"*\207" [V0 header-line-format sly-current-thread sly-mrepl--remote-channel 2 signal wrong-number-of-arguments (remote thread-id) sly-mrepl--read-input-ring nil make-local-variable #[0 "\300\301\302\"\207" [set-default sly-mrepl-runonce-hook nil] 3] run-hooks sly-mrepl-hook sly-mrepl-runonce-hook] 7 "\n\n(fn RESULT)"]] 14 (#$ . 37738) (byte-code "\301 \211\302\303!!\204\205\304\305!D\207" [current-prefix-arg sly-connection get-buffer sly-mrepl--buffer-name sly-read-from-minibuffer "Nickname for this new REPL? "] 5)]) #@12 (fn POS) (defalias 'sly-mrepl-insert-input #[257 "\300 \210\301!\302=\203\211\202\211T\301T!\302=\205\303!\211\205&`\304!Z\203=\305 b\210`d|\210\306!c\210\305 \\b\207\307\310!\207" [sly-mrepl--assert-mrepl field-at-pos sly-mrepl-input field-string-no-properties field-beginning sly-mrepl--mark sly-trim-whitespace sly-user-error "No input at point"] 6 (#$ . 39983) (byte-code "\301!\203\302\303!!\202`C\207" [last-input-event mouse-event-p posn-point event-end] 3)]) #@36 (fn &optional POINT INTERACTIVE) (defalias 'sly-mrepl-guess-package #[512 "\206`\300\301\"\211\205\"\302\301\"\206\"\300\301\"\211\205 \302\301\"\262\203+\303\304\"\210\207" [previous-single-property-change sly-mrepl--prompt get-text-property sly-message "Guessed package \"%s\""] 8 (#$ . 40479) (byte-code "`\300D\207" [t] 2)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias sly-mrepl-sync-package-and-default-directory sly-mrepl-sync nil make-obsolete "1.0.0-alpha-3"] 4) #@310 Go to the REPL, and set Slynk's PACKAGE and DIRECTORY. Also yank EXPRESSION into the prompt. Interactively gather PACKAGE and DIRECTORY these values from the current buffer, if available. In this scenario EXPRESSION is only set if a C-u prefix argument is given. (fn &optional PACKAGE DIRECTORY EXPRESSION) (defalias 'sly-mrepl-sync #[768 "\300\301\302 !\303\304$\"\207" [sly-mrepl--call-with-repl sly-mrepl--find-create sly-connection make-closure #[0 "\301\203\303\301!\210\304\305\306\300\307\301\205\310\301!\257\311\312\313\314\315\300\301#\316\314\317\302\"&\207" [V0 V1 V2 cd sly-mrepl--eval-for-repl slynk-mrepl:sync-package-and-default-directory :package-name :directory sly-to-lisp-filename :insert-p nil :before-prompt make-closure #[257 "\211\211G\302U\203\211A\262\242\202\303\304\305GD\"\242\306\300\203+\301\203+\307\310#\202F\301\2036\307\311\"\202F\300\203A\307\312\"\202F\307\313#!\207" [V0 V1 2 signal wrong-number-of-arguments (package-2 directory-2) sly-mrepl--insert-note format "Synched package to %s and directory to %s" "Synched directory to %s" "Synched package to %s" "Remaining in package %s and directory %s"] 9 "\n\n(fn RESULTS)"] :after-prompt #[257 "\300\205db\210`\300c\210\301\302\300\"\205\303d\"\262\207" [V0 string-match "\n" indent-region] 5 "\n\n(fn RESULTS)"]] 10]] 10 (#$ . 40995) (byte-code "\303 \205 \n\205 \304 E\207" [buffer-file-name default-directory current-prefix-arg sly-current-package sly-last-expression] 3)]) #@68 Clear all this REPL's output history. Doesn't clear input history. (defalias 'sly-mrepl-clear-repl #[0 "\300 \210\301\302!\207" [sly-mrepl--assert-mrepl sly-mrepl--send (:clear-repl-history)] 2 (#$ . 42510) nil]) #@59 Clear this REPL's output between current and last prompt. (defalias 'sly-mrepl-clear-recent-output #[0 "\302 \210\303\211\211\304\303\203\305 \306!T\303\223\202\262\307\310\"\303\223\262\311!\203y\312S\313\"\204yeV\203y\314!\315=\203o\304\316!\317!\206L`Sf\320=\203W\321\202X\322\317!\\|\210\323\324\325\"\210)\303\262\303\211\262\202p\304\203y\303\262\202\266\326\327!\207" [sly-mrepl--last-prompt-overlay inhibit-read-only sly-mrepl--assert-mrepl nil t make-marker overlay-start previous-single-property-change field marker-position get-text-property sly-mrepl--prompt field-at-pos sly-mrepl--output field-beginning field-end 10 0 1 sly-mrepl--insert-output "; Cleared last output" sly-mrepl-note-face sly-message "Cleared last output"] 9 (#$ . 42729) nil]) #@46 Go to the beginning of the next REPL prompt. (defalias 'sly-mrepl-next-prompt #[0 "\300\301\302!\303\"\211b\266\304\207" [next-single-char-property-change line-beginning-position 2 sly-mrepl--prompt nil] 3 (#$ . 43531) nil]) #@50 Go to the beginning of the previous REPL prompt. (defalias 'sly-mrepl-previous-prompt #[0 "\301\302\303 S\304\"\211b\210\303 b\210)\210\305\207" [inhibit-field-text-motion t previous-single-char-property-change line-beginning-position sly-mrepl--prompt nil] 3 (#$ . 43764) nil]) #@78 Evaluate the inspector slot at point via the REPL (to set `*'). (fn NUMBER) (defalias 'sly-inspector-copy-part-to-repl #[257 "\301\302\303\304\257\305\306\307\"#\207" [sly--this-inspector-name sly-mrepl--save-and-copy-for-repl slynk:eval-for-inspector nil 'slynk:inspector-nth-part-or-lose :before format "Returning inspector slot %s"] 7 (#$ . 44051)]) #@82 Evaluate the frame var at point via the REPL (to set `*'). (fn FRAME-ID VAR-ID) (defalias 'sly-db-copy-part-to-repl #[514 "\301\302E\303\304\305 \"\306\307\310 #%\207" [sly-current-thread sly-mrepl--save-and-copy-for-repl slynk-backend:frame-var-value :repl sly-mrepl--find-buffer sly-current-connection :before format "Returning var %s of frame %s"] 11 (#$ . 44415)]) #@18 (fn NAME TYPE) (defalias 'sly-apropos-copy-symbol-to-repl #[514 "\300\301\302\303!@DD\304\305\306\"#\207" [sly-mrepl--save-and-copy-for-repl common-lisp:identity quote read-from-string :before format "Returning symbol %s"] 8 (#$ . 44797)]) #@86 Eval the Trace Dialog entry under point in the REPL (to set *) (fn ID PART-ID TYPE) (defalias 'sly-trace-dialog-copy-part-to-repl #[771 "\300\301F\302\303\304 $#\207" [sly-mrepl--save-and-copy-for-repl slynk-trace-dialog:trace-part-or-lose :before format "Returning part %s (%s) of trace entry %s"] 11 (#$ . 45048)]) #@22 (fn FRAME-ID SPEC) (defalias 'sly-db-copy-call-to-repl #[514 "\300\301D\302\303\304\"\305\306\307\"%\207" [sly-mrepl--save-and-copy-for-repl slynk-backend:frame-arguments :before format "The actual arguments passed to frame %s" :after make-closure #[257 "\301\300\"\207" [V0 sly-mrepl--insert-call] 4 "\n\n(fn OBJECTS)"]] 10 (#$ . 45380)]) #@22 (fn TRACE-ID SPEC) (defalias 'sly-trace-dialog-copy-call-to-repl #[514 "\300\301D\302\303\304\"\305\306\307\"%\207" [sly-mrepl--save-and-copy-for-repl slynk-trace-dialog:trace-arguments-or-lose :before format "The actual arguments passed to trace %s" :after make-closure #[257 "\301\300\"\207" [V0 sly-mrepl--insert-call] 4 "\n\n(fn OBJECTS)"]] 10 (#$ . 45734)]) (defalias 'sly-mrepl-inside-string-or-comment-p #[0 "\300\301 !\205 \302 \211\205\"`V\205\"\303`\"\3048\206 \3058\262\207" [process-live-p sly-mrepl--process sly-mrepl--mark parse-partial-sexp 3 4] 4]) #@33 History for sly-mrepl-shortcut. (defvar sly-mrepl-shortcut-history nil (#$ . 46322)) #@80 Set `sly-mrepl-shortcut' and reset REPL keymap accordingly. (fn KEY-SEQUENCE) (defalias 'sly-mrepl-reset-shortcut #[257 "\302\301!\203\f\303 \304#\210\305\301\"\210\303\306#\207" [sly-mrepl-mode-map sly-mrepl-shortcut boundp define-key nil set-default (menu-item "" sly-mrepl-shortcut :filter (lambda (cmd) (if (and (eq major-mode 'sly-mrepl-mode) (sly-mrepl--shortcut-location-p)) cmd)))] 5 (#$ . 46413) "kNew shortcut key sequence? "]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable sly-mrepl-shortcut funcall function #[0 "\300\207" [","] 1] "Keybinding string used for the REPL shortcut commands.\nWhen setting this variable outside of the Customize interface,\n`sly-mrepl-reset-shortcut' must be used." :group sly :type key-sequence :set #[514 "\300!\207" [sly-mrepl-reset-shortcut] 4 "\n\n(fn SYM VALUE)"]] 10) (defalias 'sly-mrepl--shortcut-location-p #[0 "`\301 W\206(\302 \3038\206\3048\262?\205(\305\232?\206(\212\306\307\301 \310#)?\207" [sly-mrepl-shortcut sly-mrepl--mark syntax-ppss 3 4 "," search-backward "`" noerror] 4]) (defvar sly-mrepl-shortcut-alist '(("cd" . sly-mrepl-set-directory) ("clear repl" . sly-mrepl-clear-repl) ("disconnect" . sly-disconnect) ("disconnect all" . sly-disconnect-all) ("in-package" . sly-mrepl-set-package) ("restart lisp" . sly-restart-inferior-lisp) ("quit lisp" . sly-quit-lisp) ("sayoonara" . sly-quit-lisp) ("set directory" . sly-mrepl-set-directory) ("set package" . sly-mrepl-set-package))) (defalias 'sly-mrepl-set-package #[0 "\300\301!\302\303D!\207" [sly-read-package-name "New package: " sly-mrepl--eval-for-repl slynk-mrepl:guess-and-set-package] 4 nil nil]) (defalias 'sly-mrepl-set-directory #[0 "\301\302\303\304$\305\306D\307\310\311\"#\210\312!\207" [default-directory read-directory-name "New directory: " nil t sly-mrepl--save-and-copy-for-repl slynk:set-default-directory :before format "Setting directory to %s" cd] 7 nil nil]) (defalias 'sly-mrepl-shortcut #[0 "\302\303\304\305\"\306\307\306\301 @&\211\205\310\"A\311!\207" [sly-mrepl-shortcut-alist sly-mrepl-shortcut-history sly-completing-read "Command: " mapcar car nil require-match assoc call-interactively] 8 nil nil]) #@49 List of overlays on top of REPL result buttons. (defvar sly-mrepl--backreference-overlays nil (#$ . 48643)) (make-variable-buffer-local 'sly-mrepl--backreference-overlays) #@258 Highlight REPL results for ENTRY-IDX and VALUE-IDX. If VALUE-IDX is nil or `all', highlight all results for entry ENTRY-IDX. If ENTRY-IDX is nil, highlight all results. Returns a list of result buttons thus highlighted (fn &optional ENTRY-IDX VALUE-IDX) (defalias 'sly-mrepl-highlight-results #[512 "\301ed\"\302\211\211\211\211:\203\227@\262\303\304\"@\262\303\304\"A@\262\305\303\306\"\262\307\"\203\215\303\310\"\311 =\203\215\303\312\"\204\215\203KU\203\215\203^\313=\204^U\203\215B\262\314\315!\316!\"\211B\317\320\321\322\323\303\f\304\"@\303 \304\"A@#\324\325#\326P#\266A\262\302\262\202 \237\207" [sly-mrepl--backreference-overlays sly-button-buttons-in nil button-get part-args button-type-subtype-p type sly-mrepl-part sly-connection sly-current-connection sly-mrepl--highlight-overlay all make-overlay button-start button-end overlay-put before-string propertize format "%s:%s" face highlight " "] 19 (#$ . 48822) nil]) #@30 Unhighlight all repl results (defalias 'sly-mrepl-unhighlight-results #[0 "\301\302\"\210\303\211\207" [sly-mrepl--backreference-overlays mapc delete-overlay nil] 3 (#$ . 49813) nil]) (defvar sly-mrepl--backreference-overlay nil) (defvar sly-mrepl--backreference-prefix "#v") #@47 Intended to be placed in `post-command-hook'. (defalias 'sly-mrepl--highlight-backreferences-maybe #[0 "\304 \210\203 \305!\210\212\306 \210\307\310\311 \"!)\211\205\312\313!\211\205$\312\314!\211\205+\312\315!\211\2052\312\316!\2059\317!\205M\203G\317!\206M?\205M\320\204Z\321\302!\210\322\211\207\323\"\206l\321\300!\210\324\313\211\"\211\322\211\325\313\224\313\225#\210\204\214\326\327\330#\210\310\331 \"\262\202\203\352\203\352\203\352\326\327\332#\210\247\203\255\310\333#\202\302\310\334A\203\300\310\335G\"\202\301\336#\337\340\341\342\343\344\n@!#\345\346 !GZ\347Z\322\211\350%\327\332#\310\351\310\352#\"\266\203\202\203\310\353 G#\262\326\327\330#\210\202\326\327\330#\210\310\354 \"\262\355\351\"\210\321\302!\210\211\211)\207" [sly-mrepl--backreference-overlay sly-mrepl--backreference-prefix sly-autodoc-preamble message-log-max sly-mrepl-unhighlight-results delete-overlay sly-beginning-of-symbol looking-at format "%s\\([[:digit:]]+\\)?\\(:\\([[:digit:]]+\\)\\|:\\)?" match-string 0 1 2 3 string-to-number all make-local-variable nil sly-mrepl-highlight-results make-overlay move-overlay overlay-put face font-lock-warning-face "No history references for backreference `%s'" sly-action-face "Matched history value %s of entry %s: " "Matched history entry %s%s: " " (%s values)" "" propertize truncate-string-to-width replace-regexp-in-string "\n" " " button-label window-width minibuffer-window 10 "..." "%s" "%s%s" "Ambiguous backreference `%s', %s values possible" "Invalid backreference `%s'" sly-message] 19 (#$ . 50097)]) #@47 Menu for accessing the mREPL anywhere in sly. (defvar sly-mrepl--shortcut-menu nil (#$ . 51728)) (byte-code "\302\301\303\304\305\306\307\310\311#\307\312\313#\307\314\315\316\317E#F\262$\210\320\303 \321$\207" [sly-menu sly-mrepl--shortcut-menu easy-menu-do-define nil "Menu for accessing the mREPL anywhere in sly." (sly-connected-p) "mREPL" vector "Go to default REPL" sly-mrepl "New REPL" sly-mrepl-new "Sync Package & Directory" sly-mrepl-sync and sly-editing-mode easy-menu-add-item "Documentation"] 14) #@22 Menu for SLY's MREPL (defvar sly-mrepl--menu nil (#$ . 52250)) (byte-code "\301\302\303\304\305\306\307\310#\306\311\312#\306\313\314#\315\306\316\317#\306\320\321 #\257\262$\207" [sly-mrepl-mode-map easy-menu-do-define sly-mrepl--menu "Menu for SLY's MREPL" (sly-connected-p) "SLY-mREPL" vector " Complete symbol at point " sly-mrepl-indent-and-complete-symbol " Interrupt " sly-interrupt " Isearch history backward " isearch-backward "----" " Clear REPL" sly-mrepl-clear-repl " Clear last output" sly-mrepl-clear-recent-output] 15) (defvar sly-mrepl--debug-overlays nil) #@22 (fn &rest IGNORED) (defalias 'sly-mrepl--debug #[128 "\302\303\"\210\304 \305 \" \305 W\203\306\202\307 \305 U\203!\310\202\"\311\312\313\314D#\210\312\315\316\317\313\314D##\210B\211\207" [sly-mrepl--debug-overlays sly-mrepl--output-mark mapc delete-overlay make-overlay sly-mrepl--mark "green" "orange" "red" "purple" overlay-put face :background after-string propertize "F"] 12 (#$ . 52839) nil]) (defalias 'sly-mrepl--turn-on-debug #[0 "\300\301\302\303\304$\210\300\305\302\303\304$\207" [add-hook after-change-functions sly-mrepl--debug nil local post-command-hook] 5 nil nil]) (defalias 'sly-mrepl--turn-off-debug #[0 "\300\301\302\303#\210\300\304\302\303#\207" [remove-hook after-change-functions sly-mrepl--debug local post-command-hook] 4 nil nil]) (byte-code "\301\302\"\203\303\304\305\306\307$\210\301\207" [emacs-version version<= "26.1" advice-add lisp-indent-line :around #[128 "\212\300 \210`)\301\302\"\303K\301\304\"\216\303M\210\305!)\207" [beginning-of-line make-closure #[257 "\211iZ\211\301U?\205\300`|\210j\207" [V0 0] 4 "\n\n(fn INDENT)"] indent-line-to #[0 "\301\300M\207" [V0 indent-line-to] 2] apply] 7 "\n\n(fn &rest ARGS)"] ((name . sly-workaround-for-emacs-bug-32014))] 5) (defvar sly-mrepl--sylvesters (byte-code "\301\302\303\"r\211q\210\304\305\"\216\306\307\310\311!\"!\210\312\211\211`dW\2038`\262\313\314\312\315#\210\316`\317Z\"B\262\312\262\202\237\266\203*\207" [load-file-name generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents-literally expand-file-name "sylvesters.txt" file-name-directory nil search-forward "\n\n" noerror buffer-substring-no-properties 2] 8)) (defalias 'sly-mrepl-random-sylvester #[0 "\301G!8\302 \303\304#\207" [sly-mrepl--sylvesters random sly-random-words-of-encouragement replace-regexp-in-string "@@@@"] 6]) (provide 'sly-mrepl)