;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\300\311!\210\300\312!\210\300\313!\210\314\315\316\317\320\321\322\323&\210\324\325\326\327\330DD\331\332\333\322\315\334\335& \210\324\336\326\327\337DD\340\332\333\322\315\334\341& \210\342\343\344\345#\210\342\346\344\345#\210\347\344\350\351#\207" [require button cl-lib easymenu map seq subr-x cider-common cider-compat cider-client cider-popup cider-util custom-declare-group cider-stacktrace nil "Stacktrace filtering and navigation." :prefix "cider-stacktrace-" :group cider custom-declare-variable cider-stacktrace-fill-column funcall function #[0 "\300\207" [t] 1] "Fill column for error messages in stacktrace display.\nIf nil, messages will not be wrapped. If truthy but non-numeric,\n`fill-column' will be used." :type list :package-version (cider . "0.7.0") cider-stacktrace-default-filters #[0 "\300\207" [(tooling dup)] 1] "Frame types to omit from initial stacktrace display." (cider . "0.6.0") make-obsolete cider-stacktrace-print-length cider-stacktrace-print-options "0.20" cider-stacktrace-print-level make-obsolete-variable cider-print-options "0.21"] 10) #@38 The maximum detail level for causes. (defvar cider-stacktrace-detail-max 2 (#$ . 1284)) (defvar cider-stacktrace-hidden-frame-count 0 nil) (make-variable-buffer-local 'cider-stacktrace-hidden-frame-count) (defvar cider-stacktrace-filters nil nil) (make-variable-buffer-local 'cider-stacktrace-filters) (defvar cider-stacktrace-cause-visibility nil nil) (make-variable-buffer-local 'cider-stacktrace-cause-visibility) (defvar cider-stacktrace-positive-filters nil nil) (make-variable-buffer-local 'cider-stacktrace-positive-filters) (defconst cider-error-buffer "*cider-error*") (byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315\316\317& \210\320\321\322\323\314\315\316\324&\210\320\325\326\327\314\315\316\330&\210\320\331\332\333\314\315\316\334&\210\320\335\336\337\314\315\316\340&\210\320\341\342\343\314\315\316\344&\210\320\345\346\347\314\315\316\350&\210\320\351\352\353\314\315\316\354&\210\320\355\356\357\314\315\316\360&\210\320\361\362\363\314\315\316\364&\207" [make-obsolete cider-visit-error-buffer cider-selector "0.18" custom-declare-variable cider-stacktrace-suppressed-errors funcall function #[0 "\300\207" [nil] 1] "Errors that won't make the stacktrace buffer 'pop-over' your active window.\nThe error types are represented as strings." :type list :group cider-stacktrace :package-version (cider . "0.12.0") custom-declare-face cider-stacktrace-error-class-face ((t (:inherit font-lock-warning-face))) "Face for exception class names" (cider . "0.6.0") cider-stacktrace-error-message-face ((t (:inherit font-lock-doc-face))) "Face for exception messages" (cider . "0.7.0") cider-stacktrace-filter-active-face ((t (:inherit button :underline t :weight normal))) "Face for filter buttons representing frames currently visible" (cider . "0.6.0") cider-stacktrace-filter-inactive-face ((t (:inherit button :underline nil :weight normal))) "Face for filter buttons representing frames currently filtered out" (cider . "0.6.0") cider-stacktrace-face ((t (:inherit default))) "Face for stack frame text" (cider . "0.6.0") cider-stacktrace-ns-face ((t (:inherit font-lock-comment-face))) "Face for stack frame namespace name" (cider . "0.6.0") cider-stacktrace-fn-face ((t (:inherit default :weight bold))) "Face for stack frame function name" (cider . "0.6.0") cider-stacktrace-promoted-button-face ((((type graphic)) :box (:line-width 3 :style released-button) :inherit error) (t :inverse-video t)) "A button with this face represents a promoted (non-suppressed) error type." (cider . "0.12.0") cider-stacktrace-suppressed-button-face ((((type graphic)) :box (:line-width 3 :style pressed-button) :inherit widget-inactive) (t :inverse-video t)) "A button with this face represents a suppressed error type." (cider . "0.12.0")] 10) #@41 Background color for stacktrace frames. (defvar cider-stacktrace-frames-background-color (cider-scale-background-color) (#$ . 4074)) (byte-code "\300\301\302\303\304$\210\305\301\304\"\210\300\306\307\303\304$\210\305\306\304\"\207" [ad-add-advice enable-theme (cider-stacktrace-adapt-to-theme nil t (advice lambda nil "When theme is changed, update `cider-stacktrace-frames-background-color'." (setq cider-stacktrace-frames-background-color (cider-scale-background-color)))) after nil ad-activate disable-theme (cider-stacktrace-adapt-to-theme nil t (advice lambda nil "When theme is disabled, update `cider-stacktrace-frames-background-color'." (setq cider-stacktrace-frames-background-color (cider-scale-background-color))))] 5) (defvar cider-stacktrace-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\335#\210\301\336\337#\210\301\340\341#\210\301\342\343#\210\301\344\345#\210\301\346\343#\210\347\350!\210\351\352\353\354$\210\207" [make-sparse-keymap define-key [134217840] cider-stacktrace-previous-cause [134217838] cider-stacktrace-next-cause [134217774] cider-stacktrace-jump "q" cider-popup-buffer-quit-function "j" cider-stacktrace-toggle-java "c" cider-stacktrace-toggle-clj "r" cider-stacktrace-toggle-repl "t" cider-stacktrace-toggle-tooling "d" cider-stacktrace-toggle-duplicates "p" cider-stacktrace-show-only-project "a" cider-stacktrace-toggle-all "1" cider-stacktrace-cycle-cause-1 "2" cider-stacktrace-cycle-cause-2 "3" cider-stacktrace-cycle-cause-3 "4" cider-stacktrace-cycle-cause-4 "5" cider-stacktrace-cycle-cause-5 "0" cider-stacktrace-cycle-all-causes " " cider-stacktrace-cycle-current-cause [backtab] (lambda (def-tmp-var) (defvar cider-stacktrace-mode-menu def-tmp-var #1="Menu for CIDER's stacktrace mode")) nil easy-menu-do-define cider-stacktrace-mode-menu #1# ("Stacktrace" ["Previous cause" cider-stacktrace-previous-cause] ["Next cause" cider-stacktrace-next-cause] "--" ["Jump to frame source" cider-stacktrace-jump] "--" ["Cycle current cause detail" cider-stacktrace-cycle-current-cause] ["Cycle cause #1 detail" cider-stacktrace-cycle-cause-1] ["Cycle cause #2 detail" cider-stacktrace-cycle-cause-2] ["Cycle cause #3 detail" cider-stacktrace-cycle-cause-3] ["Cycle cause #4 detail" cider-stacktrace-cycle-cause-4] ["Cycle cause #5 detail" cider-stacktrace-cycle-cause-5] ["Cycle all cause detail" cider-stacktrace-cycle-all-causes] "--" ["Show/hide Java frames" cider-stacktrace-toggle-java] ["Show/hide Clojure frames" cider-stacktrace-toggle-clj] ["Show/hide REPL frames" cider-stacktrace-toggle-repl] ["Show/hide tooling frames" cider-stacktrace-toggle-tooling] ["Show/hide duplicate frames" cider-stacktrace-toggle-duplicates] ["Toggle only project frames" cider-stacktrace-show-only-project] ["Show/hide all frames" cider-stacktrace-toggle-all])] 6)) (defvar cider-stacktrace-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [cider-stacktrace-mode-hook variable-documentation put "Hook run after entering Stacktrace mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp cider-stacktrace-mode-map definition-name cider-stacktrace-mode] 4) (defvar cider-stacktrace-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" [cider-stacktrace-mode-abbrev-table cider-stacktrace-mode-map variable-documentation put purecopy "Keymap for `cider-stacktrace-mode'." boundp cider-stacktrace-mode-syntax-table definition-name cider-stacktrace-mode (lambda (def-tmp-var) (defvar cider-stacktrace-mode-syntax-table def-tmp-var)) make-syntax-table "Syntax table for `cider-stacktrace-mode'." (lambda (def-tmp-var) (defvar cider-stacktrace-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `cider-stacktrace-mode'." derived-mode-parent special-mode] 5) #@273 Major mode for filtering and navigating CIDER stacktraces. \{cider-stacktrace-mode-map} In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `cider-stacktrace-mode-hook', as the final or penultimate step during initialization. (defalias 'cider-stacktrace-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( \306\341!\210\342\343\337\"!)\344\345!\207" [delay-mode-hooks major-mode mode-name cider-stacktrace-mode-map cider-stacktrace-mode-syntax-table cider-stacktrace-mode-abbrev-table make-local-variable t special-mode cider-stacktrace-mode "Stacktrace" 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 cider-stacktrace-hidden-frame-count 0 cider-stacktrace-filters cider-stacktrace-cause-visibility make-vector 10 run-mode-hooks cider-stacktrace-mode-hook local-abbrev-table cider-special-mode-truncate-lines cider-stacktrace-default-filters] 5 (#$ . 8412) nil]) #@34 Filters that remove stackframes. (defvar cider-stacktrace--all-negative-filters '(clj tooling dup java repl) (#$ . 9843)) #@44 Filters that ensure stackframes are shown. (defvar cider-stacktrace--all-positive-filters '(project all) (#$ . 9971)) #@298 Return whether we should mark the FILTER is active or not. NEG-FILTERS and POS-FILTERS are lists of filters to check FILTER's type. NEG-FILTERS dictate which frames should be hidden while POS-FILTERS can override this and ensure that those frames are shown. (fn FILTER NEG-FILTERS POS-FILTERS) (defalias 'cider-stacktrace--face-for-filter #[771 "\235\203\235\203\302\207\303\207 \235\205\235\203\302\207\303\207" [cider-stacktrace--all-negative-filters cider-stacktrace--all-positive-filters cider-stacktrace-filter-active-face cider-stacktrace-filter-inactive-face] 5 (#$ . 10096)]) #@402 Update enabled state of filter buttons. Find buttons with a 'filter property; if filter is a member of FILTERS, or if filter is nil ('show all') and the argument list is non-nil, fontify the button as disabled. Upon finding text with a 'hidden-count property, stop searching and update the hidden count text. POS-FILTERS is the list of positive filters to always include. (fn FILTERS POS-FILTERS) (defalias 'cider-stacktrace-indicate-filters #[514 "rq\210\212eb\210\303\304`\305\"\2049m\2049\306`!\211\203,\307\310\"\311#\312\313#\266\314`!\2063db\266\202\n\304`\305\"\205N\315\316\317 \303#\205N\320\321\n!!+\207" [cider-error-buffer inhibit-read-only cider-stacktrace-hidden-frame-count t get-text-property hidden-count button-at button-get filter cider-stacktrace--face-for-filter button-put face next-property-change re-search-forward "[0-9]+" line-end-position replace-match number-to-string] 9 (#$ . 10705)]) #@49 Indicate if the text at point is a stack frame. (defalias 'cider-stacktrace-frame-p #[0 "\300`\301\"\207" [get-text-property cider-stacktrace-frame] 3 (#$ . 11647)]) #@43 Indicate if the stackframe was collapsed. (defalias 'cider-stacktrace-collapsed-p #[0 "\300`\301\"\207" [get-text-property collapsed] 3 (#$ . 11819)]) #@286 Decide whether a stackframe should be hidden or not. NEG-FILTERS dictate which frames should be hidden while POS-FILTERS can override this and ensure that those frames are shown. Argument FLAGS are the flags set on the stackframe, ie: clj dup, etc. (fn NEG-FILTERS POS-FILTERS FLAGS) (defalias 'cider-stacktrace--should-hide-p #[771 "\300\"\300\"\301>\211\203\302\207\203\203\302\207\203!\302\207\203'\303\207\302\207" [seq-intersection all nil t] 7 (#$ . 11977)]) #@462 Set visibility on stack frames. Should be called by `cider-stacktrace-apply-filters' which has the logic of how to interpret the combinations of the positive and negative filters. For instance, the presence of the positive filter `project' requires all of the other negative filters to be applied so that only project frames are shown. NEG-FILTERS are the tags that should be hidden. POS-FILTERS are the tags that must be shown. (fn NEG-FILTERS POS-FILTERS) (defalias 'cider-stacktrace--apply-filters #[514 "rq\210\212eb\210\303\304m\204;\305 \2035\306 \2045\307`\310\"\311#\211\203+T\262\312`\313\314!\315$\266\316y\210\202\f\211)\266)\317\")\207" [cider-error-buffer inhibit-read-only cider-stacktrace-hidden-frame-count t 0 cider-stacktrace-frame-p cider-stacktrace-collapsed-p get-text-property flags cider-stacktrace--should-hide-p put-text-property line-beginning-position 2 invisible 1 cider-stacktrace-indicate-filters] 11 (#$ . 12467)]) #@444 Takes a single list of filters and applies them. Update `cider-stacktrace-hidden-frame-count' and indicate filters applied. Currently collapsed stacktraces are ignored, and do not contribute to the hidden count. FILTERS is the list of filters to be applied, positive and negative all together. This function defines how those choices interact and separates them into positive and negative filters for the resulting machinery. (fn FILTERS) (defalias 'cider-stacktrace-apply-filters #[257 "\302\"\302 \"\303\304>>\203\305\306\"\207\304\303>>\203\"\305\307\310\"\207\303>\203-\305\307\311\"\207\304>\2038\305\"\207\305\"\207" [cider-stacktrace--all-negative-filters cider-stacktrace--all-positive-filters seq-intersection all project cider-stacktrace--apply-filters (project) nil (all) (all)] 6 (#$ . 13442)]) #@74 Apply `cider-stacktrace-cause-visibility' to causes and reapply filters. (defalias 'cider-stacktrace-apply-cause-visibility #[0 "rq\210\212eb\210\304\305\306 \203F\307`\310\"\n\234\311\310!A@!\203A\307`\312\"\311\312!A@V\2052\305\313`\314\315F#\266\202\266\202 )\210\316 !*\207" [cider-error-buffer inhibit-read-only cider-stacktrace-cause-visibility cider-stacktrace-filters #[257 "\300`\301\"\211\205\211W\205\211b\207" [next-single-property-change detail] 4 "\n\n(fn END)"] t cider-stacktrace-next-cause get-text-property cause cider-property-bounds detail add-text-properties invisible collapsed cider-stacktrace-apply-filters] 14 (#$ . 14276)]) #@338 Return intersection of ERROR-TYPES and CIDER-STACKTRACE-SUPPRESSED-ERRORS. I.e, Return non-nil if the seq ERROR-TYPES shares any elements with `cider-stacktrace-suppressed-errors'. This means that even a 'well-behaved' (ie, promoted) error type will be 'guilty by association' if grouped with a suppressed error type. (fn ERROR-TYPES) (defalias 'cider-stacktrace-some-suppressed-errors-p #[257 "\301\"\207" [cider-stacktrace-suppressed-errors seq-intersection] 4 (#$ . 14957)]) #@104 Destructively add element ERROR-TYPE to the `cider-stacktrace-suppressed-errors' set. (fn ERROR-TYPE) (defalias 'cider-stacktrace-suppress-error #[257 "\211\235\203\n\202 \211B\211\207" [cider-stacktrace-suppressed-errors] 3 (#$ . 15446)]) #@109 Destructively remove element ERROR-TYPE from the `cider-stacktrace-suppressed-errors' set. (fn ERROR-TYPE) (defalias 'cider-stacktrace-promote-error #[257 "\301\"\211\207" [cider-stacktrace-suppressed-errors remove] 4 (#$ . 15700)]) #@116 Return non-nil if element ERROR-TYPE is a member of the `cider-stacktrace-suppressed-errors' set. (fn ERROR-TYPE) (defalias 'cider-stacktrace-suppressed-error-p #[257 "\211\235\207" [cider-stacktrace-suppressed-errors] 3 (#$ . 15944)]) #@60 Move point to the previous exception cause, if one exists. (defalias 'cider-stacktrace-previous-cause #[0 "rq\210\301`\302\"\211\205\211b\262)\207" [cider-error-buffer previous-single-property-change cause] 3 (#$ . 16188) nil]) #@56 Move point to the next exception cause, if one exists. (defalias 'cider-stacktrace-next-cause #[0 "rq\210\301`\302\"\211\205\211b\262)\207" [cider-error-buffer next-single-property-change cause] 3 (#$ . 16426) nil]) #@200 Update element NUM of `cider-stacktrace-cause-visibility'. If LEVEL is specified, it is useed, otherwise its current value is incremented. When it reaches 3, it wraps to 0. (fn NUM &optional LEVEL) (defalias 'cider-stacktrace-cycle-cause #[513 "\211\206\234T\301\302\"I\210\303 \207" [cider-stacktrace-cause-visibility mod 3 cider-stacktrace-apply-cause-visibility] 8 (#$ . 16653)]) #@47 Cycle the visibility of all exception causes. (defalias 'cider-stacktrace-cycle-all-causes #[0 "rq\210\212\302`\303\"\204\304 \210\302`\303\"\204\305 \210\302`\303\" \234T\306\301!\210\307\310\311\312\"\"\313 \266\202*\207" [cider-error-buffer cider-stacktrace-cause-visibility get-text-property cause cider-stacktrace-next-cause cider-stacktrace-previous-cause make-local-variable make-vector 10 mod 3 cider-stacktrace-apply-cause-visibility] 7 (#$ . 17050) nil]) #@61 Cycle the visibility of current exception at point, if any. (defalias 'cider-stacktrace-cycle-current-cause #[0 "rq\210\301`\302\"\211\205\303!\262)\207" [cider-error-buffer get-text-property cause cider-stacktrace-cycle-cause] 3 (#$ . 17529) nil]) #@45 Cycle the visibility of exception cause #1. (defalias 'cider-stacktrace-cycle-cause-1 #[0 "\300\301!\207" [cider-stacktrace-cycle-cause 1] 2 (#$ . 17789) nil]) #@45 Cycle the visibility of exception cause #2. (defalias 'cider-stacktrace-cycle-cause-2 #[0 "\300\301!\207" [cider-stacktrace-cycle-cause 2] 2 (#$ . 17955) nil]) #@45 Cycle the visibility of exception cause #3. (defalias 'cider-stacktrace-cycle-cause-3 #[0 "\300\301!\207" [cider-stacktrace-cycle-cause 3] 2 (#$ . 18121) nil]) #@45 Cycle the visibility of exception cause #4. (defalias 'cider-stacktrace-cycle-cause-4 #[0 "\300\301!\207" [cider-stacktrace-cycle-cause 4] 2 (#$ . 18287) nil]) #@45 Cycle the visibility of exception cause #5. (defalias 'cider-stacktrace-cycle-cause-5 #[0 "\300\301!\207" [cider-stacktrace-cycle-cause 5] 2 (#$ . 18453) nil]) #@88 Update `cider-stacktrace-filters' to add or remove FLAG, and apply filters. (fn FLAG) (defalias 'cider-stacktrace-toggle #[257 "\301>\203\302\"\202B\211!\207" [cider-stacktrace-filters cider-stacktrace-apply-filters remq] 5 (#$ . 18619)]) #@30 Toggle `all' in filter list. (defalias 'cider-stacktrace-toggle-all #[0 "\300\301!\207" [cider-stacktrace-toggle all] 2 (#$ . 18876) nil]) #@48 Display only the stackframes from the project. (defalias 'cider-stacktrace-show-only-project #[0 "\300\301!\207" [cider-stacktrace-toggle project] 2 (#$ . 19021) nil]) #@38 Toggle display of Java stack frames. (defalias 'cider-stacktrace-toggle-java #[0 "\300\301!\207" [cider-stacktrace-toggle java] 2 (#$ . 19195) nil]) #@41 Toggle display of Clojure stack frames. (defalias 'cider-stacktrace-toggle-clj #[0 "\300\301!\207" [cider-stacktrace-toggle clj] 2 (#$ . 19350) nil]) #@38 Toggle display of REPL stack frames. (defalias 'cider-stacktrace-toggle-repl #[0 "\300\301!\207" [cider-stacktrace-toggle repl] 2 (#$ . 19506) nil]) #@75 Toggle display of Tooling stack frames (compiler, nREPL middleware, etc). (defalias 'cider-stacktrace-toggle-tooling #[0 "\300\301!\207" [cider-stacktrace-toggle tooling] 2 (#$ . 19661) nil]) #@74 Toggle display of stack frames that are duplicates of their descendents. (defalias 'cider-stacktrace-toggle-duplicates #[0 "\300\301!\207" [cider-stacktrace-toggle dup] 2 (#$ . 19859) nil]) #@55 Apply filter(s) indicated by the BUTTON. (fn BUTTON) (defalias 'cider-stacktrace-filter #[257 "\302\303C\304\305#\216\211\306 \240\210\307\310\302\"\210\311\312\"\211\235\203%\313!\266\2026\211 \235\2032\314 \266\2026\315 \266\316\317!)\207" [cider-stacktrace--all-negative-filters cider-stacktrace--all-positive-filters "Filters may also be toggled with the keyboard." nil make-closure #[0 "\300\205\301\242\203\302\303\301\242\"\207\302\304!\207" [V0 V1 message #1="%s" nil] 3] current-message message #1# button-get filter cider-stacktrace-toggle cider-stacktrace-show-only-project cider-stacktrace-toggle-all sit-for 5] 7 (#$ . 20055)]) #@177 Toggle stacktrace pop-over/pop-under behavior for the `error-type' in BUTTON. Achieved by destructively manipulating the `cider-stacktrace-suppressed-errors' set. (fn BUTTON) (defalias 'cider-stacktrace-toggle-suppression #[257 "rq\210\302\303\304\"\303\305\"\203&\306!\210\307\310\311#\210\307\312\313#\210\2026\314!\210\307\310\315#\210\307\312\316#\210\307\304?#)\266\203)\207" [cider-error-buffer inhibit-read-only t button-get suppressed error-type cider-stacktrace-promote-error button-put face cider-stacktrace-promoted-button-face help-echo "Click to suppress these stacktraces." cider-stacktrace-suppress-error cider-stacktrace-suppressed-button-face "Click to promote these stacktraces."] 8 (#$ . 20720)]) #@76 Navigate to the stack frame source represented by the BUTTON. (fn BUTTON) (defalias 'cider-stacktrace-navigate #[257 "\300\301\"\300\302\"\300\303\"\203\304!\206'\203%\211\203%\305\"\206'\306 \300\307\"\206/\310\311\312\"\2067\313Z\204B\314!\206N\311\315\"\206N\300\316\"\317\315#\320\321\"\210y\210\322 \207" [button-get var class method cider-var-info cider-member-info nrepl-dict line 0 nrepl-dict-get "line" 1 cider-resolve-java-class "file" file nrepl-dict-put cider--jump-to-loc-from-info t back-to-indentation] 11 (#$ . 21459)]) #@210 Find definition for stack frame at point, if available. The prefix ARG and `cider-prompt-for-symbol' decide whether to prompt and whether to use a new window. Similar to `cider-find-var'. (fn &optional ARG) (defalias 'cider-stacktrace-jump #[256 "\300`!\211\203\301\302\"\203\303!\207\304!\207" [button-at button-get line cider-stacktrace-navigate cider-find-var] 5 (#$ . 22033) "P"]) #@85 Return TOOLTIP if `cider-use-tooltips' is set to true, nil otherwise. (fn TOOLTIP) (defalias 'cider-stacktrace-tooltip #[257 "\205\211\207" [cider-use-tooltips] 2 (#$ . 22433)]) #@295 Insert TEXT, and optionally FILL and FONTIFY as clojure the entire block. INDENT is a string to insert before each line. When INDENT is nil, first line is not indented and INDENT defaults to a white-spaced string with length given by `current-column'. (fn TEXT &optional INDENT FILL FONTIFY) (defalias 'cider-stacktrace-emit-indented #[1025 "\211\203\n\303!\202 \211\206\304i\305\"`c\210\211b\210\203\"c\210\306y\210m\2042c\210\306y\210\202%\205O\205O\247\203E\307\301!\210\307\302!\210\310`\"\207" [cider-stacktrace-fill-column fill-column fill-prefix cider-font-lock-as-clojure make-string 32 nil make-local-variable fill-region] 11 (#$ . 22622)]) #@176 Emit into BUFFER toggle buttons for each of the FILTERS. SPECIAL-FILTERS are filters that show stack certain stack frames, hiding others. (fn BUFFER SPECIAL-FILTERS FILTERS) (defalias 'cider-stacktrace-render-filters #[771 "rq\210\300c\210\211\203/\211@\301@\302A@\303\304\305\306\307\310\311\312\f@\"!& \210\313c\210A\266\202\202\210\314c\210\315c\210\211\211\203^\211@\301@\302A@\303\304\305\306\307\310\311\312\f@\"!& \210\313c\210A\266\202\2027\210\316\317\320\321\304\322%\210\313\322\314\261)\207" [" Show: " insert-text-button filter follow-link t action cider-stacktrace-filter help-echo cider-stacktrace-tooltip format "Toggle %s stack frames" " " "\n" " Hide: " put-text-property 0 17 hidden-count "(0 frames hidden)"] 18 (#$ . 23306)]) #@118 Emit into BUFFER toggle buttons for each of the ERROR-TYPES leading this stacktrace buffer. (fn BUFFER ERROR-TYPES) (defalias 'cider-stacktrace-render-suppression-toggle #[514 "rq\210\211\205k\300c\210\301\302\303\304\305\306\307\310\311!&\210\312c\210\313c\210\211\211\205i\211@\314!\301\315\316\2033\317\2024\320#\303\304\321\305\322\323 \324 \203J\325\202K\326\307\310\315\327\203X\330\202Y\331\"!& \266\332c\210A\266\202\202\262)\207" [" This is an unexpected CIDER middleware error.\n Please submit a bug report via `" insert-text-button "M-x cider-report-bug" follow-link t action #[257 "\300 \207" [cider-report-bug] 2 "\n\n(fn BUTTON)"] help-echo cider-stacktrace-tooltip "Report bug to the CIDER team." "`.\n\n" " If these stacktraces are occurring frequently, consider using the\n button(s) below to suppress these types of errors for the duration of\n your current CIDER session. The stacktrace buffer will still be\n generated, but it will \"pop under\" your current buffer instead of\n \"popping over\". The button toggles this behavior.\n\n " cider-stacktrace-suppressed-error-p format "%s %s" "Promote" "Suppress" error-type cider-stacktrace-toggle-suppression suppressed face cider-stacktrace-suppressed-button-face cider-stacktrace-promoted-button-face "Click to %s these stacktraces." "promote" "suppress" " "] 22 (#$ . 24079)]) #@157 Emit into BUFFER function call site info for the stack FRAME. This associates text properties to enable filtering and source navigation. (fn BUFFER FRAME) (defalias 'cider-stacktrace-render-frame #[514 "rq\210\300\301\"\300\302\"\300\303\"\300\304\"\300\305\"\300\306\"\300\307\"\300\310\"\300 \311\"\312\313\"\314\315\316\317>\203>\320\202@\f\f\321>\203N\202P \321>\203\\\202^ %\322\323 \324\f\325 \326\327\330\331\332\333\334\335\336\337!\340\341\342\343&\210\212`\344\345!\346\347!\350\351!\352\340\353$\210\352\340\354$\210\352\355 \356 \357\332$\266)\360c\262\266\211)\207" [nrepl-dict-get "file" "line" "flags" "class" "method" "name" "var" "ns" "fn" mapcar intern insert-text-button format "%26s:%5d %s/%s" repl "REPL" clj var class method name file line flags follow-link t action cider-stacktrace-navigate help-echo cider-stacktrace-tooltip "View source at this location" font-lock-face cider-stacktrace-face type cider-plain-button search-backward " " search-forward "/" search-forward-regexp "[^/$]+" put-text-property cider-stacktrace-ns-face cider-stacktrace-fn-face line-beginning-position line-end-position cider-stacktrace-frame "\n"] 38 (#$ . 25465)]) #@88 Emit into BUFFER the compile error CAUSE, and enable jumping to it. (fn BUFFER CAUSE) (defalias 'cider-stacktrace-render-compile-error #[514 "rq\210\300\301\"\300\302\"\300\303\"\300\304\"\305c\210\306\307\310\311#c\210\312\313\314\315\316\317 \320\314\321\322\323$\324\325\326!&\210\306\327\330#\310\311#c\266\204)\207" [nrepl-dict-get "file" "path" "line" "column" " " propertize "Error compiling " font-lock-face cider-stacktrace-error-message-face insert-text-button compile-error t file line column follow-link action make-closure #[257 "\303\304\300!\301\302B\"\207" [V0 V1 V2 cider-jump-to cider-find-file] 5 "\n\n(fn BUTTON)"] help-echo cider-stacktrace-tooltip "Jump to the line that caused the error" format " at (%d:%d)"] 24 (#$ . 26694)]) #@202 Toggle visibility of the region with ID invisibility prop. ID can also be a button, in which case button's property :id is used instead. This function can be used directly in button actions. (fn ID) (defalias 'cider-stacktrace--toggle-visibility #[257 "\211\247\204\n\2119\203\211\202\301\302\":\203$\303\"\203$\304\305B!\207\306\305B!\207" [buffer-invisibility-spec button-get :id assoc remove-from-invisibility-spec t add-to-invisibility-spec] 5 (#$ . 27475)]) #@219 Insert named group with the ability to toggle visibility. NAME is a string naming the group. VALS are strings to be inserted after the NAME. The whole group is prefixed by string INDENT. (fn INDENT NAME &rest VALS) (defalias 'cider-stacktrace--insert-named-group #[642 "\211\205\f\300\301\302\303\304\"#\211\205\305\306\"\205\307!c\210\211\203O\305\310\"\305\311T#\312Oc\210\313O\314\315\316\317\320\321\322\323\324& \210\325Oc\266\202V\326\315\327#c\210`\205\203\330\306P\325\211\320$\210\205\203\331\320B!\210\212\211b\210\332 )\333 S\334\335\"\336#\266\202\207" [replace-regexp-in-string "\n+\\'" "" apply concat string-match "\n" cl-gensym "[^ :]" "[ :]" 0 insert-text-button :id face ((:weight bold) (:underline t)) follow-link t help-echo "Toggle visibility" action cider-stacktrace--toggle-visibility nil propertize ((:weight bold)) cider-stacktrace-emit-indented remove-from-invisibility-spec point-at-eol point-at-bol overlay-put make-overlay invisible] 19 (#$ . 27960)]) #@61 Emit SPEC-DATA indented with INDENT. (fn SPEC-DATA INDENT) (defalias 'cider-stacktrace--emit-spec-problems #[514 "\300\301\"\300\302\"\300\303\"\304c\210\305\306#\210\305\307#\210\304c\210\305\310\"\210\311P\211\205\261\211@\300\312\"\300\313\"\300\314\"\300\315\"\300\301\"\300\316\"\300\317\"\304c\210\f\230\204]\305\n\320#\210\203j\305\n\321 #\210\305\n\322#\210\203}\305\n\323#\210\203\210\305\n\324#\210\203\224\305\n\325#\210\211\203\250\305\n\326\"\210\327 \330P\331\332$\210\266A\266\202\202'\207" [nrepl-dict-get "spec" "value" "problems" "\n" cider-stacktrace--insert-named-group " Spec: " " Value: " "Problems: \n" " " "in" "val" "predicate" "reason" "at" "extra" " val: " " in: " "failed: " " spec: " " at: " "reason: " "extras: \n" cider-stacktrace-emit-indented " " nil t] 20 (#$ . 28986)]) #@103 Emit into BUFFER the CAUSE NUM, exception class, message, data, and NOTE. (fn BUFFER CAUSE NUM NOTE) (defalias 'cider-stacktrace-render-cause #[1028 "rq\210\301\302\"\301\303\"\301\304\"\301\305\"\301\306\"``\307\310\n\"\311 \312\313#\314\311\n\312\315#\316\261\210\317`\320#\266`\321\232\203K\322  \"\210\202Z\323\311\206S\324\312\325#\326\327#\210\316c\210\203f\330\331\"\210\203q\323\326\332\327$\210\317`\333#\266`\316c\210`\334\335BB\211\203\226\211@\336\"\210A\266\202\202\203\210\337\340`\"\312#\266\317`\341#\266`\316c\317`\342#\210\262\317`\343\fD#\210\262\266\205)\207" [cider-stacktrace-frames-background-color nrepl-dict-get "class" "message" "data" "spec" "stacktrace" format "%d. " propertize font-lock-face font-lock-comment-face " " cider-stacktrace-error-class-face "\n" add-text-properties (detail 0) "clojure.lang.Compiler$CompilerException" cider-stacktrace-render-compile-error cider-stacktrace-emit-indented "(No message)" cider-stacktrace-error-message-face " " t cider-stacktrace--emit-spec-problems " " nil (detail 1) :background (:extend t) cider-stacktrace-render-frame overlay-put make-overlay (detail 2) (detail 0) cause] 18 (#$ . 29871)]) #@85 Set and apply CAUSES initial visibility, filters, and cursor position. (fn CAUSES) (defalias 'cider-stacktrace-initialize #[257 "\302@\303\"\211\304\232\211\203\305G\306\"\210\305\306\"\210\307\310 !\206 \311 !r\312\313\"\216\314@\315\"\210r q\210eb\210\203@\316`\317\"b\202J\320 \204@\316`\321\"b+\207" [cider-stacktrace-detail-max cider-error-buffer nrepl-dict-get "class" "clojure.lang.Compiler$CompilerException" cider-stacktrace-cycle-cause 1 internal--before-with-selected-window get-buffer-window selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord next-single-property-change compile-error cider-stacktrace-next-cause flags] 7 (#$ . 31102)]) #@392 Emit into BUFFER useful stacktrace information for the CAUSES. Takes an optional ERROR-TYPES list which will render a 'suppression' toggle that alters the pop-over/pop-under behavorior of the stacktrace buffers created by these types of errors. The suppressed errors set can be customized through the `cider-stacktrace-suppressed-errors' variable. (fn BUFFER CAUSES &optional ERROR-TYPES) (defalias 'cider-stacktrace-render #[770 "rq\210\301\302 \210\303c\210\304\305\306#\210\303c\210\211\203!\307\"\210\310c\210G\211\203K\211@GU\2035\311\2026\312\313$\210S\262\210A\266\202\202$\266)\314!\210\315 )\207" [inhibit-read-only t erase-buffer "\n" cider-stacktrace-render-filters (("Project-Only" project) ("All" all)) (("Clojure" clj) ("Java" java) ("REPL" repl) ("Tooling" tooling) ("Duplicates" dup)) cider-stacktrace-render-suppression-toggle "\n\n" "Unhandled" "Caused by" cider-stacktrace-render-cause cider-stacktrace-initialize font-lock-refresh-defaults] 12 (#$ . 31837)]) (provide 'cider-stacktrace)