;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\311\312\313\314\315\316\317\320&\210\321\322\323\324#\210\321\325\323\324#\210\326\327\330\331\332DD\333\334\335\317\312&\210\326\336\330\331\337DD\340\334\335\317\312&\210\326\341\330\331\342DD\343\334\344\317\312&\210\326\345\330\331\346DD\347\334\344\317\312&\210\326\350\330\331\351DD\352\334\353\317\312&\210\326\354\330\331\355DD\356\334\344\317\312&\207" [require seq subr-x cider-compat cl-lib nrepl-dict queue sesman tramp custom-declare-group nrepl nil "Interaction with the Clojure nREPL Server." :prefix "nrepl-" :group applications make-obsolete-variable nrepl-buffer-name-separator cider-session-name-template "0.18" nrepl-buffer-name-show-port custom-declare-variable nrepl-connected-hook funcall function #[0 "\300\207" [nil] 1] "List of functions to call when connecting to the nREPL server." :type hook nrepl-disconnected-hook #[0 "\300\207" [nil] 1] "List of functions to call when disconnected from the nREPL server." nrepl-force-ssh-for-remote-hosts #[0 "\300\207" [nil] 1] "If non-nil, do not attempt a direct connection for remote hosts." boolean nrepl-use-ssh-fallback-for-remote-hosts #[0 "\300\207" [nil] 1] "If non-nil, attempt to connect via ssh to remote hosts when unable to connect directly." nrepl-sync-request-timeout #[0 "\300\207" [10] 1] "The number of seconds to wait for a sync response.\nSetting this to nil disables the timeout functionality." integer nrepl-hide-special-buffers #[0 "\300\207" [nil] 1] "Control the display of some special buffers in buffer switching commands.\nWhen true some special buffers like the server buffer will be hidden."] 8) (defvar nrepl-connection-buffer nil nil) (make-variable-buffer-local 'nrepl-connection-buffer) (defvar nrepl-server-buffer nil nil) (make-variable-buffer-local 'nrepl-server-buffer) (defvar nrepl-messages-buffer nil nil) (make-variable-buffer-local 'nrepl-messages-buffer) (defvar nrepl-endpoint nil nil) (make-variable-buffer-local 'nrepl-endpoint) (defvar nrepl-project-dir nil nil) (make-variable-buffer-local 'nrepl-project-dir) (defvar nrepl-is-server nil nil) (make-variable-buffer-local 'nrepl-is-server) (defvar nrepl-server-command nil nil) (make-variable-buffer-local 'nrepl-server-command) (defvar nrepl-tunnel-buffer nil nil) (make-variable-buffer-local 'nrepl-tunnel-buffer) #@27 Current nREPL session id. (defvar nrepl-session nil (#$ . 2493)) (make-variable-buffer-local 'nrepl-session) #@94 Current nREPL tooling session id. To be used for tooling calls (i.e. completion, eldoc, etc) (defvar nrepl-tooling-session nil (#$ . 2608)) (make-variable-buffer-local 'nrepl-tooling-session) #@37 Continuation serial number counter. (defvar nrepl-request-counter 0 (#$ . 2806)) (make-variable-buffer-local 'nrepl-request-counter) (defvar nrepl-pending-requests nil nil) (make-variable-buffer-local 'nrepl-pending-requests) (defvar nrepl-completed-requests nil nil) (make-variable-buffer-local 'nrepl-completed-requests) #@34 Result of the last sync request. (defvar nrepl-last-sync-response nil (#$ . 3135)) (make-variable-buffer-local 'nrepl-last-sync-response) #@52 The time when the last sync request was initiated. (defvar nrepl-last-sync-request-timestamp nil (#$ . 3279)) (make-variable-buffer-local 'nrepl-last-sync-request-timestamp) #@45 Available nREPL server ops (from describe). (defvar nrepl-ops nil (#$ . 3459)) (make-variable-buffer-local 'nrepl-ops) #@52 Version information received from the describe op. (defvar nrepl-versions nil (#$ . 3584)) (make-variable-buffer-local 'nrepl-versions) #@54 Auxiliary information received from the describe op. (defvar nrepl-aux nil (#$ . 3726)) (make-variable-buffer-local 'nrepl-aux) (defconst nrepl-message-buffer-name-template "*nrepl-messages %s(%r:%S)*") (defconst nrepl-error-buffer-name "*nrepl-error*") (defconst nrepl-repl-buffer-name-template "*cider-repl %s(%r:%S)*") (defconst nrepl-server-buffer-name-template "*nrepl-server %s*") (defconst nrepl-tunnel-buffer-name-template "*nrepl-tunnel %s*") #@267 Generate a buffer name using TEMPLATE and PARAMS. TEMPLATE and PARAMS are as in `cider-format-connection-params'. If optional DUP-OK is non-nil, the returned buffer is not "uniquified" by a call to `generate-new-buffer-name'. (fn TEMPLATE PARAMS &optional DUP-OK) (defalias 'nrepl-make-buffer-name #[770 "\300\"\203 \207\301!\207" [cider-format-connection-params generate-new-buffer-name] 6 (#$ . 4185)]) #@76 Apply a prefix to BUFFER-NAME that will hide the buffer. (fn BUFFER-NAME) (defalias 'nrepl--make-hidden-name #[257 "\203\301\202 \302P\207" [nrepl-hide-special-buffers " " ""] 3 (#$ . 4603)]) #@121 Return the name of the repl buffer. PARAMS and DUP-OK are as in `nrepl-make-buffer-name'. (fn PARAMS &optional DUP-OK) (defalias 'nrepl-repl-buffer-name #[513 "\301#\207" [nrepl-repl-buffer-name-template nrepl-make-buffer-name] 6 (#$ . 4808)]) #@94 Return the name of the server buffer. PARAMS is as in `nrepl-make-buffer-name'. (fn PARAMS) (defalias 'nrepl-server-buffer-name #[257 "\301\302!\"\207" [nrepl-server-buffer-name-template nrepl-make-buffer-name nrepl--make-hidden-name] 4 (#$ . 5062)]) #@94 Return the name of the tunnel buffer. PARAMS is as in `nrepl-make-buffer-name'. (fn PARAMS) (defalias 'nrepl-tunnel-buffer-name #[257 "\301\302!\"\207" [nrepl-tunnel-buffer-name-template nrepl-make-buffer-name nrepl--make-hidden-name] 4 (#$ . 5322)]) #@78 Return the name for the message buffer given connection PARAMS. (fn PARAMS) (defalias 'nrepl-messages-buffer-name #[257 "\301\"\207" [nrepl-message-buffer-name-template nrepl-make-buffer-name] 4 (#$ . 5582)]) #@95 Return t iff the given operation OP is supported by the nREPL CONNECTION. (fn OP CONNECTION) (defalias 'nrepl-op-supported-p #[514 "\301!\205r\211q\210\205\302\")\207" [nrepl-ops buffer-live-p nrepl-dict-get] 5 (#$ . 5800)]) #@94 Return KEY's aux info, as returned via the :describe op for CONNECTION. (fn KEY CONNECTION) (defalias 'nrepl-aux-info #[514 "r\211q\210\205\f\301\")\207" [nrepl-aux nrepl-dict-get] 5 (#$ . 6040)]) #@39 Return t if HOST is local. (fn HOST) (defalias 'nrepl-local-host-p #[257 "\302\303\304#)\207" [tramp-local-host-regexp inhibit-changing-match-data nil t string-match] 8 (#$ . 6248)]) #@94 Read port from .nrepl-port, nrepl-port or target/repl-port files in directory DIR. (fn DIR) (defalias 'nrepl-extract-port #[257 "\300\301\302\"!\206!\300\301\303\"!\206!\300\301\304\"!\206!\300\301\305\"!\207" [nrepl--port-from-file expand-file-name "repl-port" ".nrepl-port" "target/repl-port" ".shadow-cljs/nrepl.port"] 5 (#$ . 6444)]) #@61 Attempts to read port from a file named by FILE. (fn FILE) (defalias 'nrepl--port-from-file #[257 "\300!\205\301\302\303\"r\211q\210\304\305\"\216\306!\210\307 *\262\207" [file-exists-p generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents buffer-string] 5 (#$ . 6796)]) #@79 compiler-macro for inlining `nrepl-response-queue-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'nrepl-response-queue-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block nrepl-response-queue-p (and (memq (type-of cl-x) cl-struct-nrepl-response-queue-tags) t)) nil] 9 (#$ . 7159)]) (put 'nrepl-response-queue-p 'compiler-macro 'nrepl-response-queue-p--cmacro) #@13 (fn CL-X) (defalias 'nrepl-response-queue-p #[257 "\301!>\205 \302\207" [cl-struct-nrepl-response-queue-tags type-of t] 3 (#$ . 7553)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put nrepl-response-queue-p side-effect-free error-free put nrepl-response-queue cl-deftype-satisfies] 5) #@82 compiler-macro for inlining `nrepl-response-queue-head'. (fn CL-WHOLE-ARG CL-X) (defalias 'nrepl-response-queue-head--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block nrepl-response-queue-head (progn (or (nrepl-response-queue-p cl-x) (signal 'wrong-type-argument (list 'nrepl-response-queue cl-x))) (aref cl-x 1))) nil] 9 (#$ . 7867)]) (put 'nrepl-response-queue-head 'compiler-macro 'nrepl-response-queue-head--cmacro) #@70 Access slot "head" of `nrepl-response-queue' struct CL-X. (fn CL-X) (defalias 'nrepl-response-queue-head #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-nrepl-response-queue-tags type-of signal wrong-type-argument nrepl-response-queue 1] 5 (#$ . 8331)]) (byte-code "\300\301\302\303#\300\207" [function-put nrepl-response-queue-head side-effect-free t] 4) #@82 compiler-macro for inlining `nrepl-response-queue-tail'. (fn CL-WHOLE-ARG CL-X) (defalias 'nrepl-response-queue-tail--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block nrepl-response-queue-tail (progn (or (nrepl-response-queue-p cl-x) (signal 'wrong-type-argument (list 'nrepl-response-queue cl-x))) (aref cl-x 2))) nil] 9 (#$ . 8713)]) (put 'nrepl-response-queue-tail 'compiler-macro 'nrepl-response-queue-tail--cmacro) #@70 Access slot "tail" of `nrepl-response-queue' struct CL-X. (fn CL-X) (defalias 'nrepl-response-queue-tail #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-nrepl-response-queue-tags type-of signal wrong-type-argument nrepl-response-queue 2] 5 (#$ . 9177)]) (byte-code "\300\301\302\303#\300\207" [function-put nrepl-response-queue-tail side-effect-free t] 4) #@82 compiler-macro for inlining `nrepl-response-queue-stub'. (fn CL-WHOLE-ARG CL-X) (defalias 'nrepl-response-queue-stub--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block nrepl-response-queue-stub (progn (or (nrepl-response-queue-p cl-x) (signal 'wrong-type-argument (list 'nrepl-response-queue cl-x))) (aref cl-x 3))) nil] 9 (#$ . 9559)]) (put 'nrepl-response-queue-stub 'compiler-macro 'nrepl-response-queue-stub--cmacro) #@70 Access slot "stub" of `nrepl-response-queue' struct CL-X. (fn CL-X) (defalias 'nrepl-response-queue-stub #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-nrepl-response-queue-tags type-of signal wrong-type-argument nrepl-response-queue 3] 5 (#$ . 10023)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put nrepl-response-queue-stub side-effect-free t defalias copy-nrepl-response-queue copy-sequence] 4) #@87 compiler-macro for inlining `nrepl-response-queue'. (fn CL-WHOLE-ARG &optional STUB) (defalias 'nrepl-response-queue--cmacro #[513 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (stub) (cl-block nrepl-response-queue (record 'nrepl-response-queue nil nil stub)) nil] 9 (#$ . 10465)]) (put 'nrepl-response-queue 'compiler-macro 'nrepl-response-queue--cmacro) #@78 Constructor for objects of type `nrepl-response-queue'. (fn &optional STUB) (defalias 'nrepl-response-queue #[256 "\300\301\302\211$\207" [record nrepl-response-queue nil] 6 (#$ . 10838)]) (byte-code "\300\301\302\303#\304\301\305\306\307\305\310\311\301\303& \210\312\301\313\314#\207" [function-put nrepl-response-queue side-effect-free t cl-struct-define nil queue record ((cl-tag-slot) (head nil) (tail nil) (stub)) cl-struct-nrepl-response-queue-tags put function-documentation "Create queue object used by nREPL to store decoded server responses.\nThe STUB slot stores a stack of nested, incompletely parsed objects."] 11) #@107 Decode a bencode list or dict starting at point. STACK is as in `nrepl--bdecode-1'. (fn &optional STACK) (defalias 'nrepl--bdecode-list #[256 "\300u\210\301!`@\211\204\301A!\262`\262@\262\202 \211\302\267\202-\303AB\207b\210\207\207" [1 nrepl--bdecode-1 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:e 35 :stub 40)) nil] 6 (#$ . 11476)]) #@871 Decode one elementary bencode object starting at point. Bencoded object is either list, dict, integer or string. See http://en.wikipedia.org/wiki/Bencode#Encoding_algorithm for the encoding rules. STACK is a list of so far decoded components of the current message. Car of STACK is the innermost incompletely decoded object. The algorithm pops this list when inner object was completely decoded or grows it by one when new list or dict was encountered. The returned value is of the form (INFO . STACK) where INFO is :stub, nil, :end or :eob and STACK is either an incomplete parsing state as above (INFO is :stub, nil or :eob) or a list of one component representing the completely decoded message (INFO is :end). INFO is nil when an elementary non-root object was successfully decoded. INFO is :end when this object is a root list or dict. (fn &optional STACK) (defalias 'nrepl--bdecode-1 #[256 "\302f\303=\203 \304\302B!\207\302f\305=\203\304\306B!\207\302f\307=\2038\310u\210\211A\203-\311\202.\312\313\314@!A\"B\207\315\316!\203l`\317\225b\320\321`!\322\323\310!!\\!\211\204Xb\210\324B\207\211b\210\325\"\326\327\330#\302\313\"B\207\315\331!\203\201\317\225b\210\302\313\322\323\310!!\"B\207m\203\211\332B\207\333\334\315!)\262\203\231\324B\207\335\336 \"\210\337\340\341```\342\\d^{#!\210\337\343 !\210\344 \210db\210\312C\207" [inhibit-changing-match-data nrepl-error-buffer-name nil 108 nrepl--bdecode-list 100 (dict) 101 1 :e :end nrepl--push nrepl--nreverse looking-at "\\([0-9]+\\):" 0 byte-to-position position-bytes string-to-number match-string :stub buffer-substring-no-properties replace-regexp-in-string " \n\\|\n \\| " "\n" "i\\(-?[0-9]+\\)e" :eob "[0-9i]" t message "Invalid bencode message detected. See the %s buffer for details." nrepl-log-error format "Decoder error at position %d (`%s'):" 10 buffer-string ding] 10 (#$ . 11878)]) #@132 Decode one full message starting at point. STACK is as in `nrepl--bdecode-1'. Return a cons (INFO . STACK). (fn &optional STACK) (defalias 'nrepl--bdecode-message #[256 "\300!\211@A\203\301=\203!\300!\262@\262A\262\202\207" [nrepl--bdecode-1 :e] 6 (#$ . 13776)]) #@610 Decode STRING-Q and place the results into RESPONSE-Q. STRING-Q is either a queue of strings or a string. RESPONSE-Q is a queue of server requests (nREPL dicts). STRING-Q and RESPONSE-Q are modified by side effects. Return a cons (STRING-Q . RESPONSE-Q) where STRING-Q is the original queue containing the remainder of the input strings which could not be decoded. RESPONSE-Q is the original queue with successfully decoded messages enqueued and with slot STUB containing a nested stack of an incompletely decoded message or nil if the strings were completely decoded. (fn STRING-Q &optional RESPONSE-Q) (defalias 'nrepl-bdecode #[513 "r\302\303!q\210\304 \210\305 \210\306!>\2031\306!>\204#\307\310\311D\"\210\312H\203;\313!c\210\202c\210\314\311\315\211#\262\312b\210\211\204J\314\316\315\211\211$\262\317\306! >\204Z\307\310\316D\"\210\320H!\211@\321=\203wm\204w\322A@\"\210\317 \262\202^m\204\202\322`d{\"\210\211@\321=\204\243\306! >\204\230\307\310\316D\"\210\211\320AI\266\202\300\322A@\"\210\306! >\204\271\307\310\316D\"\210\211\320\315I\266\305 \210B\262)\207" [cl-struct-queue-tags cl-struct-nrepl-response-queue-tags get-buffer-create " *nrepl-decoding*" fundamental-mode erase-buffer type-of signal wrong-type-argument queue 1 queue-dequeue record nil nrepl-response-queue nrepl--bdecode-message 3 :end queue-enqueue] 7 (#$ . 14064)]) #@161 Encode OBJECT with bencode. Integers, lists and nrepl-dicts are treated according to bencode specification. Everything else is encoded as string. (fn OBJECT) (defalias 'nrepl-bencode #[257 "\211\250\203\n\300\301\"\207\302!\203\300\303\304\305A\306#\"\207\211<\203(\300\307\304\305\306#\"\207\300\310\311!#\207" [format "i%de" nrepl-dict-p "d%se" mapconcat nrepl-bencode "" "l%se" "%s:%s" string-bytes] 7 (#$ . 15470)]) #@621 List of functions to call on each nREPL message. Each of these functions should be a function with one argument, which will be called by `nrepl-client-filter' on every response received. The current buffer will be connection (REPL) buffer of the process. These functions should take a single argument, a dict representing the message. See `nrepl--dispatch-response' for an example. These functions are called before the message's own callbacks, so that they can affect the behavior of the callbacks. Errors signaled by these functions are demoted to messages, so that they don't prevent the callbacks from running. (defvar nrepl-response-handler-functions nil (#$ . 15909)) #@86 Decode message(s) from PROC contained in STRING and dispatch them. (fn PROC STRING) (defalias 'nrepl-client-filter #[514 "\301\302\"\303\"\210\211GSH\304=\205X\301\305\"\306\"\210\307!>\204+\310\311\312D\"\210\211\313H\205Vr\314!q\210\315!\3161G\317\320\"0\210\202M\321\322\"\266\323!\266)\202\262\207" [cl-struct-queue-tags process-get :string-q queue-enqueue 101 :response-q nrepl-bdecode type-of signal wrong-type-argument queue 1 process-buffer queue-dequeue (debug error) run-hook-with-args nrepl-response-handler-functions message "Error in one of the `nrepl-response-handler-functions': %s" nrepl--dispatch-response] 9 (#$ . 16594)]) #@250 Dispatch the RESPONSE to associated callback. First we check the callbacks of pending requests. If no callback was found, we check the completed requests, since responses could be received even for older requests with "done" status. (fn RESPONSE) (defalias 'nrepl--dispatch-response #[257 "\302\303\"\304\305\"\210\306\"\206\306 \"\211\203\211!\207\307\310\"\207" [nrepl-pending-requests nrepl-completed-requests nrepl-dict-get "id" nrepl-log-message response gethash error "[nREPL] No response handler with id %s found"] 6 (#$ . 17268)]) #@163 Handle sentinel events from PROCESS. Notify MESSAGE and if the process is closed run `nrepl-disconnected-hook' and kill the process buffer. (fn PROCESS MESSAGE) (defalias 'nrepl-client-sentinel #[514 "\301\302\"\203\303\304!\210\202\303\305\306\307O\"\210\310!\311=\205f\312!\211\205d\313\314\315\316\317\"?\320%\210\321!\210r\211q\210db\210\322\323\324\325\326 \"\327\330#!\210\331\332!\210\333!\205a\316\317\"?\205a\315\334!\262)\262\207" [nrepl-server-buffer string-match "deleted\\b" message "[nREPL] Connection closed" "[nREPL] Connection closed unexpectedly (%s)" 0 -1 process-status closed process-buffer sesman-remove-object CIDER nil process-get :keep-server no-error nrepl--clear-client-sessions insert-before-markers propertize format "\n*** Closed on %s ***\n" current-time-string face cider-repl-stderr-face run-hooks nrepl-disconnected-hook buffer-live-p nrepl--maybe-kill-server-buffer] 10 (#$ . 17827)]) #@537 Connect to the nREPL server identified by HOST and PORT. For local hosts use a direct connection. For remote hosts, if `nrepl-force-ssh-for-remote-hosts' is nil, attempt a direct connection first. If `nrepl-force-ssh-for-remote-hosts' is non-nil or the direct connection failed (and `nrepl-use-ssh-fallback-for-remote-hosts' is non-nil), try to start a SSH tunneled connection. Return a plist of the form (:proc PROC :host "HOST" :port PORT) that might contain additional key-values depending on the connection type. (fn HOST PORT) (defalias 'nrepl-connect #[514 "\203\n\303!\202\304!?\211\203\305\206\306\"\207\203P \204P\305\307#\206T\n\203<\310\311!\203<\312\"\206T\n\204J\211\204J\313\314#\207\313\315#\207\312\"\207" [default-directory nrepl-force-ssh-for-remote-hosts nrepl-use-ssh-fallback-for-remote-hosts nrepl-local-host-p file-remote-p nrepl--direct-connect "localhost" no-error message "[nREPL] Falling back to SSH tunneled connection ..." nrepl--ssh-tunnel-connect error "[nREPL] Direct connection to %s:%s failed; try setting `nrepl-use-ssh-fallback-for-remote-hosts' to t" "[nREPL] Cannot connect to %s:%s"] 7 (#$ . 18778)]) #@162 If HOST and PORT are given, try to `open-network-stream'. If NO-ERROR is non-nil, show messages instead of throwing an error. (fn HOST PORT &optional NO-ERROR) (defalias 'nrepl--direct-connect #[770 "\203\204\211?\205X\204\300\301!\210?\205\300\302!\207\303\304#\210\3051@\306\307\310\311$\312\313\257\303\314#\2100\207\210\315\316#\203Q\303!\210\202U\300!\210\311\262\207" [error "[nREPL] Host not provided" "[nREPL] Port not provided" message "[nREPL] Establishing direct connection to %s:%s ..." (error) :proc open-network-stream "nrepl-connection" nil :host :port "[nREPL] Direct connection to %s:%s established" format "[nREPL] Direct connection to %s:%s failed"] 9 (#$ . 19960)]) #@93 Connect to a remote machine identified by HOST and PORT through SSH tunnel. (fn HOST PORT) (defalias 'nrepl--ssh-tunnel-connect #[514 "\301\302#\210\203\303\304\"\202\305\306!\206\307\310!\311#\312\313D\314DD!\315\316#\317\320\321#\210\322\323!\"\210\324!\203S\325\320\"\203S\326\327\330\"\210\202>\324!\204^\307\331\"\207\301\332\"\210\333\334\"\335\211\336#\337\n#\207" [default-directory message "[nREPL] Establishing SSH tunneled connection to %s:%s ..." format "/ssh:%s:" executable-find "ssh" error "[nREPL] Cannot locate 'ssh' executable" nrepl--ssh-tunnel-command nrepl-tunnel-buffer-name :host :port start-process-shell-command "nrepl-tunnel" process-put :waiting-for-port t set-process-filter nrepl--ssh-tunnel-filter process-live-p process-get accept-process-output nil 0.005 "[nREPL] SSH port forwarding failed. Check the '%s' buffer" "[nREPL] SSH port forwarding established to localhost:%s" nrepl--direct-connect "localhost" plist-put :tunnel :remote-host] 13 (#$ . 20687)]) #@94 Command string to open SSH tunnel to the host associated with DIR's PORT. (fn SSH DIR PORT) (defalias 'nrepl--ssh-tunnel-command #[771 "\301!\211\242>\204\302\303\304D\"\210\211A@\242>\204\"\302\303\304D\"\210\3058\242>\2043\302\303\304D\"\210\3068\242>\204E\302\303\304D\"\210\3078\242>\204W\302\303\304D\"\210\3108\242>\204i\302\303\304D\"\210\3118\242>\204}\302\303\304 D\"\210\3128\313\314\315 B\316\fB\317B\320 \203\235\321\322 \"\202\236\323BF\"\207" [cl-struct-tramp-file-name-tags tramp-dissect-file-name signal wrong-type-argument tramp-file-name 2 3 4 5 6 7 format-spec "%s -v -N -L %p:localhost:%p %u'%h'" 115 112 104 117 format "-l '%s' " ""] 20 (#$ . 21723)]) #@13 (autoload). (autoload 'comint-watch-for-password-prompt "comint" '(#$ . 22452)) #@85 Return a process filter that waits for PORT to appear in process output. (fn PORT) (defalias 'nrepl--ssh-tunnel-filter #[257 "\300\301\"\302\303\"\207" [format "LOCALHOST:%s" make-closure #[514 "\300\302\303\304#)\266\203\203\305\306\302#\210\307!\205O\310\311!!\205Or\311!q\210`\312!U\212\312!b\210c\210\312!`\302\223\210\313!\210)\211\205L\312!b\262)\207" [V0 inhibit-changing-match-data nil t string-match process-put :waiting-for-port process-live-p buffer-live-p process-buffer process-mark comint-watch-for-password-prompt] 9 "\n\n(fn PROC STRING)"]] 5 (#$ . 22538)]) #@182 Kill PROC using the appropriate, os specific way. Implement a workaround to clean up an orphaned JVM process left around after exiting the REPL on some windows machines. (fn PROC) (defalias 'nrepl--kill-process #[257 "\301>\203\n\302!\207\303!\207" [system-type (cygwin windows-nt) interrupt-process kill-process] 3 (#$ . 23143)]) #@51 Kill SERVER-BUF and its process. (fn SERVER-BUF) (defalias 'nrepl-kill-server-buffer #[257 "\300!\205\301!\302!\203\303\304\"\210\305!\210\306!\262\207" [buffer-live-p get-buffer-process process-live-p set-process-query-on-exit-flag nil nrepl--kill-process kill-buffer] 5 (#$ . 23485)]) #@119 Kill SERVER-BUF and its process. Do not kill the server if there is a REPL connected to that server. (fn SERVER-BUF) (defalias 'nrepl--maybe-kill-server-buffer #[257 "\300!\205r\211q\210\301\302\303\"\304 \"?\205\305!)\207" [buffer-live-p seq-find make-closure #[257 "\301\302\"\300=\207" [V0 buffer-local-value nrepl-server-buffer] 4 "\n\n(fn B)"] buffer-list nrepl-kill-server-buffer] 5 (#$ . 23791)]) #@411 Create new client process identified by HOST and PORT. In remote buffers, HOST and PORT are taken from the current tramp connection. SERVER-PROC must be a running nREPL server process within Emacs. BUFFER-BUILDER is a function of one argument (endpoint returned by `nrepl-connect') which returns a client buffer. Return the newly created client process. (fn &optional HOST PORT SERVER-PROC BUFFER-BUILDER) (defalias 'nrepl-start-client-process #[1024 "\306\"\307\310\"\206\311\312!\211!\313\"\210\314\315\"\210\316\317\"\210\320\321\211#\210\322\323\324\325\326\211##\210\322\327\324\330\326\211\211$#\210r\211q\210\205H\331!\211\203S\332\300\"\211\210\307\333\"\211\205a\331!\262\334\335\336\"\334\335\336\")r\211q\210\337!\210\340!\210\341\342!\210)\207" [nrepl-project-dir nrepl-server-buffer nrepl-endpoint nrepl-tunnel-buffer nrepl-pending-requests nrepl-completed-requests nrepl-connect plist-get :proc error "`buffer-builder' must be provided" set-process-buffer set-process-filter nrepl-client-filter set-process-sentinel nrepl-client-sentinel set-process-coding-system utf-8-unix process-put :string-q record queue nil :response-q nrepl-response-queue process-buffer buffer-local-value :tunnel make-hash-table :test equal nrepl--init-client-sessions nrepl--init-capabilities run-hooks nrepl-connected-hook] 16 (#$ . 24211)]) #@451 Initialize CLIENT connection nREPL sessions. We create two client nREPL sessions per connection - a main session and a tooling session. The main session is general purpose and is used for pretty much every request that needs a session. The tooling session is used only for functionality that's implemented in terms of the "eval" op, so that eval requests for functionality like pretty-printing won't clobber the values of *1, *2, etc. (fn CLIENT) (defalias 'nrepl--init-client-sessions #[257 "\302!\303!\303\304\"\305\306\"\305\307\"\203\"rq\210)\266\202(\310\311\"\266\305\306\"\305\307\"\203=rq\210\211)\207\310\312\"\207" [nrepl-session nrepl-tooling-session process-buffer nrepl-sync-request:clone t nrepl-dict-get "new-session" "err" error "Could not create new session (%s)" "Could not create new tooling session (%s)"] 9 (#$ . 25590)]) #@82 Store locally in CONN-BUFFER the capabilities of nREPL server. (fn CONN-BUFFER) (defalias 'nrepl--init-capabilities #[257 "\303!\304\305\"\304\306\"\304\307\"rq\210\211\211)\207" [nrepl-ops nrepl-versions nrepl-aux nrepl-sync-request:describe nrepl-dict-get "ops" "versions" "aux"] 7 (#$ . 26464)]) #@159 Clear information about nREPL sessions in CONN-BUFFER. CONN-BUFFER refers to a (presumably) dead connection, which we can eventually reuse. (fn CONN-BUFFER) (defalias 'nrepl--clear-client-sessions #[257 "r\211q\210\302\211\211)\207" [nrepl-session nrepl-tooling-session nil] 4 (#$ . 26781)]) #@27 Evaluation error handler. (defvar nrepl-err-handler nil (#$ . 27082)) #@143 Move ID from `nrepl-pending-requests' to `nrepl-completed-requests'. It is safe to call this function multiple times on the same ID. (fn ID) (defalias 'nrepl--mark-id-completed #[257 "\302\"\211\205\303 #\210\304\"\207" [nrepl-pending-requests nrepl-completed-requests gethash puthash remhash] 6 (#$ . 27159)]) #@213 Handle "notification" server request. MSG is a string to be displayed. TYPE is the type of the message. All notifications are currently displayed with `message' function and emitted to the REPL. (fn MSG TYPE) (defalias 'nrepl-notify #[514 "\211\300\267\202\301\202\302\202\303\202\304\211\203\305\306#\202%\307\310\226#\311\206,\301\"\210\312!\207" [#s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nil 6 "message" 6 "warning" 10 "error" 14)) font-lock-builtin-face warning error nil propertize face format "%s: %s" cider-repl--emit-interactive-output message] 7 (#$ . 27486)]) #@1257 Make a response handler for connection BUFFER. A handler is a function that takes one argument - response received from the server process. The response is an alist that contains at least 'id' and 'session' keys. Other standard response keys are 'value', 'out', 'err', and 'status'. The presence of a particular key determines the type of the response. For example, if 'value' key is present, the response is of type 'value', if 'out' key is present the response is 'stdout' etc. Depending on the type, the handler dispatches the appropriate value to one of the supplied handlers: VALUE-HANDLER, STDOUT-HANDLER, STDERR-HANDLER, DONE-HANDLER, EVAL-ERROR-HANDLER, CONTENT-TYPE-HANDLER, and TRUNCATED-HANDLER. Handlers are functions of the buffer and the value they handle, except for the optional CONTENT-TYPE-HANDLER which should be a function of the buffer, content, the content-type to be handled as a list `(type attrs)'. If the optional EVAL-ERROR-HANDLER is nil, the default `nrepl-err-handler' is used. If any of the other supplied handlers are nil nothing happens for the corresponding type of response. (fn BUFFER VALUE-HANDLER STDOUT-HANDLER STDERR-HANDLER DONE-HANDLER &optional EVAL-ERROR-HANDLER CONTENT-TYPE-HANDLER TRUNCATED-HANDLER) (defalias 'nrepl-make-response-handler #[2053 "\300\301        & \207" [make-closure #[257 "\310\311\"\310\312\"\310\313\"\310\314\"\310\315\"\310\316\"\310\317\"\310\320\"\310 \321\"\322\300!\203Ar\300q\210\203@\323\324!\204@\325!\210)\203`\306\203`\306\300 \326\230\203Z\327 !\202\\ #\207\203n\301\205\370\301\300\"\207\203{\302\205\370\302\300\"\207\203\210\303\205\370\303\300\"\207\205\370\307\203\243\330\235\203\243\331\332\333*!\"\307\300\"\266\334\235\203\271\310\n\335\"\310 \336\"\337\"\266\340\235\203\303\341\342!\210\343\235\203\321\305\206\317+ \210\344\235\203\335\341\345\"\210\346\235\203\347\347\300!\210\350\235\205\370\351!\210\304\205\370\304\300!\207" [V0 V1 V2 V3 V4 V5 V6 V7 nrepl-dict-get "content-type" "content-transfer-encoding" "body" "value" "ns" "out" "err" "status" "id" buffer-live-p derived-mode-p clojure-mode cider-set-buffer-ns "base64" base64-decode-string "nrepl.middleware.print/truncated" format "\n... output truncated to %sB ..." file-size-human-readable "notification" "msg" "type" nrepl-notify "interrupted" message "Evaluation interrupted." "eval-error" "namespace-not-found" "Namespace `%s' not found." "need-input" cider-need-input "done" nrepl--mark-id-completed cider-print-quota nrepl-err-handler] 15 "\n\n(fn RESPONSE)"]] 18 (#$ . 28134)]) #@61 Return the next request id for CONNECTION. (fn CONNECTION) (defalias 'nrepl-next-request-id #[257 "r\211q\210\301T\211!)\207" [nrepl-request-counter number-to-string] 4 (#$ . 30769)]) #@548 Send REQUEST and register response handler CALLBACK using CONNECTION. REQUEST is a pair list of the form ("op" "operation" "par1-name" "par1" ... ). See the code of `nrepl-request:clone', `nrepl-request:stdin', etc. This expects that the REQUEST does not have a session already in it. This code will add it as appropriate to prevent connection/session drift. Return the ID of the sent message. Optional argument TOOLING Set to t if desiring the tooling session rather than the standard session. (fn REQUEST CALLBACK CONNECTION &optional TOOLING) (defalias 'nrepl-send-request #[1027 "rq\210\211\203\f\202 \211\203\303\304D\"\262\210\305!\306\307\310#B\311!\312\313\"\210\314\n#\210\315\316\"\210\266\203)\207" [nrepl-tooling-session nrepl-session nrepl-pending-requests append "session" nrepl-next-request-id dict lax-plist-put "id" nrepl-bencode nrepl-log-message request puthash process-send-string nil] 11 (#$ . 30963)]) #@57 Dynamically bound to t while a sync request is ongoing. (defvar nrepl-ongoing-sync-request nil (#$ . 31915)) #@427 Send REQUEST to the nREPL server synchronously using CONNECTION. Hold till final "done" message has arrived and join all response messages of the same "op" that came along. If ABORT-ON-INPUT is non-nil, the function will return nil at the first sign of user input, so as not to hang the interface. If TOOLING, use the tooling session rather than the standard session. (fn REQUEST CONNECTION &optional ABORT-ON-INPUT TOOLING) (defalias 'nrepl-send-sync-request #[1026 "\303 \304C\305\306\307\310\311\"$\210\312\235\204a\203#\313 \204a\314\315\"\262\316\235\203:\317p!\210\303 \262\202P \203P\320\303 \"A@ V\203P\321\322\"\210\323\315\324\316\"#\210\325\306\326\"\210\202\312\235\205\255\314\327\"\314\330\"\314\331\"\314\332\"\314\333\"\203\233\203\233\203\216\n \210\202\233\203\233\334\324\312 \"\"\210\211\203\251r\nq\210\335!\210)\266\205)\207" [nrepl-ongoing-sync-request nrepl-sync-request-timeout nrepl-err-handler current-time dict t nil nrepl-send-request make-closure #[257 "\301\300\"\207" [V0 nrepl--merge] 4 "\n\n(fn RESP)"] "done" input-pending-p nrepl-dict-get "status" "need-input" cider-need-input time-subtract error "Sync nREPL request timed out %s" nrepl-dict-put remove accept-process-output 0.01 "ex" "err" "eval-error" "pp-stacktrace" "id" cider--render-stacktrace-causes nrepl--mark-id-completed] 17 (#$ . 32031)]) #@127 Send a :stdin request with INPUT using CONNECTION. Register CALLBACK as the response handler. (fn INPUT CALLBACK CONNECTION) (defalias 'nrepl-request:stdin #[771 "\300\301\302\211F#\207" [nrepl-send-request "op" "stdin"] 8 (#$ . 33430)]) #@184 Send an :interrupt request for PENDING-REQUEST-ID. The request is dispatched using CONNECTION. Register CALLBACK as the response handler. (fn PENDING-REQUEST-ID CALLBACK CONNECTION) (defalias 'nrepl-request:interrupt #[771 "\300\301\302\303F#\207" [nrepl-send-request "op" "interrupt" "interrupt-id"] 8 (#$ . 33680)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable cider-enlighten-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Cider-Enlighten mode is enabled.\nSee the `cider-enlighten-mode' command\nfor a description of this minor mode." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean] 10) #@650 Toggle Cider-Enlighten mode on or off. This is a minor mode. If called interactively, toggle the `Cider-Enlighten mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `(default-value 'cider-enlighten-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. \{cider-enlighten-mode-map} (fn &optional ARG) (defalias 'cider-enlighten-mode #[256 "\301 \302\303\304=\203\305\303!?\202!\247\203 \306W\203 \307\202!\310\"\210\311\300!\2038\312\303\"\305\303!\2038\303B\313\314\305\303!\203D\315\202E\316\"\210\317\320!\203m\321\303!\210\301 \203]\211\301 \232\203m\322\323\305\303!\203i\324\202j\325\326#\210\210\327 \210\305\303!\207" [global-minor-modes current-message set-default cider-enlighten-mode toggle default-value 1 nil t boundp delq run-hooks cider-enlighten-mode-hook cider-enlighten-mode-on-hook cider-enlighten-mode-off-hook called-interactively-p any customize-mark-as-set message "Cider-Enlighten mode %sabled%s" "en" "dis" "" force-mode-line-update] 6 (#$ . 34376) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar cider-enlighten-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\314\300!\205#\310\211%\207" [cider-enlighten-mode-map cider-enlighten-mode-hook variable-documentation put "Hook run after entering or leaving `cider-enlighten-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode cider-enlighten-mode (cider-mode " light") boundp] 6) #@238 Prepare :eval request message for INPUT. NS provides context for the request. If LINE and COLUMN are non-nil and current buffer is a file buffer, "line", "column" and "file" are added to the message. (fn INPUT &optional NS LINE COLUMN) (defalias 'nrepl--eval-request #[1025 "\205\301D\302\303\304\305!F\244\205\306\244\307 \206\310 \2053\2053\211\2053\311\312\313\257\262\244\207" [cider-enlighten-mode "ns" "op" "eval" "code" substring-no-properties ("enlighten" "true") buffer-file-name buffer-name "file" "line" "column"] 12 (#$ . 36370)]) #@552 Send the request INPUT and register the CALLBACK as the response handler. The request is dispatched via CONNECTION. If NS is non-nil, include it in the request. LINE and COLUMN, if non-nil, define the position of INPUT in its buffer. A CONNECTION uniquely determines two connections available: the standard interaction one and the tooling session. If the tooling is desired, set TOOLING to true. ADDITIONAL-PARAMS is a plist to be appended to the request message. (fn INPUT CALLBACK CONNECTION &optional NS LINE COLUMN ADDITIONAL-PARAMS TOOLING) (defalias 'nrepl-request:eval #[2051 "\300\301\302\n$\"$\207" [nrepl-send-request append nrepl--eval-request] 15 (#$ . 36944)]) #@226 Sent a :clone request to create a new client session. The request is dispatched via CONNECTION. Optional argument TOOLING Tooling is set to t if wanting the tooling session from CONNECTION. (fn CONNECTION &optional TOOLING) (defalias 'nrepl-sync-request:clone #[513 "\300\301\302$\207" [nrepl-send-sync-request ("op" "clone") nil] 7 (#$ . 37643)]) #@71 Sent a :close request to close CONNECTION's SESSION. (fn CONNECTION) (defalias 'nrepl-sync-request:close #[257 "\300\301\"\210\300\302\303\304$\207" [nrepl-send-sync-request ("op" "close") ("op" "close") nil t] 6 (#$ . 38000)]) #@72 Perform :describe request for CONNECTION and SESSION. (fn CONNECTION) (defalias 'nrepl-sync-request:describe #[257 "\300\301\"\207" [nrepl-send-sync-request ("op" "describe")] 4 (#$ . 38237)]) #@63 Perform :ls-sessions request for CONNECTION. (fn CONNECTION) (defalias 'nrepl-sync-request:ls-sessions #[257 "\300\301\"\207" [nrepl-send-sync-request ("op" "ls-sessions")] 4 (#$ . 38438)]) #@65 Perform :ls-middleware request for CONNECTION. (fn CONNECTION) (defalias 'nrepl-sync-request:ls-middleware #[257 "\300\301\"\207" [nrepl-send-sync-request ("op" "ls-middleware")] 4 (#$ . 38636)]) #@259 Send the INPUT to the nREPL server synchronously. The request is dispatched via CONNECTION. If NS is non-nil, include it in the request If TOOLING is non-nil the evaluation is done using the tooling nREPL session. (fn INPUT CONNECTION &optional NS TOOLING) (defalias 'nrepl-sync-request:eval #[1026 "\300\301\"\302$\207" [nrepl-send-sync-request nrepl--eval-request nil] 9 (#$ . 38841)]) #@86 Get a list of active sessions on the nREPL server using CONNECTION. (fn CONNECTION) (defalias 'nrepl-sessions #[257 "\300\301!\302\"\207" [nrepl-dict-get nrepl-sync-request:ls-sessions "sessions"] 4 (#$ . 39240)]) #@81 Get a list of middleware on the nREPL server using CONNECTION. (fn CONNECTION) (defalias 'nrepl-middleware #[257 "\300\301!\302\"\207" [nrepl-dict-get nrepl-sync-request:ls-middleware "middleware"] 4 (#$ . 39462)]) (defvar nrepl-on-port-callback nil nil) (make-variable-buffer-local 'nrepl-on-port-callback) #@75 Return t if BUFFER-OR-PROCESS is an nREPL server. (fn BUFFER-OR-PROCESS) (defalias 'nrepl-server-p #[257 "\300!\203\f\301!\202 \211\302\303\"\207" [processp process-buffer buffer-local-value nrepl-is-server] 5 (#$ . 39778)]) #@415 Start nREPL server process in DIRECTORY using shell command CMD. Return a newly created process. Set `nrepl-server-filter' as the process filter, which starts REPL process with its own buffer once the server has started. ON-PORT-CALLBACK is a function of one argument (server buffer) which is called by the process filter once the port of the connection has been determined. (fn DIRECTORY CMD ON-PORT-CALLBACK) (defalias 'nrepl-start-server-process #[771 "\206\305\306\307D!!r\211q\210\310)\311\312#\313\314\"\210\315\316\"\210\317\320\211#\210\321\322\323\324\325#\"\210\211\262)\207" [default-directory nrepl-is-server nrepl-project-dir nrepl-server-command nrepl-on-port-callback get-buffer-create nrepl-server-buffer-name :project-dir t start-file-process-shell-command "nrepl-server" set-process-filter nrepl-server-filter set-process-sentinel nrepl-server-sentinel set-process-coding-system utf-8-unix message "[nREPL] Starting server via %s" propertize face font-lock-keyword-face] 11 (#$ . 40016)]) #@84 Process nREPL server output from PROCESS contained in OUTPUT. (fn PROCESS OUTPUT) (defalias 'nrepl-server-filter #[514 "\303!\304!\205pr\211q\210`\305!U\212\305!b\210c\210\306\305!`\"\210\305!`\307\223\210)\211\203?\305!b\210\310 \211\203>\311`\"\210\210\210?\205o\312\313\"\205o\314\315\316\"!\317\320 \321\"\206[\322\323F\324\325\"\210\n\205m\n\303!!\262)\207" [nrepl-endpoint default-directory nrepl-on-port-callback process-buffer buffer-live-p process-mark ansi-color-apply-on-region nil get-buffer-window set-window-point string-match "nREPL server started on port \\([0-9]+\\)" string-to-number match-string 1 :host file-remote-p host "localhost" :port message "[nREPL] server started on %s"] 8 (#$ . 41053)]) #@78 Only evaluate BODY when Emacs bug #46284 has been detected. (fn &rest BODY) (defalias 'emacs-bug-46284/when-27\.1-windows-nt '(macro . #[128 "\302=\205 \303\230\205\304B\207" [system-type emacs-version windows-nt "27.1" progn] 3 (#$ . 41801)])) #@56 Handle nREPL server PROCESS EVENT. (fn PROCESS EVENT) (defalias 'nrepl-server-sentinel #[514 "\301!\302\303\304\"\305 \"\203 \306!\203 rq\210ed{)\202!\307\203)\310!\210\311\312\313\314#)\266\203\203;\312\207\315\312\313\314#)\266\203\203P\316\317\"\207\320\321\"\207" [inhibit-changing-match-data process-buffer seq-filter make-closure #[257 "\301\302\"\300=\207" [V0 buffer-local-value nrepl-server-buffer] 4 "\n\n(fn B)"] buffer-list buffer-live-p "" kill-buffer "^killed\\|^interrupt" nil t string-match "^hangup" mapc cider--close-connection error "Could not start nREPL server: %s"] 12 (#$ . 42059)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable nrepl-log-messages funcall function #[0 "\300\207" [nil] 1] "If non-nil, log protocol messages to an nREPL messages buffer.\nThis is extremely useful for debug purposes, as it allows you to inspect\nthe communication between Emacs and an nREPL server. Enabling the logging\nmight have a negative impact on performance, so it's not recommended to\nkeep it enabled unless you need to debug something." :type boolean :group nrepl :safe booleanp] 10) #@160 Maximum size for the nREPL message buffer. Defaults to 1000000 characters, which should be an insignificant memory burden, while providing reasonable history. (defconst nrepl-message-buffer-max-size 1000000 (#$ . 43242)) #@348 Divisor by which to reduce message buffer size. When the maximum size for the nREPL message buffer is exceeded, the size of the buffer is reduced by one over this value. Defaults to 4, so that 1/4 of the buffer is removed, which should ensure the buffer's maximum is reasonably utilized, while limiting the number of buffer shrinking operations. (defconst nrepl-message-buffer-reduce-denominator 4 (#$ . 43470)) (defvar nrepl-messages-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\311#\210\301\313\314#\210\301\315\316#\210\207" [make-sparse-keymap define-key "n" next-line "p" previous-line " " forward-button " " nrepl-log-expand-button "e" "E" nrepl-log-expand-all-buttons [backtab] backward-button] 5)) (defvar nrepl-messages-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [nrepl-messages-mode-hook variable-documentation put "Hook run after entering nREPL Messages mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp nrepl-messages-mode-map definition-name nrepl-messages-mode] 4) (defvar nrepl-messages-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" [nrepl-messages-mode-abbrev-table nrepl-messages-mode-map variable-documentation put purecopy "Keymap for `nrepl-messages-mode'." boundp nrepl-messages-mode-syntax-table definition-name nrepl-messages-mode (lambda (def-tmp-var) (defvar nrepl-messages-mode-syntax-table def-tmp-var)) make-syntax-table "Syntax table for `nrepl-messages-mode'." (lambda (def-tmp-var) (defvar nrepl-messages-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `nrepl-messages-mode'." derived-mode-parent special-mode] 5) #@252 Major mode for displaying nREPL messages. \{nrepl-messages-mode-map} In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `nrepl-messages-mode-hook', as the final or penultimate step during initialization. (defalias 'nrepl-messages-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 ()\203i\306\331!\210\307\306\332!\210\333\306\334!\210\335\306\336!\210\337\306\340!\210\341 \306\342!\210\343\"\306\344!\210\345$)\346\347!\207" [delay-mode-hooks major-mode mode-name nrepl-messages-mode-map nrepl-messages-mode-syntax-table nrepl-messages-mode-abbrev-table make-local-variable t special-mode nrepl-messages-mode "nREPL Messages" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table truncate-lines sesman-system CIDER electric-indent-chars nil comment-start ";" comment-end "" paragraph-start "(-->\\|(<--" paragraph-separate "(<--" run-mode-hooks nrepl-messages-mode-hook local-abbrev-table cider-special-mode-truncate-lines] 5 (#$ . 45529) nil]) #@58 Decorate nREPL MSG according to its TYPE. (fn MSG TYPE) (defalias 'nrepl-decorate-msg #[514 "\211\300\267\202\301AB\207\302AB\207\303\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (request 6 response 11)) --> <-- nil] 4 (#$ . 46888)]) #@157 Log the nREPL MSG. TYPE is either request or response. The message is logged to a buffer described by `nrepl-message-buffer-name-template'. (fn MSG TYPE) (defalias 'nrepl-log-message #[514 "\205S@\304A\305\306\307!#B\262r\310p!q\210\311\312 \nV\2031\312 \245b\210\313\314\311\315#\210e`S|\210db\210\316\317\"\320\321A\322\"!\315#\210\323 \211\203N\324d\"\210\210\315\211)\207" [nrepl-log-messages buffer-read-only nrepl-message-buffer-max-size nrepl-message-buffer-reduce-denominator lax-plist-put "time-stamp" format-time-string "%Y-%m-%0d %H:%M:%S.%N" nrepl-messages-buffer nil buffer-size re-search-forward "^(" t nrepl-log-pp-object nrepl-decorate-msg nrepl-log--message-color lax-plist-get "id" get-buffer-window set-window-point] 8 (#$ . 47180)]) #@128 Toggle the value of `nrepl-log-messages' between nil and t. This in effect enables or disables the logging of nREPL messages. (defalias 'nrepl-toggle-message-logging #[0 "?\211\203 \301\302!\207\301\303!\207" [nrepl-log-messages message "nREPL message logging enabled" "nREPL message logging disabled"] 3 (#$ . 47956) nil]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable nrepl-message-colors funcall function #[0 "\300\207" [("red" "brown" "coral" "orange" "green" "deep sky blue" "blue" "dark violet")] 1] "Colors used in the messages buffer." :type (repeat color) :group nrepl] 8) #@123 Expand the objects hidden in BUTTON's :nrepl-object property. BUTTON defaults the button at point. (fn &optional BUTTON) (defalias 'nrepl-log-expand-button #[256 "\211\206\301`!\211\203,\302!\303!\304\305\"\306\212b\210\307!\210|\210\310!\210\311\312!*\207\313\314!\207" [inhibit-read-only button-at overlay-start overlay-end overlay-get :nrepl-object t delete-overlay nrepl-log-pp-object delete-char -1 error "No button at point"] 7 (#$ . 48590) nil]) #@41 Expand all buttons in nREPL log buffer. (defalias 'nrepl-log-expand-all-buttons #[0 "\301=\204\n\302\303!\207\212e\304!\211\205$\305!\262\306!\210\304!\262\202\266\202)\207" [major-mode nrepl-messages-mode user-error "Not in a `nrepl-messages-mode'" next-button overlay-start nrepl-log-expand-button] 4 (#$ . 49062) nil]) #@101 Expand the text hidden under overlay button. EVENT gives the button position on window. (fn EVENT) (defalias 'nrepl-log--expand-button-mouse #[257 "\211\300\234\211:\205W\211\242\243\211:\205U\211\243\211:\205S\211\243\211:\205Q\211\243\211:\205O\211\243\211:\205M\211\242\301!r\302\303\"\216\304@\305\"\210\306\307!!*\262\266\202\262\262\262\262\262\266\202\207" [1 internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord nrepl-log-expand-button button-at] 15 (#$ . 49402) "e"]) #@83 Insert button with LABEL and :nrepl-object property as OBJECT. (fn LABEL OBJECT) (defalias 'nrepl-log-insert-button #[514 "\300\301\302\303\304\305\306\307\310\311& \210\312c\207" [insert-button :nrepl-object action nrepl-log-expand-button face link help-echo "RET: Expand object." keymap (keymap (mouse-1 . nrepl-log--expand-button-mouse)) "\n"] 14 (#$ . 49992)]) #@108 Return the color to use when pretty-printing the nREPL message with ID. If ID is nil, return nil. (fn ID) (defalias 'nrepl-log--message-color #[257 "\211\205 \301\302!G\"8\207" [nrepl-message-colors mod string-to-number] 4 (#$ . 50367)]) #@134 Pretty print nREPL list like OBJECT. FOREGROUND and BUTTON are as in `nrepl-log-pp-object'. (fn OBJECT &optional FOREGROUND BUTTON) (defalias 'nrepl-log--pp-listlike #[769 "\300\301\302@\"\"c\210A\204\303c\207\304iGZ\\\305\306\307A!\304\"\310\"\311\312\"\313!\314\315\"\316\"\317\320#\321\317\320#\322c\210\211\211:\203\200\323\n\324\"\325@\326@\327=?\205\\\330#\323 @GZ\324\"\301\331$c\210\332A@\333#\266\211AA\262\202D\210 @\327=\203\215\334\335!\210\n \303\"c\207" [#[514 "\300\301\302\303\205\304D\"#\207" [propertize face append (:weight ultra-bold) :foreground] 9 "\n\n(fn FOREGROUND STR)"] format "(%s" ")\n" 2 sort seq-partition cl-copy-list #[514 "@@\231\207" #1=[] 4 "\n\n(fn A B)"] seq-map #[257 "\211@G\207" #1# 2 "\n\n(fn PAIR)"] seq-max #[257 "\211@\300\235\207" [("id" "op" "session" "time-stamp")] 3 "\n\n(fn PAIR)"] seq-filter seq-remove seq-concatenate list apply "\n" make-string 32 propertize face dict font-lock-keyword-face "%s%s%s " nrepl-log-pp-object nil delete-char -1] 23 (#$ . 50617)]) #@192 Pretty print nREPL OBJECT, delimited using FOREGROUND. If BUTTON is non-nil, try making a button from OBJECT instead of inserting it into the buffer. (fn OBJECT &optional FOREGROUND BUTTON) (defalias 'nrepl-log-pp-object #[769 "\242\211\203B\211\300\267\202(\301#\207\203\"G\302V\203\"\303\304\"\207\301#\207\203=G\305V\203=\303\306\307\310!\"\"\207\311p\"\207;\203e\203^G\312V\203^\303\306\313\314\312O\"\"\207\310!\315\261\207\311p\"\210\315c\207" [#s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (<-- 12 --> 12 dict 18)) nrepl-log--pp-listlike 1 nrepl-log-insert-button "(dict ...)" 10 format "(%s ...)" prin1-to-string pp 60 "\"%s...\"" 0 "\n"] 10 (#$ . 51689)]) #@106 Return or create the buffer for CONN. The default buffer name is *nrepl-messages connection*. (fn CONN) (defalias 'nrepl-messages-buffer #[257 "r\211q\210\301!\203\206$\302\303\304 !!r\211q\210\305 \210\306 \210)\211\262\211)\207" [nrepl-messages-buffer buffer-live-p get-buffer-create nrepl-messages-buffer-name cider--gather-connect-params buffer-disable-undo nrepl-messages-mode] 4 (#$ . 52434)]) #@72 Return or create the buffer. The default buffer name is *nrepl-error*. (defalias 'nrepl-error-buffer #[0 "\301!\206\302!r\211q\210\303 \210\304 \210)\211\262\207" [nrepl-error-buffer-name get-buffer get-buffer-create buffer-disable-undo fundamental-mode] 2 (#$ . 52848)]) #@74 Log the given MSG to the buffer given by `nrepl-error-buffer'. (fn MSG) (defalias 'nrepl-log-error #[257 "r\301 q\210\302db\210\211c\210\303 \211\203\304d\"\210\210\305\211)\207" [buffer-read-only nrepl-error-buffer nil get-buffer-window set-window-point t] 5 (#$ . 53131)]) (byte-code "\300\301\302\303#\210\304\305!\207" [make-obsolete nrepl-default-client-buffer-builder nil "0.18" provide nrepl-client] 4)