;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\306\307\310\311\312\313%\210\306\314\310\315\312\307\312\316&\210\317\320\321\322\312\314%\210\317\323\324\325\312\314%\207" [require dash bui-core bui-entry bui-button bui-utils custom-declare-group bui-info nil "Settings for 'bui-info' buffers." :group bui bui-info-faces "Faces for 'bui-info' buffers." bui-faces custom-declare-face bui-info-heading ((((type tty pc) (class color)) :weight bold) (t :inherit variable-pitch :height 1.2 :weight bold)) "Face for headings." bui-info-param-title ((t :inherit font-lock-type-face)) "Face used for titles of parameters."] 8) #@1151 List of methods for inserting entries. Each METHOD should be either nil, a function or a list. If METHOD is nil, newline is inserted at point. If METHOD is a function, it is called with an entry as argument. If METHOD is a list, it should have the following form: (PARAM INSERT-TITLE INSERT-VALUE) PARAM is a name of the entry parameter. INSERT-TITLE may be either a symbol or a list. If it is a symbol, it should be a function or an alias from `bui-info-title-aliases', in which case it is called with title as argument. If it is a list, it should have a form (FUN-OR-ALIAS [ARGS ...]), in which case FUN-OR-ALIAS is called with title and ARGS as arguments. INSERT-VALUE may be either a symbol or a list. If it is a symbol, it should be a function or an alias from `bui-info-value-aliases', in which case it is called with value and entry as arguments. If it is a list, it should have a form (FUN-OR-ALIAS [ARGS ...]), in which case FUN-OR-ALIAS is called with value and ARGS as arguments. After inserting title/value with such a list METHOD, a new line is inserted. Parameters are inserted in the same order as defined by this list. (defvar bui-info-format nil (#$ . 740)) (byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\210\300\305\302\303#\210\304\316\306\307\317DD\320\312\313\314\315&\210\300\316\302\303#\210\304\321\306\307\322DD\323\312\313\314\315&\210\300\321\302\303#\210\304\324\306\307\325DD\326\312\327\314\315&\210\300\324\302\303#\210\304\330\306\307\331DD\332\312\327\314\315&\210\300\330\302\303#\210\304\333\306\307\334DD\335\312\327\314\315&\210\300\333\302\303#\207" [put bui-info-format permanent-local t custom-declare-variable bui-info-ignore-empty-values funcall function #[0 "\300\207" [nil] 1] "If non-nil, do not display non-boolean parameters with nil values." :type boolean :group bui-info bui-info-ignore-void-values #[0 "\300\207" [t] 1] "If non-nil, do not display non-existing parameters." bui-info-fill #[0 "\300\207" [t] 1] "If non-nil, fill string parameters to fit the window.\nIf nil, insert text parameters in a raw form." bui-info-param-title-format #[0 "\300\207" [#1="%-18s: "] 1 #1#] "String used to format a title of a parameter.\nIt should be a '%s'-sequence. After inserting a title formatted\nwith this string, a value of the parameter is inserted.\nThis string is used by `bui-info-insert-title-format'." string bui-info-multiline-prefix #[0 "\301\302\303\"G\304\"\207" [bui-info-param-title-format make-string format " " 32] 4] "String used to format multi-line parameter values.\nIf a value occupies more than one line, this string is inserted\nin the beginning of each line after the first one.\nThis string is used by `bui-info-insert-value-format'." bui-info-delimiter #[0 "\300\207" [#2="\n\f\n"] 1 #2#] "String used to separate entries."] 8) #@94 Specifications for generating 'info' variables. See `bui-symbol-specifications' for details. (defconst bui-info-symbol-specifications '((:delimiter delimiter t) (:fill fill t) (:format format always) (:ignore-empty-values ignore-empty-values t) (:ignore-void-values ignore-void-values t) (:multiline-prefix multiline-prefix t) (:title-format param-title-format t)) (#$ . 3597)) #@78 Return symbol for ENTRY-TYPE and 'info' buffer type. (fn ENTRY-TYPE SYMBOL) (defalias 'bui-info-symbol #[514 "\300\301#\207" [bui-symbol info] 6 (#$ . 3981)]) #@86 Return SYMBOL's value for ENTRY-TYPE and 'info' buffer type. (fn ENTRY-TYPE SYMBOL) (defalias 'bui-info-symbol-value #[514 "\300\301#\207" [bui-symbol-value info] 6 (#$ . 4149)]) #@73 Return a title of an ENTRY-TYPE parameter PARAM. (fn ENTRY-TYPE PARAM) (defalias 'bui-info-param-title #[514 "\300\301#\207" [bui-param-title info] 6 (#$ . 4337)]) #@55 Return 'info' format for ENTRY-TYPE. (fn ENTRY-TYPE) (defalias 'bui-info-format #[257 "\300\301\"\207" [bui-info-symbol-value format] 4 (#$ . 4510)]) #@83 Return a list of ENTRY-TYPE parameters that should be displayed. (fn ENTRY-TYPE) (defalias 'bui-info-displayed-params #[257 "\300\301\302\303!\"!\207" [-non-nil mapcar #[257 "\211:\205 \211\242\211\211\262\262\207" [] 4 "\n\n(fn IT)"] bui-info-format] 6 (#$ . 4668)]) #@50 Alist of aliases and functions to insert titles. (defvar bui-info-title-aliases '((format . bui-info-insert-title-format) (simple . bui-info-insert-title-simple)) (#$ . 4947)) #@50 Alist of aliases and functions to insert values. (defvar bui-info-value-aliases '((format . bui-info-insert-value-format) (indent . bui-info-insert-value-indent) (simple . bui-info-insert-value-simple) (time . bui-info-insert-time)) (#$ . 5129)) #@76 Convert FUN-OR-ALIAS into a function to insert a title. (fn FUN-OR-ALIAS) (defalias 'bui-info-title-function #[257 "\301\"\206\211\207" [bui-info-title-aliases bui-assq-value] 4 (#$ . 5381)]) #@76 Convert FUN-OR-ALIAS into a function to insert a value. (fn FUN-OR-ALIAS) (defalias 'bui-info-value-function #[257 "\301\"\206\211\207" [bui-info-value-aliases bui-assq-value] 4 (#$ . 5584)]) #@70 Convert title METHOD into a function to insert a title. (fn METHOD) (defalias 'bui-info-title-method->function #[257 "\211\204\300\207\2119\203\301!\207\211:\203 \211\242\243\302\303#\207\304\305\"\207" [ignore bui-info-title-function make-closure #[257 "\302\303\300!\301#\207" [V0 V1 apply bui-info-title-function] 5 "\n\n(fn TITLE)"] error "Unknown title method '%S'"] 9 (#$ . 5787)]) #@70 Convert value METHOD into a function to insert a value. (fn METHOD) (defalias 'bui-info-value-method->function #[257 "\211\204\300\207\301!\203 \207\211:\203\211\242\243\302\303#\207\304\305\"\207" [ignore functionp make-closure #[514 "\302\303\300!\301#\207" [V0 V1 apply bui-info-value-function] 6 "\n\n(fn VALUE _)"] error "Unknown value method '%S'"] 9 (#$ . 6195)]) #@81 Display ENTRY-TYPE ENTRIES in the current info buffer. (fn ENTRIES ENTRY-TYPE) (defalias 'bui-info-insert-entries #[514 "\301\302\303\"#\210\304 \207" [bui-info-delimiter bui-mapinsert make-closure #[257 "\301\300\"\207" [V0 bui-info-insert-entry] 4 "\n\n(fn ENTRY)"] bui-history-insert-buttons] 6 (#$ . 6586)]) #@190 Insert ENTRY-TYPE ENTRY into the current info buffer. If INDENT-LEVEL is non-nil, indent displayed data by this number of `bui-indent' spaces. (fn ENTRY ENTRY-TYPE &optional INDENT-LEVEL) (defalias 'bui-info-insert-entry #[770 "`\206\301_\302!\211\203 \211@\303#\210A\266\202\202 \210\211\301U?\205-\304`#\207" [bui-indent 0 bui-info-format bui-info-insert-entry-unit indent-rigidly] 11 (#$ . 6910)]) #@160 Insert title and value of a PARAM at point. ENTRY is alist with parameters and their values. ENTRY-TYPE is a type of ENTRY. (fn FORMAT-SPEC ENTRY ENTRY-TYPE) (defalias 'bui-info-insert-entry-unit #[771 "\204\304 \207\305!\203!\207:\203\242\242\243\211:\203\234\211\242\243\211:\203\226\211\242\243\211\204\220\306 \"\307!?\310 \311#\203L\206V \205V\205V\211??\205\217\312\"\313!\314!!\210\203v\nc\210\202\213\203\204\203\204 c\210\202\213\211\"\210\304 \266\203\207\315\316\n\"\207\315\316\"\207\315\316\"\207\315\316\"\207" [bui-info-ignore-void-values bui-info-ignore-empty-values bui-empty-string bui-false-string bui-newline functionp bui-entry-value bui-void-value\? bui-boolean-param\? info bui-info-param-title bui-info-title-method->function bui-info-value-method->function error "Unknown format specification '%S'"] 22 (#$ . 7335)]) #@106 Insert "TITLE: " string at point. If FACE is nil, use `bui-info-param-title'. (fn TITLE &optional FACE) (defalias 'bui-info-insert-title-simple #[513 "\300\206\301\302#\207" [bui-format-insert bui-info-param-title "%s: "] 6 (#$ . 8248)]) #@131 Insert TITLE using `bui-info-param-title-format' at point. If FACE is nil, use `bui-info-param-title'. (fn TITLE &optional FACE) (defalias 'bui-info-insert-title-format #[513 "\301\206\302#\207" [bui-info-param-title-format bui-format-insert bui-info-param-title] 6 (#$ . 8498)]) #@439 Format and insert parameter VALUE at point. VALUE may be split into several short lines to fit the current window, depending on `bui-info-fill', and each line is indented with INDENT number of spaces. If BUTTON-OR-FACE is a button type symbol, transform VALUE into this (these) button(s) and insert each one on a new line. If it is a face symbol, propertize inserted line(s) with this face. (fn VALUE &optional BUTTON-OR-FACE INDENT) (defalias 'bui-info-insert-value-simple #[769 "\211\204\301\262`\302!\211?\205\206;\205??\205&\303 Z\2039\2039\304\305#\202;\306\305$\266\211\301U?\205O\307`#\207" [bui-info-fill 0 bui-button-type\? bui-fill-column bui-buttonize "\n" bui-split-insert indent-rigidly] 14 (#$ . 8791)]) #@402 Format and insert parameter VALUE at point. This function is intended to be called after inserting a title with `bui-info-insert-title-simple'. VALUE may be split into several short lines to fit the current window, depending on `bui-info-fill', and each line is indented with `bui-indent'. For the meaning of BUTTON-OR-FACE, see `bui-info-insert-value-simple'. (fn VALUE &optional BUTTON-OR-FACE) (defalias 'bui-info-insert-value-indent #[513 "\203\301 \210\302#\207" [bui-indent bui-newline bui-info-insert-value-simple] 6 (#$ . 9557)]) #@670 Format and insert parameter VALUE at point. This function is intended to be called after inserting a title with `bui-info-insert-title-format'. VALUE may be split into several short lines to fit the current window, depending on `bui-info-fill' and `bui-info-multiline-prefix'. If VALUE is a list, its elements will be separated with `bui-list-separator'. If BUTTON-OR-FACE is a button type symbol, transform VALUE into this (these) button(s). If it is a face symbol, propertize inserted line(s) with this face. BUTTON-PROPERTIES are passed to `bui-buttonize' (only if BUTTON-OR-FACE is a button type). (fn VALUE &optional BUTTON-OR-FACE &rest BUTTON-PROPERTIES) (defalias 'bui-info-insert-value-format #[641 "\303!\211?\205 \204\204;?\205\304 GZ\2031\2031\305\306\n%\2022\307\310 P$\207" [bui-info-fill bui-info-multiline-prefix bui-list-separator bui-button-type\? bui-fill-column apply bui-buttonize bui-split-insert "\n"] 13 (#$ . 10112)]) #@128 Insert formatted time string using TIME at point. See `bui-get-time-string' for the meaning of TIME. (fn TIME &optional FACE) (defalias 'bui-info-insert-time #[513 "\300\301!\206 \302\"\207" [bui-format-insert bui-get-time-string bui-time] 5 (#$ . 11097)]) #@37 Keymap for `bui-info-mode' buffers. (defvar bui-info-mode-map (byte-code "\303 \304\305 D\n\"\"\210\207" [bui-map button-buffer-map special-mode-map make-sparse-keymap set-keymap-parent make-composed-keymap] 6) (#$ . 11364)) (defvar bui-info-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [bui-info-mode-hook variable-documentation put "Hook run after entering BUI-Info mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp bui-info-mode-map definition-name bui-info-mode] 4) (defvar bui-info-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" [bui-info-mode-abbrev-table bui-info-mode-map variable-documentation put purecopy "Keymap for `bui-info-mode'." boundp bui-info-mode-syntax-table definition-name bui-info-mode (lambda (#1=#:def-tmp-var) (defvar bui-info-mode-syntax-table #1#)) make-syntax-table "Syntax table for `bui-info-mode'." (lambda (#1#) (defvar bui-info-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `bui-info-mode'." derived-mode-parent special-mode] 5) #@246 Parent mode for displaying data in 'info' form. In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `bui-info-mode-hook', as the final or penultimate step during initialization. \{bui-info-mode-map} (defalias 'bui-info-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 \325C#\210\327 !\210\330\f!\210 \331 \210)\332\333!\207" [delay-mode-hooks major-mode mode-name bui-info-mode-map bui-info-mode-syntax-table bui-info-mode-abbrev-table make-local-variable t special-mode bui-info-mode "BUI-Info" 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 bui-info-initialize run-mode-hooks bui-info-mode-hook local-abbrev-table] 5 (#$ . 12769) nil]) #@35 Set up the current 'info' buffer. (defalias 'bui-info-initialize #[0 "\301\211\207" [font-lock-defaults (nil t)] 2 (#$ . 13783)]) (provide 'bui-info)