;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\302\303\304\305\306\307%\210\310\311\312\313#\210\310\314\315\316#\210\310\317\320\321#\210\310\322\323\324#\210\310\325\326\327#\207" [require seq custom-declare-group tab-bar-echo-area nil "Display tabs of the tab bar in the echo area." :group tab-bar custom-declare-face tab-bar-echo-area-tab ((t :inverse-video t)) "Tab bar echo area face for selected tab." tab-bar-echo-area-tab-inactive ((t)) "Tab bar echo area face for non-selected tab." tab-bar-echo-area-tab-ungrouped ((t :inherit shadow)) "Tab bar echo area face for ungrouped tab when tab groups are used." tab-bar-echo-area-tab-group-current ((t :inherit (underline bold))) "Tab bar echo area face for current group tab." tab-bar-echo-area-tab-group-inactive ((t :inherit underline)) "Tab bar echo area face for inactive group tab."] 6) #@65 List of functions after which to display tabs in the echo area. (defvar tab-bar-echo-area-trigger-display-functions '(tab-bar-close-tab tab-bar-move-tab-to tab-bar-new-tab-to tab-bar-rename-tab tab-bar-select-tab display-buffer-in-new-tab tab-bar-change-tab-group) (#$ . 913)) #@574 List of functions to call to style a tab's name for display. Each function is expected to take NAME, TYPE, TAB, INDEX and COUNT as arguments, and to return a copy of the name that was further styled for display. NAME is the partially styled tab's name as provided by the previous function in the list. In Emacs 27, TYPE is either 'tab or 'current-tab. In Emacs 28 and higher, it may also be 'group or 'current-group. TAB is the tab that the name belongs to. INDEX is the index of the tab within the list of displayed tabs. COUNT is the total number of displayed tabs. (defvar tab-bar-echo-area-style-tab-name-functions '(tab-bar-echo-area-remove-tab-name-properties tab-bar-echo-area-propertize-tab-name) (#$ . 1197)) #@193 List of functions to call to format a styled tab name for display. See `tab-bar-echo-area-style-tab-name-functions' for a list and a description of the arguments passed into these functions. (defvar tab-bar-echo-area-format-tab-name-functions '(tab-bar-echo-area-format-tab-name-for-joining) (#$ . 1927)) #@184 Optional customization of `tab-bar-format' in the context of the echo area. Note that `tab-bar-format' was introduced in Emacs 28 only. Setting this will have no effect in Emacs 27. (defvar tab-bar-echo-area-format nil (#$ . 2240)) #@433 Format string to use for rendering tab names in the echo area. If the value is a string, use it as the format string. If the value is a function, call it to generate the format string to use. The function is expected to take KEYMAP-ELEMENTS (the keymap elements that will be displayed) as an argument. The format string is expected to contain a single "%s", which will be substituted with the list of fully processed tab names. (defvar tab-bar-echo-area-display-tab-names-format-string "Tabs: %s" (#$ . 2480)) #@68 Function to make the keymap used as the source of tabs to display. (defvar tab-bar-echo-area-make-keymap-function 'tab-bar-echo-area-make-keymap (#$ . 3000)) #@56 Make a keymap to use as the source of tabs to display. (defalias 'tab-bar-echo-area-make-keymap #[0 "\302\211\303 *\207" [tab-bar-tab-hints tab-bar-close-button-show nil tab-bar-make-keymap] 2 (#$ . 3164)]) #@659 Regex to detect relevant tab bar keymap elements by their type. The Regex must provide at least two match groups. The first match group must match the actual type (without the index part) of a relevant tab bar keymap element. By default, that is 'tab and 'current-tab in Emacs 27 and additionally, 'group in Emacs 28 and higher. The second match group must match the index of the element in the keymap, if any. For example, a keymap element with a type of 'tab-4 should match 'tab' and '4'. Only match types of keymap elements that you want to be fed into `tab-bar-echo-area-style-tab-name-functions' and `tab-bar-echo-area-format-tab-name-functions'. (defvar tab-bar-echo-area--keymap-element-type-regex "^\\(group\\|\\(?:current-\\)?tab\\)\\(?:-\\([[:digit:]]+\\)\\)?$" (#$ . 3380)) #@181 Extract the actual type of KEYMAP-ELEMENT. Returns either 'tab or 'current-tab in Emacs 27 and additionally, 'group or 'current-group in Emacs 28 and higher. (fn KEYMAP-ELEMENT) (defalias 'tab-bar-echo-area--keymap-element-type #[257 "\301@!\211\205\302\"\205\303\304\305\"!\211\205AA@\211\2054\306=\2033\211\307\306\310 \"\230\2033\311\207\207" [tab-bar-echo-area--keymap-element-type-regex symbol-name string-match intern match-string 1 group alist-get tab-bar--current-tab current-group] 8 (#$ . 4178)]) #@288 Find the tab that KEYMAP-ELEMENT relates to. In Emacs 28 and higher, for keymap elements that denote tab groups (that is, keymap elements that have a type of 'group-*), return the first tab in the group. If the keymap element does not relate to a tab, return nil. (fn KEYMAP-ELEMENT) (defalias 'tab-bar-echo-area--keymap-element-tab #[257 "\211@\211\302=\203 \303 \207\304!\305\"\210\306\307\"\310\235\205&\311\306\312\"!S 8\207" [tab-bar-echo-area--keymap-element-type-regex tab-bar-tabs-function current-tab tab-bar--current-tab symbol-name string-match match-string 1 ("tab" "group") string-to-number 2] 7 (#$ . 4710)]) #@71 Remove all text properties from NAME. (fn NAME TYPE TAB INDEX COUNT) (defalias 'tab-bar-echo-area-remove-tab-name-properties #[1285 "\300!\207" [substring-no-properties] 7 (#$ . 5350)]) #@76 Propertize NAME according to TYPE and TAB. (fn NAME TYPE TAB INDEX COUNT) (defalias 'tab-bar-echo-area-propertize-tab-name #[1285 "\260\300\267\202$\301\202%\302\303\"\203\304\202%\305\202%\306\202%\307\202%\310\311\312G\313%\210\207" [#s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (current-tab 9 tab 13 current-group 28 group 32)) tab-bar-echo-area-tab alist-get group tab-bar-echo-area-tab-inactive tab-bar-echo-area-tab-ungrouped tab-bar-echo-area-tab-group-current tab-bar-echo-area-tab-group-inactive nil font-lock-append-text-property 0 face] 13 (#$ . 5544)]) #@81 Format NAME according to TYPE, INDEX and COUNT. (fn NAME TYPE TAB INDEX COUNT) (defalias 'tab-bar-echo-area-format-tab-name-for-joining #[1285 "\300\301=\203 \302\202S=\203\303\202\304\"\207" [format current-group "%s " "%s" "%s, "] 8 (#$ . 6173)]) #@84 Process NAME according to TYPE, TAB, INDEX, COUNT. (fn NAME TYPE TAB INDEX COUNT) (defalias 'tab-bar-echo-area--process-tab-name #[1285 "\302\303\304%\305 \"#\207" [tab-bar-echo-area-style-tab-name-functions tab-bar-echo-area-format-tab-name-functions seq-reduce make-closure #[514 "\211\300\301\302\303%\207" [V0 V1 V2 V3] 8 "\n\n(fn NAME F)"] append] 12 (#$ . 6441)]) #@118 Generate a list of fully processed tab names for KEYMAP-ELEMENTS for display in the echo area. (fn KEYMAP-ELEMENTS) (defalias 'tab-bar-echo-area--processed-tab-names #[257 "\211G\300\301\302\"\"\207" [seq-map-indexed make-closure #[514 "\301AA@\302!\303!\300%\207" [V0 tab-bar-echo-area--process-tab-name tab-bar-echo-area--keymap-element-type tab-bar-echo-area--keymap-element-tab] 8 "\n\n(fn KEYMAP-ELEMENT INDEX)"]] 6 (#$ . 6831)]) #@37 Display tab names in the echo area. (defalias 'tab-bar-echo-area-display-tab-names #[0 "\206 \304\301!\205 \n \305\306A\"\307!\211\2050\310 !\203& !\2020 ;\203/ \2020\311\211\205@\312\313\314\315#\266\202\"\266\202)\207" [tab-bar-echo-area-format tab-bar-format tab-bar-echo-area-make-keymap-function tab-bar-echo-area-display-tab-names-format-string boundp seq-filter tab-bar-echo-area--keymap-element-type tab-bar-echo-area--processed-tab-names functionp "%s" message nil mapconcat identity] 12 (#$ . 7279) nil]) (defalias 'tab-bar-echo-area-print-tab-names 'tab-bar-echo-area-display-tab-names) #@50 Display the current tab's name in the echo area. (defalias 'tab-bar-echo-area-display-tab-name #[0 "\301 A\236\302AA@\303!\304!\305\306%\307\310\"\207" [tab-bar-echo-area-make-keymap-function current-tab tab-bar-echo-area--process-tab-name tab-bar-echo-area--keymap-element-type tab-bar-echo-area--keymap-element-tab 0 1 message "Current Tab: %s"] 7 (#$ . 7901) nil]) (defalias 'tab-bar-echo-area-print-tab-name 'tab-bar-echo-area-display-tab-name) #@93 Call ORIG-FUN with ARGS, then display tab names in the echo area. (fn ORIG-FUN &rest ARGS) (defalias 'tab-bar-echo-area-display-tab-names-advice #[385 "\300\"\301 \210\207" [apply tab-bar-echo-area-display-tab-names] 5 (#$ . 8361)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315& \207" [custom-declare-variable tab-bar-echo-area-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Tab-Bar-Echo-Area mode is enabled.\nSee the `tab-bar-echo-area-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `tab-bar-echo-area-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean :group tab-bar] 12) #@694 Alternative to function `tab-bar-mode': display tab names in the echo area after tab bar-related functions. This is a minor mode. If called interactively, toggle the `Tab-Bar-Echo-Area 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 'tab-bar-echo-area-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'tab-bar-echo-area-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 \210\314\315\305\303!\203G\316\202H\317\"\210\320\321!\203p\322\303!\210\301 \203`\211\301 \232\203p\323\324\305\303!\203l\325\202m\326\327#\210\210\330 \210\305\303!\207" [global-minor-modes current-message set-default tab-bar-echo-area-mode toggle default-value 1 nil t boundp delq tab-bar-echo-area-apply-display-tab-names-advice run-hooks tab-bar-echo-area-mode-hook tab-bar-echo-area-mode-on-hook tab-bar-echo-area-mode-off-hook called-interactively-p any customize-mark-as-set message "Tab-Bar-Echo-Area mode %sabled%s" "en" "dis" "" force-mode-line-update] 6 (#$ . 9163) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar tab-bar-echo-area-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\310\313\300!\205#\310\211%\207" [tab-bar-echo-area-mode-map tab-bar-echo-area-mode-hook variable-documentation put "Hook run after entering or leaving `tab-bar-echo-area-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 tab-bar-echo-area-mode boundp] 6) #@91 Add or remove advice to display tab names according to variable `tab-bar-echo-area-mode'. (defalias 'tab-bar-echo-area-apply-display-tab-names-advice #[0 "\211\205 \211@ \203\302\303\304#\210\202\305\304\"\210A\266\202\202\207" [tab-bar-echo-area-trigger-display-functions tab-bar-echo-area-mode advice-add :around tab-bar-echo-area-display-tab-names-advice advice-remove] 6 (#$ . 11257)]) (provide 'tab-bar-echo-area)