;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\302\312\313& \210\314\315\316\317\311\304%\210\314\320\321\322\311\304%\207" [require seq sesman custom-declare-group sesman-browser nil "Browser for Sesman." :prefix "sesman-browser-" :group :link (url-link :tag "GitHub" "https://github.com/vspinu/sesman") custom-declare-face sesman-browser-highligh-face ((default (:inherit highlight :weight bold))) "Face used to highlight currently selected button." sesman-browser-button-face ((default (:inherit button :slant italic))) "Face used to highlight currently selected object."] 10) (defvar sesman-browser--sort-types '(name relevance) nil) (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313&\207" [make-variable-buffer-local sesman-browser--sort-types custom-declare-variable sesman-browser-sort-type funcall function #[0 "\300\207" [name] 1] "Default sorting type in sesman browser buffers.\nCurrently can be either 'name or 'relevance." :type (choice (const name) (const relevance)) :group sesman-browser] 8) #@56 Prefix keymap for sesman commands from sesman browser. (defvar sesman-browser-map (byte-code "\301\302\300!\210\303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\313#\210\303\314\315#\210\303\316\317#\210)\207" [sesman-browser-map nil define-prefix-command define-key "r" sesman-browser-restart-session "q" sesman-browser-quit-session "b" sesman-browser-link-with-buffer "d" sesman-browser-link-with-directory "p" sesman-browser-link-with-project "u" sesman-browser-unlink] 4) (#$ . 1135)) #@40 Local keymap in `sesman-browser-mode'. (defvar sesman-browser-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\314#\210\302\320\316#\210\302\321\310#\210\302\322\312#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\330#\210\302\332\333#\210\302\334\335#\210\302\336\337#\210\302\340\341#\210\302\342\343#\210\302\344\343#\210)\207" [sesman-browser-mode-map make-sparse-keymap define-key "n" sesman-browser-vertical-next "p" sesman-browser-vertical-prev "f" sesman-browser-forward "b" sesman-browser-backward [remap forward-paragraph] sesman-browser-session-next [remap backward-paragraph] sesman-browser-session-prev [134217742] [134217744] [tab] [backtab] " " sesman-goto "o" sesman-show "t" sesman-browser-toggle-sort "S" "lb" sesman-browser-link-with-buffer "ld" sesman-browser-link-with-directory "lp" sesman-browser-link-with-project "u" sesman-browser-unlink "s" sesman-browser-map ""] 4) (#$ . 1648)) #@17 (fn PROP LAX) (defalias 'sesman-browser--closeby-pos #[514 "\300`\"\203 `\206eo\204\300`S\"\203`S\206e\211\205e\212\301`\"b\2051\300`\"\2051`)\212\302`\"b\205Jo?\205J\300`S\"\205J`S)\203b\211\203``Z`ZW\203^\207\207\207\211\266\202\207" [get-text-property next-single-char-property-change previous-single-char-property-change] 7 (#$ . 2689)]) #@17 (fn PROP LAX) (defalias 'sesman-browser--closeby-value #[514 "\300\"\211\205\f\301\"\207" [sesman-browser--closeby-pos get-text-property] 6 (#$ . 3066)]) #@227 Get value of the property WHAT at point. If NO-ERROR is non-nil, don't throw an error if no value has been found and return nil. If LAX is non-nil, search nearby and return the closest value. (fn WHAT &optional NO-ERROR LAX) (defalias 'sesman-browser-get #[769 "\300\301!\2054\302\267\202\303\202\304\202\305\202\306\307\"\262\2064?\2054\310\311\2032\312\2023\313#\207" [derived-mode-p sesman-browser-mode #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (session 12 link 16 object 20)) :sesman-session :sesman-link :sesman-object sesman-browser--closeby-value lax user-error "No %s %s" "nearby" "at point"] 7 (#$ . 3234)]) (defvar sesman-browser--section-overlay nil nil) (make-variable-buffer-local 'sesman-browser--section-overlay) (defvar sesman-browser--stop-overlay nil nil) (byte-code "\300\301!\210\302\303!\203\303\304\305\306\211\307%\210\306\207" [make-variable-buffer-local sesman-browser--stop-overlay fboundp define-fringe-bitmap sesman-left-bar [12] nil (top t)] 6) #@13 (fn PROP) (defalias 'sesman-browser--next #[257 "`\300`\"b\210\301`\"\204\300`\"b\210o\205\211b\207" [previous-single-char-property-change get-text-property] 5 (#$ . 4280)]) #@13 (fn PROP) (defalias 'sesman-browser--prev #[257 "`\300`\"b\210\301`\"\204\300`\"b\210m\205\211b\207" [next-single-char-property-change get-text-property] 5 (#$ . 4469)]) #@20 Go to next button. (defalias 'sesman-browser-forward #[0 "\300\301!\207" [sesman-browser--prev :sesman-stop] 2 (#$ . 4654) nil]) #@24 Go to previous button. (defalias 'sesman-browser-backward #[0 "\300\301!\207" [sesman-browser--next :sesman-stop] 2 (#$ . 4789) nil]) #@35 Go to next button section or row. (defalias 'sesman-browser-vertical-next #[0 "\300\301!\207" [sesman-browser--prev :sesman-vertical-stop] 2 (#$ . 4929) nil]) #@39 Go to previous button section or row. (defalias 'sesman-browser-vertical-prev #[0 "\300\301!\207" [sesman-browser--next :sesman-vertical-stop] 2 (#$ . 5094) nil]) #@21 Go to next session. (defalias 'sesman-browser-session-next #[0 "\300\301!\207" [sesman-browser--prev :sesman-session-stop] 2 (#$ . 5263) nil]) #@25 Go to previous session. (defalias 'sesman-browser-session-prev #[0 "\300\301!\207" [sesman-browser--next :sesman-session-stop] 2 (#$ . 5412) nil]) #@126 Go to most relevant buffer for session at point. If NO-SWITCH is non-nil, only display the buffer. (fn &optional NO-SWITCH) (defalias 'sesman-goto #[256 "\300`\301\"\211\203\302!\203\203\303!\207\304!\207\305\306!\307\310 \"\311\312\"\2063\311\313\"\314\302\"\262\211\203K\315\316\317\"\320 \"\203G\303!\207\304!\207\321\322@\"\207" [get-text-property :sesman-object bufferp display-buffer pop-to-buffer sesman-browser-get session sesman-session-info sesman--system plist-get :buffers :objects seq-filter seq-find make-closure #[257 "\211\300\235\207" [V0] 3 "\n\n(fn B)"] buffer-list user-error "Cannot jump to session %s; it doesn't contain any buffers"] 9 (#$ . 5566) "P"]) #@57 Show the most relevant buffer for the session at point. (defalias 'sesman-show #[0 "\300\301!\207" [sesman-goto no-switch] 2 (#$ . 6273) nil]) #@21 (fn &rest IGNORE) (defalias 'sesman-browser--sensor-function #[128 "\303`\304\"\203\303`S\304\"\203\305`\304\"\202`\206\306`\304\"\306`\304\"\307#\210 \205C\303`\310\"\303`\311\"\205A\211\205A\307\n#\266\202\207" [sesman-browser--stop-overlay window-system sesman-browser--section-overlay get-text-property :sesman-stop previous-single-char-property-change next-single-char-property-change move-overlay :sesman-fragment-beg :sesman-fragment-end] 9 (#$ . 6422)]) #@25 Quite session at point. (defalias 'sesman-browser-quit-session #[0 "\300\301\302!!\207" [sesman-quit sesman-browser-get session] 3 (#$ . 6909) nil]) #@27 Restart session at point. (defalias 'sesman-browser-restart-session #[0 "\300\301\302!!\207" [sesman-restart sesman-browser-get session] 3 (#$ . 7064) nil]) #@45 Ask for buffer to link session at point to. (defalias 'sesman-browser-link-with-buffer #[0 "\300\301!\302\303\"\207" [sesman-browser-get session sesman-link-with-buffer ask] 4 (#$ . 7227) nil]) #@48 Ask for directory to link session at point to. (defalias 'sesman-browser-link-with-directory #[0 "\300\301!\302\303\"\207" [sesman-browser-get session sesman-link-with-directory ask] 4 (#$ . 7428) nil]) #@46 Ask for project to link session at point to. (defalias 'sesman-browser-link-with-project #[0 "\300\301!\302\303\"\207" [sesman-browser-get session sesman-link-with-project ask] 4 (#$ . 7638) nil]) #@53 Unlink the link at point or ask for link to unlink. (defalias 'sesman-browser-unlink #[0 "\300\301\302\"\211\203\303!\266\2021\304\305 \300\306!\"\211\203(\307\303\310\311\312#\"\266\2021\313\314\300\306!@\"\266\315\316!\207" [sesman-browser-get link no-error sesman--unlink sesman-links sesman--system session mapc sesman--ask-for-link "Unlink: " ask-all user-error "No links for session %s" run-hooks sesman-post-command-hook] 8 (#$ . 7842) nil]) #@52 Refresh current browser buffer. (fn &rest IGNORE) (defalias 'sesman-browser-revert #[128 "`\300 \210\211d^b\207" [sesman-browser] 4 (#$ . 8307)]) #@50 Refresh all Sesman SYSTEM browsers. (fn SYSTEM) (defalias 'sesman-browser-revert-all #[257 "\300\301\302\"\303 \"\207" [mapc make-closure #[257 "r\211q\210\301\302!\205\300\303 =\205\304 )\207" [V0 derived-mode-p sesman-browser-mode sesman--system sesman-browser-revert] 3 "\n\n(fn B)"] buffer-list] 5 (#$ . 8460)]) #@19 (fn STOP-VALUE) (defalias 'sesman-browser--goto-stop #[257 "\300eb\210\211\205-\301`\302\"b\210m\203\303\262\301e\302\"b\210\202\304`\302\"\232\203\303\262\202\207" [t next-single-char-property-change :sesman-stop nil get-text-property] 5 (#$ . 8788)]) #@90 Toggle sorting of sessions. See `sesman-browser-sort-type' for the default sorting type. (defalias 'sesman-browser-toggle-sort #[0 " @=\203\n A \204\302\301!\210\303\301! \211A\242\304\305\306\307#\310 \210\311!\210\312 \266\313\314\315\316!\317\320#\"\207" [sesman-browser-sort-type sesman-browser--sort-types make-local-variable default-value sesman-browser-get :sesman-stop nil lax sesman-browser sesman-browser--goto-stop sesman-browser--sensor-function message "Sorted by %s" propertize symbol-name face bold] 6 (#$ . 9061) nil]) (defvar sesman-browser-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [sesman-browser-mode-hook variable-documentation put "Hook run after entering SesmanBrowser mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp sesman-browser-mode-map definition-name sesman-browser-mode] 4) (defvar sesman-browser-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" [sesman-browser-mode-abbrev-table sesman-browser-mode-map variable-documentation put purecopy "Keymap for `sesman-browser-mode'." boundp sesman-browser-mode-syntax-table definition-name sesman-browser-mode (lambda (def-tmp-var) (defvar sesman-browser-mode-syntax-table def-tmp-var)) make-syntax-table "Syntax table for `sesman-browser-mode'." (lambda (def-tmp-var) (defvar sesman-browser-mode-abbrev-table def-tmp-var)) define-abbrev-table nil "Abbrev table for `sesman-browser-mode'." derived-mode-parent special-mode] 5) #@347 Interactive view of Sesman sessions. When applicable, system specific commands are locally bound to j when point is on a session object. In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `sesman-browser-mode-hook', as the final or penultimate step during initialization. \{sesman-browser-mode-map} (defalias 'sesman-browser-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 1=\204R\326 \3251C#\210\327 !\210\330\f!\210 1\331 \210\332 \210\306\333!\210\334``\"\335\336\337#\210\306\340!\210\334``\" 2\203\221\341\342\343\344#\335 \345#\266\346\347\350\351\307$\210\306\352!\210\353*\306\354!\210\355\354!,\306\356!\210\350.)\357\360!\207" [delay-mode-hooks major-mode mode-name sesman-browser-mode-map sesman-browser-mode-syntax-table sesman-browser-mode-abbrev-table make-local-variable t special-mode sesman-browser-mode "SesmanBrowser" 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 sesman--system delete-all-overlays sesman-browser--stop-overlay make-overlay overlay-put face sesman-browser-highligh-face sesman-browser--section-overlay (left-fringe sesman-left-bar sesman-browser-highligh-face) propertize "|" display line-prefix add-hook sesman-post-command-hook sesman-browser-revert nil display-buffer-base-action (nil (inhibit-same-window . t)) sesman-browser--sort-types default-value revert-buffer-function run-mode-hooks sesman-browser-mode-hook local-abbrev-table window-system] 6 (#$ . 10893) nil]) #@21 (fn SYSTEM SES I) (defalias 'sesman-browser--insert-session #[771 "@\301\302\211`\262\303\304\"c\210\305@\306\307\310\311\310\312\313\314\315C\316\317& \320\261\210\303\301\321\"c\210\322\"\302\211\203\220\211@\211@A\211\203\207\211@iV\203W\320\303 \323\"\261\210\302\262\324\325!!\305\326\327#\306@\307 ?\205p\310\211\262 \330\314\315C\316\317& c\266\331c\210A\266\202\202?\266A\266\202\2025\266\320c\210\303\301\332\"c\210\333\"\334\335\"\334\336\"\334\337\"\206\264\340\341\"\342\343#\344\345\"\302\211\203 \211@iV\203\327\320\303 \323\"\261\210\302\262\346 \347A\302\310%\305\306\307?\205\357\310\211\262\n\350@\314\315C\312\327\316\317\351\352\353&\331\261\266A\266\202\202\277\266`\262\354\355 $\210\354\356$\210\354\357$\210\354\360$\210\361c\207" [fill-column "%17s" nil format "%3d: " propertize :sesman-stop :sesman-vertical-stop t :sesman-session-stop face bold cursor-sensor-functions sesman-browser--sensor-function mouse-face highlight "\n" "linked-to: " sesman-grouped-links " " sesman--abbrev-path-maybe sesman--lnk-value sesman--format-context sesman-browser-button-face :sesman-link " " "objects: " sesman-session-info plist-get :map :objects :strings mapcar #[257 "\300\301\"\207" [format "%s"] 4 "\n\n(fn X)"] seq-mapn cons seq-sort #[514 "AA\231\207" [] 4 "\n\n(fn A B)"] replace-regexp-in-string "%s" :sesman-object help-echo "mouse-2: visit in other window" keymap put-text-property :sesman-session :sesman-session-name :sesman-fragment-beg :sesman-fragment-end "\n\n"] 35 (#$ . 12682)]) #@85 Display an interactive session browser. See `sesman-browser-mode' for more details. (defalias 'sesman-browser #[0 "\303 \304\305!\306!\205\307\310!\311\312\313\"!r\211q\210\314\300!\210\315 \210\316\317!\210\320 \321\267\202=\322\323\"\202@\324\"\202@\325\326!\327\330 \210\331c\210\332\312\333\n\"\334\335#c\210\336c\210\211\203p\211@T\262\337\n#\210A\266\202\202X\210\203\340!\210\341@!\210\342 )\266\203)\207" [sesman-system sesman-browser-sort-type inhibit-read-only sesman--system called-interactively-p any sesman-sessions sesman-current-session CIDER get-buffer-create format "*sesman %s browser*" make-local-variable sesman-browser-mode cursor-sensor-mode 1 t #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (name 46 relevance 53)) seq-sort #[514 "\300@@\"\207" [string-greaterp] 5 "\n\n(fn A B)"] sesman--sort-sessions error "Invalid `sesman-browser-sort-type'" 0 erase-buffer "\n " propertize "%s Sessions:" face (bold font-lock-keyword-face) "\n\n" sesman-browser--insert-session pop-to-buffer sesman-browser--goto-stop sesman-browser--sensor-function] 14 (#$ . 14292) nil]) (provide 'sesman-browser)