diff options
| author | Eli Zaretskii | 2024-09-07 06:25:15 -0400 |
|---|---|---|
| committer | Eli Zaretskii | 2024-09-07 06:25:15 -0400 |
| commit | 6dcd3d24045113fb0afec0d7f43e322c9baa06ab (patch) | |
| tree | 4c14a10f8c558b2086c53ae822109c7da127078e | |
| parent | 358208dfaa374cc71c4a1c081c2d5bff9127c55a (diff) | |
| parent | b420e149b1ebc41dd183ab460930d78321e2e339 (diff) | |
| download | emacs-6dcd3d24045113fb0afec0d7f43e322c9baa06ab.tar.gz emacs-6dcd3d24045113fb0afec0d7f43e322c9baa06ab.zip | |
Merge from origin/emacs-30
b420e149b1e Fix a typo in ediff-init.el
e1304e9b1bb Fix 'chart-space-usage' on MS-Windows
04c44405bf6 Fix alignment and documentation of vtable.el
4d6fadb8d21 ; * lisp/which-key.el: Fix ':package-version' (bug#73072).
54071b9cef2 ; Improve doc strings of 'tab-bar-mode' and 'tab-line-mode'
87a8b12a0c4 Fix test failure in erc-networks-tests
dad0935cfcb ; * doc/emacs/building.texi (Lisp Libraries): Update (bug...
e4dc6711b02 Fix :hook in 'use-package'
c1cd036d27a ; * doc/lispref/modes.texi (Mode Line Data): Fox wording.
ae2463796f2 ; Caveats about using :eval in 'mode-line-format'
4047072c7d8 Update FSF's address
24f12bdd77e Support the new option in ruby-ts-mode too
6c15b7710d4 Add new option ruby-bracketed-args-indent
7799ef43354 Fix Rmail base64 and qp decoding of MIME payloads
0def396fa8f Update to Org 9.7.11
8c044bd9726 ; Fix recent changes in documentation
e0d8879bcd5 * test/lisp/emacs-lisp/tabulated-list-tests.el: Add missi...
4ff4b78f922 ; Small doc fixes
da980ad838e ; Reword some "allows Xing"
2ca7d5649c6 ; More accurate text about how `equal` compares various o...
# Conflicts:
# etc/NEWS
42 files changed, 407 insertions, 179 deletions
diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi index 97110dc8cdb..f64dd104f60 100644 --- a/doc/emacs/anti.texi +++ b/doc/emacs/anti.texi | |||
| @@ -71,7 +71,7 @@ tool bars on the bottom. For the same reasons @code{modifier-bar-mode} | |||
| 71 | is now gone. | 71 | is now gone. |
| 72 | 72 | ||
| 73 | @item | 73 | @item |
| 74 | The command @code{recover-file} no longer allows displaying the diffs | 74 | The command @code{recover-file} no longer lets you display the diffs |
| 75 | between a file and its auto-save file. You either want to recover a | 75 | between a file and its auto-save file. You either want to recover a |
| 76 | file or you don't; confusing users with a third alternative when they | 76 | file or you don't; confusing users with a third alternative when they |
| 77 | are anxious already by the possibility of losing precious edits is | 77 | are anxious already by the possibility of losing precious edits is |
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index 1b079c2cef9..bb03d8cf325 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi | |||
| @@ -1689,9 +1689,9 @@ command or function is invoked. For example: | |||
| 1689 | 1689 | ||
| 1690 | Note that installing a package using @code{package-install} | 1690 | Note that installing a package using @code{package-install} |
| 1691 | (@pxref{Package Installation}) takes care of placing the package's | 1691 | (@pxref{Package Installation}) takes care of placing the package's |
| 1692 | Lisp files in a directory where Emacs will find it, and also writes | 1692 | Lisp files in a directory where Emacs will find it, and also extends |
| 1693 | the necessary initialization code into your init files, making the | 1693 | @code{load-path} as needed, making the above manual customizations |
| 1694 | above manual customizations unnecessary. | 1694 | unnecessary for such packages. |
| 1695 | 1695 | ||
| 1696 | @node Lisp Eval | 1696 | @node Lisp Eval |
| 1697 | @section Evaluating Emacs Lisp Expressions | 1697 | @section Evaluating Emacs Lisp Expressions |
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index cf57350743f..88638190d7f 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi | |||
| @@ -816,9 +816,9 @@ Like the other commands in this section, this command operates on the | |||
| 816 | @findex dired-do-open | 816 | @findex dired-do-open |
| 817 | @kindex E @r{(Dired)} | 817 | @kindex E @r{(Dired)} |
| 818 | @item E | 818 | @item E |
| 819 | ``Open'' the specified files using an external program. The program is | 819 | ``Open'' the specified files using an external program (@code{dired-do-open}). |
| 820 | selected according to the system conventions, as determined by the | 820 | The program is selected according to the system conventions, as |
| 821 | variable @code{shell-command-guess-open}. | 821 | determined by the variable @code{shell-command-guess-open}. |
| 822 | 822 | ||
| 823 | @findex dired-do-rename | 823 | @findex dired-do-rename |
| 824 | @kindex R @r{(Dired)} | 824 | @kindex R @r{(Dired)} |
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi index fc22e8d7296..5932af301f9 100644 --- a/doc/emacs/emacs.texi +++ b/doc/emacs/emacs.texi | |||
| @@ -89,8 +89,8 @@ developing GNU and promoting software freedom.'' | |||
| 89 | 89 | ||
| 90 | @sp 2 | 90 | @sp 2 |
| 91 | Published by the Free Software Foundation @* | 91 | Published by the Free Software Foundation @* |
| 92 | 51 Franklin Street, Fifth Floor @* | 92 | 31 Milk Street, # 960789 @* |
| 93 | Boston, MA 02110-1301 USA @* | 93 | Boston, MA 02196 @* |
| 94 | ISBN 978-0-9831592-8-5 | 94 | ISBN 978-0-9831592-8-5 |
| 95 | 95 | ||
| 96 | @sp 2 | 96 | @sp 2 |
| @@ -1432,8 +1432,8 @@ If you need to contact the Free Software Foundation, see | |||
| 1432 | 1432 | ||
| 1433 | @display | 1433 | @display |
| 1434 | Free Software Foundation | 1434 | Free Software Foundation |
| 1435 | 51 Franklin Street, Fifth Floor | 1435 | 31 Milk Street # 960789 |
| 1436 | Boston, MA 02110-1301 | 1436 | Boston, MA 02196 |
| 1437 | USA | 1437 | USA |
| 1438 | @end display | 1438 | @end display |
| 1439 | 1439 | ||
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index 6b604412e88..8a13cabb837 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi | |||
| @@ -711,10 +711,11 @@ completions list buffer, and the second one will switch to it. | |||
| 711 | When the window showing the completions is selected, either because | 711 | When the window showing the completions is selected, either because |
| 712 | you customized @code{completion-auto-select} or because you switched to | 712 | you customized @code{completion-auto-select} or because you switched to |
| 713 | it by typing @kbd{C-x o}, the @kbd{@key{UP}} and @kbd{@key{DOWN}} arrow | 713 | it by typing @kbd{C-x o}, the @kbd{@key{UP}} and @kbd{@key{DOWN}} arrow |
| 714 | keys move by lines between completion candidates; with a prefix numeric | 714 | keys (@code{previous-line-completion} and @code{next-line-completion}, |
| 715 | argument, they move that many lines. If @code{completion-auto-wrap} is | 715 | respectively) move by lines between completion candidates; with a prefix |
| 716 | non-@code{nil}, these commands will wrap at bottom and top of the | 716 | numeric argument, they move that many lines. If |
| 717 | candidate list. | 717 | @code{completion-auto-wrap} is non-@code{nil}, these commands will wrap |
| 718 | at bottom and top of the candidate list. | ||
| 718 | 719 | ||
| 719 | @vindex completion-cycle-threshold | 720 | @vindex completion-cycle-threshold |
| 720 | If @code{completion-cycle-threshold} is non-@code{nil}, completion | 721 | If @code{completion-cycle-threshold} is non-@code{nil}, completion |
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index 3b863eefd72..42b57143bf1 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi | |||
| @@ -1430,7 +1430,7 @@ line shows how many manual pages are available. | |||
| 1430 | @vindex Man-prefer-synchronous-call | 1430 | @vindex Man-prefer-synchronous-call |
| 1431 | By default, @kbd{M-x man} calls the @code{man} program | 1431 | By default, @kbd{M-x man} calls the @code{man} program |
| 1432 | asynchronously. You can force the invocation to be synchronous by | 1432 | asynchronously. You can force the invocation to be synchronous by |
| 1433 | customizing @code{Man-prefer-synchronous-calls} to a non-@code{nil} | 1433 | customizing @code{Man-prefer-synchronous-call} to a non-@code{nil} |
| 1434 | value. | 1434 | value. |
| 1435 | 1435 | ||
| 1436 | @vindex Man-support-remote-systems | 1436 | @vindex Man-support-remote-systems |
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi index bc4dc31bf4c..49916235fbf 100644 --- a/doc/lispintro/emacs-lisp-intro.texi +++ b/doc/lispintro/emacs-lisp-intro.texi | |||
| @@ -125,8 +125,8 @@ Published by the:@* | |||
| 125 | GNU Press, @hfill @uref{https://www.fsf.org/licensing/gnu-press/}@* | 125 | GNU Press, @hfill @uref{https://www.fsf.org/licensing/gnu-press/}@* |
| 126 | a division of the @hfill email: @email{sales@@fsf.org}@* | 126 | a division of the @hfill email: @email{sales@@fsf.org}@* |
| 127 | Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* | 127 | Free Software Foundation, Inc. @hfill Tel: +1 (617) 542-5942@* |
| 128 | 51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@* | 128 | 31 Milk Street, # 960789 @hfill Fax: +1 (617) 542-2652@* |
| 129 | Boston, MA 02110-1301 USA | 129 | Boston, MA 02196 USA |
| 130 | @end iftex | 130 | @end iftex |
| 131 | 131 | ||
| 132 | @ifnottex | 132 | @ifnottex |
| @@ -136,8 +136,8 @@ Printed copies available from @uref{https://shop.fsf.org/}. Published by: | |||
| 136 | GNU Press, https://www.fsf.org/licensing/gnu-press/ | 136 | GNU Press, https://www.fsf.org/licensing/gnu-press/ |
| 137 | a division of the email: sales@@fsf.org | 137 | a division of the email: sales@@fsf.org |
| 138 | Free Software Foundation, Inc. Tel: +1 (617) 542-5942 | 138 | Free Software Foundation, Inc. Tel: +1 (617) 542-5942 |
| 139 | 51 Franklin Street, Fifth Floor Fax: +1 (617) 542-2652 | 139 | 31 Milk Street, # 960789 Fax: +1 (617) 542-2652 |
| 140 | Boston, MA 02110-1301 USA | 140 | Boston, MA 02196 USA |
| 141 | @end example | 141 | @end example |
| 142 | @end ifnottex | 142 | @end ifnottex |
| 143 | 143 | ||
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index f464bcfe94f..1ce89c6431f 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi | |||
| @@ -140,8 +140,8 @@ developing GNU and promoting software freedom.'' | |||
| 140 | 140 | ||
| 141 | @sp 2 | 141 | @sp 2 |
| 142 | Published by the Free Software Foundation @* | 142 | Published by the Free Software Foundation @* |
| 143 | 51 Franklin St, Fifth Floor @* | 143 | 31 Milk Street, # 960789 @* |
| 144 | Boston, MA 02110-1301 @* | 144 | Boston, MA 02196 @* |
| 145 | USA @* | 145 | USA @* |
| 146 | ISBN 1-882114-74-4 | 146 | ISBN 1-882114-74-4 |
| 147 | 147 | ||
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index 73ff170401e..f0b7fef30c7 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi | |||
| @@ -1910,8 +1910,8 @@ pairs. The following properties are supported: | |||
| 1910 | @item :category | 1910 | @item :category |
| 1911 | The value should be a symbol describing what kind of text the | 1911 | The value should be a symbol describing what kind of text the |
| 1912 | completion function is trying to complete. If the symbol matches one | 1912 | completion function is trying to complete. If the symbol matches one |
| 1913 | of the keys in @code{completion-category-overrides}, the usual | 1913 | of the keys in @code{completion-category-overrides} described above, |
| 1914 | completion behavior is overridden. @xref{Completion Variables}. | 1914 | the usual completion behavior is overridden. |
| 1915 | 1915 | ||
| 1916 | @item :annotation-function | 1916 | @item :annotation-function |
| 1917 | The value should be a function to add annotations in the completions | 1917 | The value should be a function to add annotations in the completions |
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 27b74a9d233..ddb6c4bf2fb 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi | |||
| @@ -2227,8 +2227,9 @@ construct.) | |||
| 2227 | @item (:eval @var{form}) | 2227 | @item (:eval @var{form}) |
| 2228 | A list whose first element is the symbol @code{:eval} says to evaluate | 2228 | A list whose first element is the symbol @code{:eval} says to evaluate |
| 2229 | @var{form}, and use the result as a string to display. Make sure this | 2229 | @var{form}, and use the result as a string to display. Make sure this |
| 2230 | evaluation cannot load any files, as doing so could cause infinite | 2230 | evaluation neither loads any files nor calls functions like |
| 2231 | recursion. | 2231 | @code{posn-at-point} or @code{window-in-direction}, which themselves |
| 2232 | evaluate the mode line, as doing so could cause infinite recursion. | ||
| 2232 | 2233 | ||
| 2233 | @item (:propertize @var{elt} @var{props}@dots{}) | 2234 | @item (:propertize @var{elt} @var{props}@dots{}) |
| 2234 | A list whose first element is the symbol @code{:propertize} says to | 2235 | A list whose first element is the symbol @code{:propertize} says to |
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index 399a1d169c2..34ea7cf4996 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi | |||
| @@ -2413,10 +2413,12 @@ the converse is not always true. | |||
| 2413 | @end group | 2413 | @end group |
| 2414 | @end example | 2414 | @end example |
| 2415 | 2415 | ||
| 2416 | The @code{equal} function recursively compares the contents of objects | 2416 | The @code{equal} function compares strings and bool-vectors by value. |
| 2417 | if they are integers, strings, markers, lists, cons cells, vectors, | 2417 | Numbers are compared by type and numeric value, using @code{eql}. |
| 2418 | bool-vectors, byte-code function objects, char-tables, records, or font | 2418 | Lists, cons cells, vectors, records, markers, char-tables, font objects, |
| 2419 | objects. | 2419 | and function objects (closures)@footnote{However, equality of distinct |
| 2420 | function objects cannot be guaranteed in general.} are compared | ||
| 2421 | recursively by using @code{equal} on their constituent parts. | ||
| 2420 | 2422 | ||
| 2421 | Comparison of strings is case-sensitive, but does not take account of | 2423 | Comparison of strings is case-sensitive, but does not take account of |
| 2422 | text properties---it compares only the characters in the strings. | 2424 | text properties---it compares only the characters in the strings. |
diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi index 37cfe264157..d813fc6b20e 100644 --- a/doc/lispref/positions.texi +++ b/doc/lispref/positions.texi | |||
| @@ -788,6 +788,14 @@ other kinds, such as words and string constants. | |||
| 788 | ---------- Buffer: foo ---------- | 788 | ---------- Buffer: foo ---------- |
| 789 | @end group | 789 | @end group |
| 790 | @end example | 790 | @end example |
| 791 | |||
| 792 | @vindex forward-sexp-function | ||
| 793 | @code{forward-sexp} calls the function that is the value of the variable | ||
| 794 | @code{forward-sexp-function}, if that is non-@code{nil}, to do the | ||
| 795 | actual work, passing it the same arguments as those with which the | ||
| 796 | command was called. Major modes can define their own functions for | ||
| 797 | moving over balanced expressions as appropriate for the mode, and set | ||
| 798 | this variable to that function. | ||
| 791 | @end deffn | 799 | @end deffn |
| 792 | 800 | ||
| 793 | @deffn Command backward-sexp &optional arg | 801 | @deffn Command backward-sexp &optional arg |
| @@ -898,7 +906,8 @@ If Emacs is compiled with tree-sitter, it can use the tree-sitter | |||
| 898 | parser information to move across syntax constructs. Since what | 906 | parser information to move across syntax constructs. Since what |
| 899 | exactly is considered a sexp varies between languages, a major mode | 907 | exactly is considered a sexp varies between languages, a major mode |
| 900 | should set @code{treesit-thing-settings} to determine that. Then | 908 | should set @code{treesit-thing-settings} to determine that. Then |
| 901 | the mode can get navigation-by-sexp functionality for free, by using | 909 | @code{forward-sexp-function} will be set to @code{treesit-forward-sexp}, |
| 910 | and the mode can get navigation-by-sexp functionality for free, by using | ||
| 902 | @code{forward-sexp} and @code{backward-sexp}(@pxref{Expressions, | 911 | @code{forward-sexp} and @code{backward-sexp}(@pxref{Expressions, |
| 903 | ,, emacs, The extensible self-documenting text editor}). | 912 | ,, emacs, The extensible self-documenting text editor}). |
| 904 | 913 | ||
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi index 521361250b8..c0e78966d45 100644 --- a/doc/misc/efaq.texi +++ b/doc/misc/efaq.texi | |||
| @@ -954,7 +954,7 @@ used. | |||
| 954 | @item | 954 | @item |
| 955 | New major modes based on the | 955 | New major modes based on the |
| 956 | @uref{https://tree-sitter.github.io/tree-sitter/, tree-sitter library} | 956 | @uref{https://tree-sitter.github.io/tree-sitter/, tree-sitter library} |
| 957 | library for editing Elixir, HTML, Lua, HEEx, and PHP. | 957 | library for editing Elixir, HEEx, HTML, Lua, and PHP. |
| 958 | 958 | ||
| 959 | @item | 959 | @item |
| 960 | Support for the EditorConfig standard has been added, an editor-neutral | 960 | Support for the EditorConfig standard has been added, an editor-neutral |
diff --git a/doc/misc/org.org b/doc/misc/org.org index dcc1ddc7f44..e595d0be195 100644 --- a/doc/misc/org.org +++ b/doc/misc/org.org | |||
| @@ -3788,8 +3788,8 @@ argument. | |||
| 3788 | 3788 | ||
| 3789 | With the above setting, you could link to a specific bug with | 3789 | With the above setting, you could link to a specific bug with |
| 3790 | =[[bugzilla:129]]=, search the web for =OrgMode= with =[[duckduckgo:OrgMode]]=, | 3790 | =[[bugzilla:129]]=, search the web for =OrgMode= with =[[duckduckgo:OrgMode]]=, |
| 3791 | show the map location of the Free Software Foundation =[[gmap:51 | 3791 | show the map location of the Free Software Foundation =[[omap:31 |
| 3792 | Franklin Street, Boston]]= or of Carsten office =[[omap:Science Park 904, | 3792 | Milk Street, Boston]]= or of Carsten's office =[[omap:Science Park 904, |
| 3793 | Amsterdam, The Netherlands]]= and find out what the Org author is doing | 3793 | Amsterdam, The Netherlands]]= and find out what the Org author is doing |
| 3794 | besides Emacs hacking with =[[ads:Dominik,C]]=. | 3794 | besides Emacs hacking with =[[ads:Dominik,C]]=. |
| 3795 | 3795 | ||
diff --git a/doc/misc/vtable.texi b/doc/misc/vtable.texi index 2e0adfb235a..795d7fad037 100644 --- a/doc/misc/vtable.texi +++ b/doc/misc/vtable.texi | |||
| @@ -337,7 +337,9 @@ width (in pixels), and @var{table} is the table. | |||
| 337 | @end defun | 337 | @end defun |
| 338 | 338 | ||
| 339 | @item align | 339 | @item align |
| 340 | Should be either @code{right} or @code{left}. | 340 | Should be either @code{right} or @code{left}. If not specified, |
| 341 | numerical values will be flushed to the right, and all other values will | ||
| 342 | be flushed to the left. | ||
| 341 | @end table | 343 | @end table |
| 342 | 344 | ||
| 343 | @item :getter | 345 | @item :getter |
| @@ -426,14 +428,19 @@ current line, they can use the @code{vtable-current-object} function | |||
| 426 | (@pxref{Interface Functions}) to determine what that object is. | 428 | (@pxref{Interface Functions}) to determine what that object is. |
| 427 | 429 | ||
| 428 | @item :separator-width | 430 | @item :separator-width |
| 429 | The width of the blank space between columns. | 431 | The width of the blank space between columns. If not specified, it |
| 432 | defaults to 1. | ||
| 430 | 433 | ||
| 431 | @item :divider-width | 434 | @item :divider-width |
| 432 | @itemx :divider | 435 | @itemx :divider |
| 433 | You can have a divider inserted between the columns. This can either | 436 | You can have a divider inserted between the columns. This can either be |
| 434 | be specified by using @code{:divider}, which should be a string to be | 437 | specified by using @code{:divider}, which should be a string to be |
| 435 | displayed between the columns, or @code{:divider-width}, which | 438 | displayed between the columns, or @code{:divider-width}, which specifies |
| 436 | specifies the width of the space to be used as the divider. | 439 | the width of the space to be used as the divider, in units of characters |
| 440 | of the face used to display the table. If not specified, | ||
| 441 | @code{:divider} defaults to @code{nil}, but specifying | ||
| 442 | @code{:divider-width} effectively sets the divider to a whitespace | ||
| 443 | string of that width. | ||
| 437 | 444 | ||
| 438 | @item :sort-by | 445 | @item :sort-by |
| 439 | This should be a list of tuples, and specifies how the table is to be | 446 | This should be a list of tuples, and specifies how the table is to be |
diff --git a/etc/NEWS.29 b/etc/NEWS.29 index bd893c04446..d213c4b8010 100644 --- a/etc/NEWS.29 +++ b/etc/NEWS.29 | |||
| @@ -2032,7 +2032,7 @@ The intention is that this command can be used to access a wide | |||
| 2032 | variety of version control system-specific functionality from VC | 2032 | variety of version control system-specific functionality from VC |
| 2033 | without complexifying either the VC command set or the backend API. | 2033 | without complexifying either the VC command set or the backend API. |
| 2034 | 2034 | ||
| 2035 | *** 'C-x v v' in a diffs buffer allows committing only some of the changes. | 2035 | *** 'C-x v v' in a diffs buffer lets you commit only some of the changes. |
| 2036 | This command is intended to allow you to commit only some of the | 2036 | This command is intended to allow you to commit only some of the |
| 2037 | changes you have in your working tree. Begin by creating a buffer | 2037 | changes you have in your working tree. Begin by creating a buffer |
| 2038 | with the changes against the last commit, e.g. with 'C-x v D' | 2038 | with the changes against the last commit, e.g. with 'C-x v D' |
| @@ -3529,8 +3529,8 @@ The variables 'connection-local-profile-alist' and | |||
| 3529 | make it more convenient to inspect and modify them. | 3529 | make it more convenient to inspect and modify them. |
| 3530 | 3530 | ||
| 3531 | *** New function 'connection-local-update-profile-variables'. | 3531 | *** New function 'connection-local-update-profile-variables'. |
| 3532 | This function allows modifying the settings of an existing | 3532 | You can use this to modify the settings of an existing connection-local |
| 3533 | connection-local profile. | 3533 | profile. |
| 3534 | 3534 | ||
| 3535 | *** New macro 'with-connection-local-application-variables'. | 3535 | *** New macro 'with-connection-local-application-variables'. |
| 3536 | This macro works like 'with-connection-local-variables', but it allows | 3536 | This macro works like 'with-connection-local-variables', but it allows |
| @@ -4046,8 +4046,8 @@ measured will be counted for the purpose of calculating the text | |||
| 4046 | dimensions. | 4046 | dimensions. |
| 4047 | 4047 | ||
| 4048 | ** 'window-text-pixel-size' understands a new meaning of FROM. | 4048 | ** 'window-text-pixel-size' understands a new meaning of FROM. |
| 4049 | Specifying a cons as the FROM argument allows starting the measurement | 4049 | The FROM argument can now be a cons, which means to start measuring text |
| 4050 | of text from a specified amount of pixels above or below a position. | 4050 | from a specified number of pixels above or below a position. |
| 4051 | 4051 | ||
| 4052 | ** 'window-body-width' and 'window-body-height' can use remapped faces. | 4052 | ** 'window-body-width' and 'window-body-height' can use remapped faces. |
| 4053 | Specifying 'remap' as the PIXELWISE argument now checks if the default | 4053 | Specifying 'remap' as the PIXELWISE argument now checks if the default |
diff --git a/etc/NEWS.30 b/etc/NEWS.30 index 0766900a495..a61bdc4a7f3 100644 --- a/etc/NEWS.30 +++ b/etc/NEWS.30 | |||
| @@ -380,11 +380,6 @@ It can be used to add, remove and reorder functions that change the | |||
| 380 | appearance of every tab on the tab bar. | 380 | appearance of every tab on the tab bar. |
| 381 | 381 | ||
| 382 | --- | 382 | --- |
| 383 | *** New user option 'tab-line-tabs-buffer-group-function'. | ||
| 384 | It provides two choices to group tab buffers by major mode and by | ||
| 385 | project name. | ||
| 386 | |||
| 387 | --- | ||
| 388 | *** New hook 'tab-bar-tab-post-select-functions'. | 383 | *** New hook 'tab-bar-tab-post-select-functions'. |
| 389 | 384 | ||
| 390 | --- | 385 | --- |
| @@ -401,7 +396,7 @@ you want to use these keys for the commands 'previous-buffer' and | |||
| 401 | 'next-buffer'. | 396 | 'next-buffer'. |
| 402 | 397 | ||
| 403 | --- | 398 | --- |
| 404 | *** Default list of tabs is changed to support a fixed order. | 399 | *** Default list of tab-line tabs is changed to support a fixed order. |
| 405 | This means that 'tab-line-tabs-fixed-window-buffers', the new default | 400 | This means that 'tab-line-tabs-fixed-window-buffers', the new default |
| 406 | tabs function, is like the previous 'tab-line-tabs-window-buffers' where | 401 | tabs function, is like the previous 'tab-line-tabs-window-buffers' where |
| 407 | both of them show only buffers that were previously displayed in the | 402 | both of them show only buffers that were previously displayed in the |
| @@ -411,7 +406,12 @@ these buffers. You can drag the tabs and release at a new position | |||
| 411 | to manually reorder the buffers on the tab line. | 406 | to manually reorder the buffers on the tab line. |
| 412 | 407 | ||
| 413 | --- | 408 | --- |
| 414 | *** Buffers on group tabs are now sorted alphabetically. | 409 | *** New user option 'tab-line-tabs-buffer-group-function'. |
| 410 | It provides two choices to group tab buffers by major mode and by | ||
| 411 | project name. | ||
| 412 | |||
| 413 | --- | ||
| 414 | *** Buffers on tab-line group tabs are now sorted alphabetically. | ||
| 415 | This will keep the fixed order of tabs, even after switching between | 415 | This will keep the fixed order of tabs, even after switching between |
| 416 | them. | 416 | them. |
| 417 | 417 | ||
| @@ -945,7 +945,7 @@ Customizing it to 'relativize' makes commands like 'project-find-file' | |||
| 945 | and 'project-find-dir' display previous history entries relative to | 945 | and 'project-find-dir' display previous history entries relative to |
| 946 | the current project. | 946 | the current project. |
| 947 | 947 | ||
| 948 | -- | 948 | --- |
| 949 | *** New user option 'project-key-prompt-style'. | 949 | *** New user option 'project-key-prompt-style'. |
| 950 | The look of the key prompt in the project switcher has been changed | 950 | The look of the key prompt in the project switcher has been changed |
| 951 | slightly. To get the previous one, set this option to 'brackets'. | 951 | slightly. To get the previous one, set this option to 'brackets'. |
| @@ -1102,7 +1102,7 @@ in size. | |||
| 1102 | 1102 | ||
| 1103 | +++ | 1103 | +++ |
| 1104 | *** 'dired-listing-switches' handles connection-local values if exist. | 1104 | *** 'dired-listing-switches' handles connection-local values if exist. |
| 1105 | This allows customizing different switches for different remote machines. | 1105 | This allows you to customize different switches for different remote machines. |
| 1106 | 1106 | ||
| 1107 | ** Ediff | 1107 | ** Ediff |
| 1108 | 1108 | ||
| @@ -1973,6 +1973,10 @@ By default it retains the previous behavior: read the contents of | |||
| 1973 | Gemfile and act accordingly. But you can also set it to t or nil to | 1973 | Gemfile and act accordingly. But you can also set it to t or nil to |
| 1974 | skip the check. | 1974 | skip the check. |
| 1975 | 1975 | ||
| 1976 | *** New user option 'ruby-bracketed-args-indent'. | ||
| 1977 | When it is set to nil, multiple consecutive open braces/brackets/parens | ||
| 1978 | result in only one additional indentation level. | ||
| 1979 | |||
| 1976 | ** Thingatpt | 1980 | ** Thingatpt |
| 1977 | 1981 | ||
| 1978 | --- | 1982 | --- |
| @@ -1993,12 +1997,7 @@ providers for "things" that are defined by text properties. | |||
| 1993 | Now, calling '(thing-at-point 'url)' when point is on a bug reference | 1997 | Now, calling '(thing-at-point 'url)' when point is on a bug reference |
| 1994 | will return the URL for that bug. | 1998 | will return the URL for that bug. |
| 1995 | 1999 | ||
| 1996 | ** Miscellaneous | 2000 | ** Buffer-menu |
| 1997 | |||
| 1998 | +++ | ||
| 1999 | *** New user option 'rcirc-log-time-format'. | ||
| 2000 | This allows for rcirc logs to use a custom timestamp format, which the | ||
| 2001 | chat buffers use by default. | ||
| 2002 | 2001 | ||
| 2003 | --- | 2002 | --- |
| 2004 | *** New user option 'Buffer-menu-group-by'. | 2003 | *** New user option 'Buffer-menu-group-by'. |
| @@ -2013,6 +2012,13 @@ that is, buffers not visiting a file and whose names start with a space. | |||
| 2013 | Previously, such buffers were never shown. This command is bound to 'I' | 2012 | Previously, such buffers were never shown. This command is bound to 'I' |
| 2014 | in Buffer Menu mode. | 2013 | in Buffer Menu mode. |
| 2015 | 2014 | ||
| 2015 | ** Miscellaneous | ||
| 2016 | |||
| 2017 | +++ | ||
| 2018 | *** New user option 'rcirc-log-time-format'. | ||
| 2019 | This allows for rcirc logs to use a custom timestamp format, which the | ||
| 2020 | chat buffers use by default. | ||
| 2021 | |||
| 2016 | --- | 2022 | --- |
| 2017 | *** 'ffap-lax-url' now defaults to nil. | 2023 | *** 'ffap-lax-url' now defaults to nil. |
| 2018 | Previously, it was set to t, but this broke remote file name detection. | 2024 | Previously, it was set to t, but this broke remote file name detection. |
| @@ -2506,7 +2512,7 @@ sorts by the return value of 'age', then by 'size', then by 'cost'. | |||
| 2506 | The old signature, '(sort SEQ PREDICATE)', can still be used and sorts | 2512 | The old signature, '(sort SEQ PREDICATE)', can still be used and sorts |
| 2507 | its input in-place as before. | 2513 | its input in-place as before. |
| 2508 | 2514 | ||
| 2509 | ** New API for 'derived-mode-p' and control of the graph of major modes. | 2515 | ** New API for 'derived-mode-p' and control of the graph of major modes |
| 2510 | 2516 | ||
| 2511 | +++ | 2517 | +++ |
| 2512 | *** 'derived-mode-p' now takes the list of modes as a single argument. | 2518 | *** 'derived-mode-p' now takes the list of modes as a single argument. |
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 22212fa6d07..eeab970e3e1 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS | |||
| @@ -284,6 +284,26 @@ respected. | |||
| 284 | Images dropped also respect the value of ~org-yank-image-save-method~ | 284 | Images dropped also respect the value of ~org-yank-image-save-method~ |
| 285 | when ~org-yank-dnd-method~ is =attach=. | 285 | when ~org-yank-dnd-method~ is =attach=. |
| 286 | 286 | ||
| 287 | *** Alignment of image previews can be customized | ||
| 288 | |||
| 289 | Previously, all the image previews where always left-aligned. | ||
| 290 | |||
| 291 | Now, you can customize image previews to be left-aligned, centered, or right-aligned. | ||
| 292 | |||
| 293 | The customization can be done globally, via ~org-image-align~, or per | ||
| 294 | image, using =#+attr_...:=. Example: | ||
| 295 | |||
| 296 | : #+attr_org: :align center | ||
| 297 | : [[/path/to/image/file/png]] | ||
| 298 | : | ||
| 299 | : or | ||
| 300 | : | ||
| 301 | : #+attr_org: :center t | ||
| 302 | : [[/path/to/image/file/png]] | ||
| 303 | |||
| 304 | When =#+attr_org= is not present, ~:align~ and ~:center~ attributes | ||
| 305 | from other =#+attr_...:= keywords will be used. | ||
| 306 | |||
| 287 | *** =id:= links support search options; ~org-id-store-link~ adds search option by default | 307 | *** =id:= links support search options; ~org-id-store-link~ adds search option by default |
| 288 | 308 | ||
| 289 | Adding search option by ~org-id-store-link~ can be disabled by setting | 309 | Adding search option by ~org-id-store-link~ can be disabled by setting |
diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex index 65e9caa26d2..1a525289987 100644 --- a/etc/refcards/orgcard.tex +++ b/etc/refcards/orgcard.tex | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | % Reference Card for Org Mode | 1 | % Reference Card for Org Mode |
| 2 | \def\orgversionnumber{9.7.10} | 2 | \def\orgversionnumber{9.7.11} |
| 3 | \def\versionyear{2024} % latest update | 3 | \def\versionyear{2024} % latest update |
| 4 | \input emacsver.tex | 4 | \input emacsver.tex |
| 5 | 5 | ||
diff --git a/etc/tutorials/TUTORIAL.eo b/etc/tutorials/TUTORIAL.eo index 01423a04f50..633fa224c5d 100644 --- a/etc/tutorials/TUTORIAL.eo +++ b/etc/tutorials/TUTORIAL.eo | |||
| @@ -1098,8 +1098,8 @@ kondiĉoj estas observataj: | |||
| 1098 | 1098 | ||
| 1099 | Ekzemplero de la GNUa Ĝenerala Publika Permesilo devas esti | 1099 | Ekzemplero de la GNUa Ĝenerala Publika Permesilo devas esti |
| 1100 | liverita al vi kun ĉi tiu programo; se vi ĝin ne ricevis, turnu vin | 1100 | liverita al vi kun ĉi tiu programo; se vi ĝin ne ricevis, turnu vin |
| 1101 | al: Free Software Foundation, Inc., 51 Franklin Street, Fifth | 1101 | al: Free Software Foundation, Inc., 31 Milk Street, # 960789, |
| 1102 | Floor, Boston, MA 02110-1301, USA. | 1102 | Boston, MA 02196, USA. |
| 1103 | 1103 | ||
| 1104 | Bonvole legu la dosieron COPYING kaj sekve donu kopiojn de GNU Emakso | 1104 | Bonvole legu la dosieron COPYING kaj sekve donu kopiojn de GNU Emakso |
| 1105 | al viaj amikoj. Helpu ekstermi programaran obstrukcismon | 1105 | al viaj amikoj. Helpu ekstermi programaran obstrukcismon |
diff --git a/lisp/elide-head.el b/lisp/elide-head.el index 808bf55a05f..800d2c27d35 100644 --- a/lisp/elide-head.el +++ b/lisp/elide-head.el | |||
| @@ -68,7 +68,7 @@ | |||
| 68 | "http" (? "s") "://www.gnu.org/licenses" | 68 | "http" (? "s") "://www.gnu.org/licenses" |
| 69 | (? "/") (? ">") (? " ")) | 69 | (? "/") (? ">") (? " ")) |
| 70 | (seq "Boston," delim "MA" delim | 70 | (seq "Boston," delim "MA" delim |
| 71 | (or "02111-1307" "02110-1301" "02111-1301") | 71 | (or "02111-1307" "02110-1301" "02111-1301" "02196") |
| 72 | (? ",") delim | 72 | (? ",") delim |
| 73 | "USA") | 73 | "USA") |
| 74 | "675 Mass Ave, Cambridge, MA 02139, USA") | 74 | "675 Mass Ave, Cambridge, MA 02139, USA") |
diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el index da61e45213d..2ca9b64be33 100644 --- a/lisp/emacs-lisp/chart.el +++ b/lisp/emacs-lisp/chart.el | |||
| @@ -641,27 +641,68 @@ SORT-PRED if desired." | |||
| 641 | (lambda (a b) (> (cdr a) (cdr b)))) | 641 | (lambda (a b) (> (cdr a) (cdr b)))) |
| 642 | )) | 642 | )) |
| 643 | 643 | ||
| 644 | ;; This assumes 4KB blocks | ||
| 645 | (defun chart--file-size (size) | ||
| 646 | (* (/ (+ size 4095) 4096) 4096)) | ||
| 647 | |||
| 648 | (defun chart--directory-size (dir) | ||
| 649 | "Compute total size of files in directory DIR and its subdirectories. | ||
| 650 | DIR is assumed to be a directory, verified by the caller." | ||
| 651 | (let ((size 0)) | ||
| 652 | (dolist (file (directory-files-recursively dir "." t)) | ||
| 653 | (let ((fsize (nth 7 (file-attributes file)))) | ||
| 654 | (if (> fsize 0) | ||
| 655 | (setq size | ||
| 656 | (+ size (chart--file-size fsize)))))) | ||
| 657 | size)) | ||
| 658 | |||
| 644 | (defun chart-space-usage (d) | 659 | (defun chart-space-usage (d) |
| 645 | "Display a top usage chart for directory D." | 660 | "Display a top usage chart for directory D." |
| 646 | (interactive "DDirectory: ") | 661 | (interactive "DDirectory: ") |
| 647 | (message "Collecting statistics...") | 662 | (message "Collecting statistics...") |
| 648 | (let ((nmlst nil) | 663 | (let ((nmlst nil) |
| 649 | (cntlst nil) | 664 | (cntlst nil) |
| 650 | (b (get-buffer-create " *du-tmp*"))) | 665 | b) |
| 651 | (set-buffer b) | 666 | (if (executable-find "du") |
| 652 | (erase-buffer) | 667 | (progn |
| 653 | (insert "cd " d ";du -sk * \n") | 668 | (setq b (get-buffer-create " *du-tmp*")) |
| 654 | (message "Running `cd %s;du -sk *'..." d) | 669 | (set-buffer b) |
| 655 | (call-process-region (point-min) (point-max) shell-file-name t | 670 | (erase-buffer) |
| 656 | (current-buffer) nil) | 671 | (if (and (memq system-type '(windows-nt ms-dos)) |
| 657 | (goto-char (point-min)) | 672 | (fboundp 'w32-shell-dos-semantics) |
| 658 | (message "Scanning output ...") | 673 | (w32-shell-dos-semantics)) |
| 659 | (while (re-search-forward "^\\([0-9]+\\)[ \t]+\\([^ \n]+\\)$" nil t) | 674 | (progn |
| 660 | (let* ((nam (buffer-substring (match-beginning 2) (match-end 2))) | 675 | ;; With Windows shells, 'cd' does not change the drive, |
| 661 | (num (buffer-substring (match-beginning 1) (match-end 1)))) | 676 | ;; and ';' is not reliable for running multiple |
| 662 | (setq nmlst (cons nam nmlst) | 677 | ;; commands, so use alternatives. We quote the |
| 663 | ;; * 1000 to put it into bytes | 678 | ;; directory because otherwise pushd will barf on a |
| 664 | cntlst (cons (* (string-to-number num) 1000) cntlst)))) | 679 | ;; directory with forward slashes. Note that * will not |
| 680 | ;; skip dotfiles with Windows shells, unlike on Unix. | ||
| 681 | (insert "pushd \"" d "\" && du -sk * \n") | ||
| 682 | (message "Running `pushd \"%s\" && du -sk *'..." d)) | ||
| 683 | (insert "cd " d ";du -sk * \n") | ||
| 684 | (message "Running `cd %s;du -sk *'..." d)) | ||
| 685 | (call-process-region (point-min) (point-max) shell-file-name t | ||
| 686 | (current-buffer) nil) | ||
| 687 | (goto-char (point-min)) | ||
| 688 | (message "Scanning output ...") | ||
| 689 | (while (re-search-forward "^\\([0-9]+\\)[ \t]+\\([^ \n]+\\)$" nil t) | ||
| 690 | (let* ((nam (buffer-substring (match-beginning 2) (match-end 2))) | ||
| 691 | (num (buffer-substring (match-beginning 1) (match-end 1)))) | ||
| 692 | (setq nmlst (cons nam nmlst) | ||
| 693 | ;; * 1000 to put it into bytes | ||
| 694 | cntlst (cons (* (string-to-number num) 1000) cntlst))))) | ||
| 695 | (dolist (file (directory-files d t directory-files-no-dot-files-regexp)) | ||
| 696 | (let ((fbase (file-name-nondirectory file))) | ||
| 697 | ;; Typical shells exclude files and subdirectories whose names | ||
| 698 | ;; begin with a period when it expands *, so we do the same. | ||
| 699 | (unless (string-match-p "\\`\\." fbase) | ||
| 700 | (setq nmlst (cons fbase nmlst)) | ||
| 701 | (if (file-regular-p file) | ||
| 702 | (setq cntlst (cons (chart--file-size | ||
| 703 | (nth 7 (file-attributes file))) | ||
| 704 | cntlst)) | ||
| 705 | (setq cntlst (cons (chart--directory-size file) cntlst))))))) | ||
| 665 | (if (not nmlst) | 706 | (if (not nmlst) |
| 666 | (error "No files found!")) | 707 | (error "No files found!")) |
| 667 | (chart-bar-quickie 'vertical (format "Largest files in %s" d) | 708 | (chart-bar-quickie 'vertical (format "Largest files in %s" d) |
diff --git a/lisp/emacs-lisp/vtable.el b/lisp/emacs-lisp/vtable.el index cb7ea397314..d58c6894c16 100644 --- a/lisp/emacs-lisp/vtable.el +++ b/lisp/emacs-lisp/vtable.el | |||
| @@ -722,15 +722,17 @@ This also updates the displayed table." | |||
| 722 | (vtable--limit-string | 722 | (vtable--limit-string |
| 723 | name (- (elt widths index) indicator-width)) | 723 | name (- (elt widths index) indicator-width)) |
| 724 | name)) | 724 | name)) |
| 725 | (let ((fill-width | 725 | (let* ((indicator-lead-width |
| 726 | (+ (- (elt widths index) | 726 | ;; We want the indicator to not be quite flush right. |
| 727 | (string-pixel-width displayed) | 727 | (/ (vtable--char-width table) 2.0)) |
| 728 | indicator-width | 728 | (indicator-pad-width (- (vtable--char-width table) |
| 729 | (vtable-separator-width table) | 729 | indicator-lead-width)) |
| 730 | ;; We want the indicator to not be quite flush | 730 | (fill-width |
| 731 | ;; right. | 731 | (+ (- (elt widths index) |
| 732 | (/ (vtable--char-width table) 2.0)) | 732 | (string-pixel-width displayed) |
| 733 | (if last 0 spacer)))) | 733 | indicator-width |
| 734 | indicator-lead-width) | ||
| 735 | (if last 0 spacer)))) | ||
| 734 | (if (or (not last) | 736 | (if (or (not last) |
| 735 | (zerop indicator-width) | 737 | (zerop indicator-width) |
| 736 | (< (seq-reduce #'+ widths 0) (window-width nil t))) | 738 | (< (seq-reduce #'+ widths 0) (window-width nil t))) |
| @@ -739,7 +741,9 @@ This also updates the displayed table." | |||
| 739 | displayed | 741 | displayed |
| 740 | (propertize " " 'display | 742 | (propertize " " 'display |
| 741 | (list 'space :width (list fill-width))) | 743 | (list 'space :width (list fill-width))) |
| 742 | indicator) | 744 | indicator |
| 745 | (propertize " " 'display | ||
| 746 | (list 'space :width (list indicator-pad-width)))) | ||
| 743 | ;; This is the final column, and we have a sorting | 747 | ;; This is the final column, and we have a sorting |
| 744 | ;; indicator, and the table is too wide for the window. | 748 | ;; indicator, and the table is too wide for the window. |
| 745 | (let* ((pre-indicator (string-pixel-width | 749 | (let* ((pre-indicator (string-pixel-width |
| @@ -758,10 +762,6 @@ This also updates the displayed table." | |||
| 758 | (list (- fill-width pre-fill)))))))) | 762 | (list (- fill-width pre-fill)))))))) |
| 759 | (when (and divider (not last)) | 763 | (when (and divider (not last)) |
| 760 | (insert (propertize divider 'keymap dmap))) | 764 | (insert (propertize divider 'keymap dmap))) |
| 761 | (insert (propertize | ||
| 762 | " " 'display | ||
| 763 | (list 'space :width (list | ||
| 764 | (/ (vtable--char-width table) 2.0))))) | ||
| 765 | (put-text-property start (point) 'vtable-column index))) | 765 | (put-text-property start (point) 'vtable-column index))) |
| 766 | (vtable-columns table)) | 766 | (vtable-columns table)) |
| 767 | (insert "\n") | 767 | (insert "\n") |
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index b4a0e92136e..a5ce5b65cd7 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el | |||
| @@ -579,7 +579,11 @@ HEADER is a header component of a MIME-entity object (see | |||
| 579 | (ignore-errors (base64-decode-region pos (point)))) | 579 | (ignore-errors (base64-decode-region pos (point)))) |
| 580 | ((string= transfer-encoding "quoted-printable") | 580 | ((string= transfer-encoding "quoted-printable") |
| 581 | (quoted-printable-decode-region pos (point)))))) | 581 | (quoted-printable-decode-region pos (point)))))) |
| 582 | (decode-coding-region pos (point) coding-system) | 582 | (decode-coding-region |
| 583 | pos (point) | ||
| 584 | ;; Use -dos decoding, to remove ^M characters left from base64 or | ||
| 585 | ;; rogue qp-encoded text. | ||
| 586 | (coding-system-change-eol-conversion coding-system 1)) | ||
| 583 | (if (and | 587 | (if (and |
| 584 | (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system)) | 588 | (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system)) |
| 585 | (not (eq (coding-system-base coding-system) 'us-ascii))) | 589 | (not (eq (coding-system-base coding-system) 'us-ascii))) |
| @@ -691,7 +695,11 @@ HEADER is a header component of a MIME-entity object (see | |||
| 691 | (if (and (eq coding-system 'undecided) | 695 | (if (and (eq coding-system 'undecided) |
| 692 | (not (null coding-system-for-read))) | 696 | (not (null coding-system-for-read))) |
| 693 | (setq coding-system coding-system-for-read)))) | 697 | (setq coding-system coding-system-for-read)))) |
| 694 | (decode-coding-region (point-min) (point) coding-system) | 698 | (decode-coding-region |
| 699 | (point-min) (point) | ||
| 700 | ;; Use -dos decoding, to remove ^M characters left from base64 or | ||
| 701 | ;; rogue qp-encoded text. | ||
| 702 | (coding-system-change-eol-conversion coding-system 1)) | ||
| 695 | (if (and | 703 | (if (and |
| 696 | (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system)) | 704 | (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system)) |
| 697 | (not (eq (coding-system-base coding-system) 'us-ascii))) | 705 | (not (eq (coding-system-base coding-system) 'us-ascii))) |
diff --git a/lisp/org/ob-gnuplot.el b/lisp/org/ob-gnuplot.el index 956763c587e..10192cb9a32 100644 --- a/lisp/org/ob-gnuplot.el +++ b/lisp/org/ob-gnuplot.el | |||
| @@ -45,7 +45,6 @@ | |||
| 45 | 45 | ||
| 46 | (require 'ob) | 46 | (require 'ob) |
| 47 | (require 'org-macs) | 47 | (require 'org-macs) |
| 48 | (require 'ox-ascii) | ||
| 49 | 48 | ||
| 50 | (declare-function org-time-string-to-time "org" (s)) | 49 | (declare-function org-time-string-to-time "org" (s)) |
| 51 | (declare-function orgtbl-to-generic "org-table" (table params)) | 50 | (declare-function orgtbl-to-generic "org-table" (table params)) |
| @@ -295,6 +294,8 @@ then create one. Return the initialized session. The current | |||
| 295 | "Export TABLE to DATA-FILE in a format readable by gnuplot. | 294 | "Export TABLE to DATA-FILE in a format readable by gnuplot. |
| 296 | Pass PARAMS through to `orgtbl-to-generic' when exporting TABLE." | 295 | Pass PARAMS through to `orgtbl-to-generic' when exporting TABLE." |
| 297 | (require 'ox-org) | 296 | (require 'ox-org) |
| 297 | (require 'ox-ascii) | ||
| 298 | (declare-function org-export-create-backend "ox") | ||
| 298 | (with-temp-file data-file | 299 | (with-temp-file data-file |
| 299 | (insert (let ((org-babel-gnuplot-timestamp-fmt | 300 | (insert (let ((org-babel-gnuplot-timestamp-fmt |
| 300 | (or (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S")) | 301 | (or (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S")) |
diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el index 989fadf69fa..657d657d2ab 100644 --- a/lisp/org/org-version.el +++ b/lisp/org/org-version.el | |||
| @@ -5,13 +5,13 @@ | |||
| 5 | (defun org-release () | 5 | (defun org-release () |
| 6 | "The release version of Org. | 6 | "The release version of Org. |
| 7 | Inserted by installing Org mode or when a release is made." | 7 | Inserted by installing Org mode or when a release is made." |
| 8 | (let ((org-release "9.7.10")) | 8 | (let ((org-release "9.7.11")) |
| 9 | org-release)) | 9 | org-release)) |
| 10 | ;;;###autoload | 10 | ;;;###autoload |
| 11 | (defun org-git-version () | 11 | (defun org-git-version () |
| 12 | "The Git version of Org mode. | 12 | "The Git version of Org mode. |
| 13 | Inserted by installing Org or when a release is made." | 13 | Inserted by installing Org or when a release is made." |
| 14 | (let ((org-git-version "release_9.7.10")) | 14 | (let ((org-git-version "release_9.7.11")) |
| 15 | org-git-version)) | 15 | org-git-version)) |
| 16 | 16 | ||
| 17 | (provide 'org-version) | 17 | (provide 'org-version) |
diff --git a/lisp/org/org.el b/lisp/org/org.el index 26812bbfb29..5bee96fb0b5 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | ;; URL: https://orgmode.org | 9 | ;; URL: https://orgmode.org |
| 10 | ;; Package-Requires: ((emacs "26.1")) | 10 | ;; Package-Requires: ((emacs "26.1")) |
| 11 | 11 | ||
| 12 | ;; Version: 9.7.10 | 12 | ;; Version: 9.7.11 |
| 13 | 13 | ||
| 14 | ;; This file is part of GNU Emacs. | 14 | ;; This file is part of GNU Emacs. |
| 15 | ;; | 15 | ;; |
diff --git a/lisp/org/ox.el b/lisp/org/ox.el index 1024bdc4bae..7cdf622ec44 100644 --- a/lisp/org/ox.el +++ b/lisp/org/ox.el | |||
| @@ -156,8 +156,11 @@ | |||
| 156 | (:cite-export "CITE_EXPORT" nil org-cite-export-processors)) | 156 | (:cite-export "CITE_EXPORT" nil org-cite-export-processors)) |
| 157 | "Alist between export properties and ways to set them. | 157 | "Alist between export properties and ways to set them. |
| 158 | 158 | ||
| 159 | The key of the alist is the property name, and the value is a list | 159 | Each element of the alist is a list like |
| 160 | like (KEYWORD OPTION DEFAULT BEHAVIOR) where: | 160 | (ALIST-KEY KEYWORD OPTION DEFAULT BEHAVIOR) |
| 161 | |||
| 162 | ALIST-KEY is the key of the alist - a symbol like `:option', and the | ||
| 163 | value is (KEYWORD OPTION ...). | ||
| 161 | 164 | ||
| 162 | KEYWORD is a string representing a buffer keyword, or nil. Each | 165 | KEYWORD is a string representing a buffer keyword, or nil. Each |
| 163 | property defined this way can also be set, during subtree | 166 | property defined this way can also be set, during subtree |
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 3bcfa9ee7df..d953ec8b25c 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el | |||
| @@ -472,6 +472,26 @@ Only has effect when `ruby-use-smie' is t." | |||
| 472 | :safe 'booleanp | 472 | :safe 'booleanp |
| 473 | :version "29.1") | 473 | :version "29.1") |
| 474 | 474 | ||
| 475 | (defcustom ruby-bracketed-args-indent t | ||
| 476 | "Non-nil to align the contents of bracketed arguments with the brackets. | ||
| 477 | |||
| 478 | Example: | ||
| 479 | |||
| 480 | qux({ | ||
| 481 | foo => bar | ||
| 482 | }) | ||
| 483 | |||
| 484 | Set it to nil to align to the beginning of the statement: | ||
| 485 | |||
| 486 | qux({ | ||
| 487 | foo => bar | ||
| 488 | }) | ||
| 489 | |||
| 490 | Only has effect when `ruby-use-smie' is t." | ||
| 491 | :type 'boolean | ||
| 492 | :safe 'booleanp | ||
| 493 | :version "30.1") | ||
| 494 | |||
| 475 | (defcustom ruby-deep-arglist t | 495 | (defcustom ruby-deep-arglist t |
| 476 | "Deep indent lists in parenthesis when non-nil. | 496 | "Deep indent lists in parenthesis when non-nil. |
| 477 | Also ignores spaces after parenthesis when `space'. | 497 | Also ignores spaces after parenthesis when `space'. |
| @@ -826,6 +846,9 @@ This only affects the output of the command `ruby-toggle-block'." | |||
| 826 | )) | 846 | )) |
| 827 | (`(:before . ,(or "(" "[" "{")) | 847 | (`(:before . ,(or "(" "[" "{")) |
| 828 | (cond | 848 | (cond |
| 849 | ((and (not (eq ruby-bracketed-args-indent t)) | ||
| 850 | (smie-rule-prev-p "," "(" "[")) | ||
| 851 | (cons 'column (current-indentation))) | ||
| 829 | ((and (equal token "{") | 852 | ((and (equal token "{") |
| 830 | (not (smie-rule-prev-p "(" "{" "[" "," "=>" "=" "return" ";" "do")) | 853 | (not (smie-rule-prev-p "(" "{" "[" "," "=>" "=" "return" ";" "do")) |
| 831 | (save-excursion | 854 | (save-excursion |
diff --git a/lisp/progmodes/ruby-ts-mode.el b/lisp/progmodes/ruby-ts-mode.el index 5f4e11e0b4c..adcdf15c7ad 100644 --- a/lisp/progmodes/ruby-ts-mode.el +++ b/lisp/progmodes/ruby-ts-mode.el | |||
| @@ -842,6 +842,16 @@ a statement container is a node that matches | |||
| 842 | ;; No paren/curly/brace found on the same line. | 842 | ;; No paren/curly/brace found on the same line. |
| 843 | ((< (treesit-node-start found) parent-bol) | 843 | ((< (treesit-node-start found) parent-bol) |
| 844 | parent-bol) | 844 | parent-bol) |
| 845 | ;; Nesting of brackets args. | ||
| 846 | ((and | ||
| 847 | (not (eq ruby-bracketed-args-indent t)) | ||
| 848 | (string-match-p "\\`array\\|hash\\'" (treesit-node-type parent)) | ||
| 849 | (equal (treesit-node-parent parent) found) | ||
| 850 | ;; Grandparent is not a parenless call. | ||
| 851 | (or (not (equal (treesit-node-type found) "argument_list")) | ||
| 852 | (equal (treesit-node-type (treesit-node-child found 0)) | ||
| 853 | "("))) | ||
| 854 | parent-bol) | ||
| 845 | ;; Hash or array opener on the same line. | 855 | ;; Hash or array opener on the same line. |
| 846 | ((string-match-p "\\`array\\|hash\\'" (treesit-node-type found)) | 856 | ((string-match-p "\\`array\\|hash\\'" (treesit-node-type found)) |
| 847 | (save-excursion | 857 | (save-excursion |
diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index 80d66097bce..2efc2b8f85b 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el | |||
| @@ -257,7 +257,15 @@ a list of frames to update." | |||
| 257 | "Tab Bar mode map.") | 257 | "Tab Bar mode map.") |
| 258 | 258 | ||
| 259 | (define-minor-mode tab-bar-mode | 259 | (define-minor-mode tab-bar-mode |
| 260 | "Toggle the tab bar in all graphical frames (Tab Bar mode)." | 260 | "Toggle the tab bar in all graphical frames (Tab Bar mode). |
| 261 | |||
| 262 | When this mode is enabled, Emacs displays a tab bar on top of each frame. | ||
| 263 | The tab bar is a row of tabs -- buttons that you can click | ||
| 264 | to switch the frame between different window configurations. | ||
| 265 | See `current-window-configuration' for more about window configurations. | ||
| 266 | To add a button (which can then record one more window configuration), | ||
| 267 | click on the \"+\" button. Clicking on the \"x\" icon of a button | ||
| 268 | deletes the button." | ||
| 261 | :global t | 269 | :global t |
| 262 | ;; It's defined in C/cus-start, this stops the d-m-m macro defining it again. | 270 | ;; It's defined in C/cus-start, this stops the d-m-m macro defining it again. |
| 263 | :variable tab-bar-mode | 271 | :variable tab-bar-mode |
| @@ -1517,8 +1525,8 @@ in the same window to give information about the killed buffer." | |||
| 1517 | 1525 | ||
| 1518 | (defun tab-bar-select-restore-windows (_frame windows _type) | 1526 | (defun tab-bar-select-restore-windows (_frame windows _type) |
| 1519 | "Display a placeholder buffer in the window whose buffer was killed. | 1527 | "Display a placeholder buffer in the window whose buffer was killed. |
| 1520 | A button in the window allows restoring the killed buffer, | 1528 | There is a button in the window which you can press to restore the |
| 1521 | if it was visiting a file." | 1529 | killed buffer, if that buffer was visiting a file." |
| 1522 | (dolist (quad windows) | 1530 | (dolist (quad windows) |
| 1523 | (when (window-live-p (nth 0 quad)) | 1531 | (when (window-live-p (nth 0 quad)) |
| 1524 | (let* ((window (nth 0 quad)) | 1532 | (let* ((window (nth 0 quad)) |
diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 462a0a27692..92b52b6936c 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el | |||
| @@ -1141,7 +1141,15 @@ However, return the correct mouse position list if EVENT is a | |||
| 1141 | 1141 | ||
| 1142 | ;;;###autoload | 1142 | ;;;###autoload |
| 1143 | (define-minor-mode tab-line-mode | 1143 | (define-minor-mode tab-line-mode |
| 1144 | "Toggle display of tab line in the windows displaying the current buffer." | 1144 | "Toggle display of tab line in the windows displaying the current buffer. |
| 1145 | |||
| 1146 | When this mode is enabled, each window displays a tab line on its | ||
| 1147 | top screen line. The tab line is a row of tabs -- buttons which | ||
| 1148 | you can click to have the window display the buffer whose name is | ||
| 1149 | shown on the button. Clicking on the \"x\" icon of the button | ||
| 1150 | removes the button (but does not kill the corresponding buffer). | ||
| 1151 | In addition, the tab line shows a \"+\" button which adds a new | ||
| 1152 | button, so you could have one more buffer shown on the tab line." | ||
| 1145 | :lighter nil | 1153 | :lighter nil |
| 1146 | (let ((default-value '(:eval (tab-line-format)))) | 1154 | (let ((default-value '(:eval (tab-line-format)))) |
| 1147 | ;; Preserve the existing tab-line set outside of this mode | 1155 | ;; Preserve the existing tab-line set outside of this mode |
diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el index 1681f86b343..7a225ff7338 100644 --- a/lisp/textmodes/page-ext.el +++ b/lisp/textmodes/page-ext.el | |||
| @@ -119,8 +119,8 @@ | |||
| 119 | ;; | 119 | ;; |
| 120 | ;; FSF | 120 | ;; FSF |
| 121 | ;; Free Software Foundation | 121 | ;; Free Software Foundation |
| 122 | ;; 51 Franklin Street, Fifth Floor | 122 | ;; 31 Milk Street, # 960789 |
| 123 | ;; Boston, MA 02110-1301 USA. | 123 | ;; Boston, MA 02196 USA. |
| 124 | ;; (617) 542-5942 | 124 | ;; (617) 542-5942 |
| 125 | ;; gnu@gnu.org | 125 | ;; gnu@gnu.org |
| 126 | ;; | 126 | ;; |
diff --git a/lisp/use-package/use-package-core.el b/lisp/use-package/use-package-core.el index 85091b8338b..1b9a4332f25 100644 --- a/lisp/use-package/use-package-core.el +++ b/lisp/use-package/use-package-core.el | |||
| @@ -1415,13 +1415,16 @@ enable gathering statistics." | |||
| 1415 | (when fun | 1415 | (when fun |
| 1416 | (mapcar | 1416 | (mapcar |
| 1417 | #'(lambda (sym) | 1417 | #'(lambda (sym) |
| 1418 | (if (boundp sym) | 1418 | (let ((symname (symbol-name sym))) |
| 1419 | `(add-hook (quote ,sym) (function ,fun)) | 1419 | (if (and (boundp sym) |
| 1420 | `(add-hook | 1420 | ;; Mode variables are usually bound, but |
| 1421 | (quote ,(intern | 1421 | ;; their hooks are named FOO-mode-hook. |
| 1422 | (concat (symbol-name sym) | 1422 | (not (string-suffix-p "-mode" symname))) |
| 1423 | use-package-hook-name-suffix))) | 1423 | `(add-hook (quote ,sym) (function ,fun)) |
| 1424 | (function ,fun)))) | 1424 | `(add-hook |
| 1425 | (quote ,(intern | ||
| 1426 | (concat symname use-package-hook-name-suffix))) | ||
| 1427 | (function ,fun))))) | ||
| 1425 | (use-package-hook-handler-normalize-mode-symbols syms))))) | 1428 | (use-package-hook-handler-normalize-mode-symbols syms))))) |
| 1426 | (use-package-normalize-commands args)))) | 1429 | (use-package-normalize-commands args)))) |
| 1427 | 1430 | ||
diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el index 1b478d3f9b7..72dae9b678f 100644 --- a/lisp/vc/ediff-init.el +++ b/lisp/vc/ediff-init.el | |||
| @@ -1451,7 +1451,7 @@ This default should work without changes." | |||
| 1451 | (ediff-abbreviate-file-name (file-name-directory dir)))) | 1451 | (ediff-abbreviate-file-name (file-name-directory dir)))) |
| 1452 | 1452 | ||
| 1453 | (defsubst ediff-nonempty-string-p (string) | 1453 | (defsubst ediff-nonempty-string-p (string) |
| 1454 | (and (stringp string) (string-empty-p string))) | 1454 | (and (stringp string) (not (string-empty-p string)))) |
| 1455 | 1455 | ||
| 1456 | (defun ediff-abbrev-jobname (jobname) | 1456 | (defun ediff-abbrev-jobname (jobname) |
| 1457 | (cond ((eq jobname 'ediff-directories) | 1457 | (cond ((eq jobname 'ediff-directories) |
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 3ae08a59105..76388211545 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el | |||
| @@ -1459,9 +1459,9 @@ the file renames. The downsides is that the log produced this | |||
| 1459 | way may omit certain (merge) commits, and that `log-view-diff' | 1459 | way may omit certain (merge) commits, and that `log-view-diff' |
| 1460 | fails on commits that used the previous name, in that log buffer. | 1460 | fails on commits that used the previous name, in that log buffer. |
| 1461 | 1461 | ||
| 1462 | When this variable is nil, and the log ends with a rename, we | 1462 | When this variable is nil, and the log ends with a rename, there is a |
| 1463 | show a button below that which allows showing the log for the | 1463 | button which you can press to show the log for the file name before the |
| 1464 | file name before the rename." | 1464 | rename." |
| 1465 | :type 'boolean | 1465 | :type 'boolean |
| 1466 | :version "26.1") | 1466 | :version "26.1") |
| 1467 | 1467 | ||
diff --git a/lisp/which-key.el b/lisp/which-key.el index f3f437eb7d2..208f90b3d46 100644 --- a/lisp/which-key.el +++ b/lisp/which-key.el | |||
| @@ -70,7 +70,7 @@ This makes it possible to shorten the delay for subsequent popups | |||
| 70 | in the same key sequence. The default is for this value to be | 70 | in the same key sequence. The default is for this value to be |
| 71 | nil, which disables this behavior." | 71 | nil, which disables this behavior." |
| 72 | :type '(choice float (const :tag "Disabled" nil)) | 72 | :type '(choice float (const :tag "Disabled" nil)) |
| 73 | :package-version "1.0" :version "30.1") | 73 | :package-version '(which-key "1.0") :version "30.1") |
| 74 | 74 | ||
| 75 | (defcustom which-key-echo-keystrokes (if (and echo-keystrokes | 75 | (defcustom which-key-echo-keystrokes (if (and echo-keystrokes |
| 76 | (> (+ echo-keystrokes 0.01) | 76 | (> (+ echo-keystrokes 0.01) |
| @@ -83,7 +83,7 @@ This only applies if `which-key-popup-type' is minibuffer or | |||
| 83 | `which-key-idle-delay' or else the keystroke echo will erase the | 83 | `which-key-idle-delay' or else the keystroke echo will erase the |
| 84 | which-key popup." | 84 | which-key popup." |
| 85 | :type 'float | 85 | :type 'float |
| 86 | :package-version "1.0" :version "30.1") | 86 | :package-version '(which-key . "1.0") :version "30.1") |
| 87 | 87 | ||
| 88 | (defcustom which-key-max-description-length 27 | 88 | (defcustom which-key-max-description-length 27 |
| 89 | "Truncate the description of keys to this length. | 89 | "Truncate the description of keys to this length. |
| @@ -96,17 +96,17 @@ before. Truncation is done using `which-key-ellipsis'." | |||
| 96 | (integer :tag "Width in characters") | 96 | (integer :tag "Width in characters") |
| 97 | (float :tag "Use fraction of available width") | 97 | (float :tag "Use fraction of available width") |
| 98 | function) | 98 | function) |
| 99 | :package-version "1.0" :version "30.1") | 99 | :package-version '(which-key . "1.0") :version "30.1") |
| 100 | 100 | ||
| 101 | (defcustom which-key-min-column-description-width 0 | 101 | (defcustom which-key-min-column-description-width 0 |
| 102 | "Every column should at least have this width." | 102 | "Every column should at least have this width." |
| 103 | :type 'natnum | 103 | :type 'natnum |
| 104 | :package-version "1.0" :version "30.1") | 104 | :package-version '(which-key . "1.0") :version "30.1") |
| 105 | 105 | ||
| 106 | (defcustom which-key-add-column-padding 0 | 106 | (defcustom which-key-add-column-padding 0 |
| 107 | "Additional spaces to add to the left of each key column." | 107 | "Additional spaces to add to the left of each key column." |
| 108 | :type 'integer | 108 | :type 'integer |
| 109 | :package-version "1.0" :version "30.1") | 109 | :package-version '(which-key . "1.0") :version "30.1") |
| 110 | 110 | ||
| 111 | (defcustom which-key-unicode-correction 3 | 111 | (defcustom which-key-unicode-correction 3 |
| 112 | "Correction for wide unicode characters. | 112 | "Correction for wide unicode characters. |
| @@ -122,7 +122,7 @@ additional ASCII character in the which-key buffer. Increase this | |||
| 122 | number if you are seeing characters get cutoff on the right side | 122 | number if you are seeing characters get cutoff on the right side |
| 123 | of the which-key popup." | 123 | of the which-key popup." |
| 124 | :type 'integer | 124 | :type 'integer |
| 125 | :package-version "1.0" :version "30.1") | 125 | :package-version '(which-key . "1.0") :version "30.1") |
| 126 | 126 | ||
| 127 | (defcustom which-key-dont-use-unicode t | 127 | (defcustom which-key-dont-use-unicode t |
| 128 | "If non-nil, don't use any unicode characters in default setup. | 128 | "If non-nil, don't use any unicode characters in default setup. |
| @@ -136,7 +136,7 @@ For affected settings, see `which-key-replacement-alist', `which-key-ellipsis' | |||
| 136 | (custom-reevaluate-setting sym)))) | 136 | (custom-reevaluate-setting sym)))) |
| 137 | :initialize #'custom-initialize-changed | 137 | :initialize #'custom-initialize-changed |
| 138 | :type 'boolean | 138 | :type 'boolean |
| 139 | :package-version "1.0" :version "30.1") | 139 | :package-version '(which-key . "1.0") :version "30.1") |
| 140 | 140 | ||
| 141 | (defcustom which-key-separator | 141 | (defcustom which-key-separator |
| 142 | (if which-key-dont-use-unicode " : " " → ") | 142 | (if which-key-dont-use-unicode " : " " → ") |
| @@ -145,7 +145,7 @@ Default is \" → \", unless `which-key-dont-use-unicode' is non | |||
| 145 | nil, in which case the default is \" : \"." | 145 | nil, in which case the default is \" : \"." |
| 146 | :type 'string | 146 | :type 'string |
| 147 | :set-after '(which-key-dont-use-unicode) | 147 | :set-after '(which-key-dont-use-unicode) |
| 148 | :package-version "1.0" :version "30.1") | 148 | :package-version '(which-key . "1.0") :version "30.1") |
| 149 | 149 | ||
| 150 | (defcustom which-key-ellipsis | 150 | (defcustom which-key-ellipsis |
| 151 | (if which-key-dont-use-unicode ".." "…") | 151 | (if which-key-dont-use-unicode ".." "…") |
| @@ -155,20 +155,20 @@ in which case the default is \"..\". This can also be the empty | |||
| 155 | string to truncate without using any ellipsis." | 155 | string to truncate without using any ellipsis." |
| 156 | :type 'string | 156 | :type 'string |
| 157 | :set-after '(which-key-dont-use-unicode) | 157 | :set-after '(which-key-dont-use-unicode) |
| 158 | :package-version "1.0" :version "30.1") | 158 | :package-version '(which-key . "1.0") :version "30.1") |
| 159 | 159 | ||
| 160 | (defcustom which-key-prefix-prefix "+" | 160 | (defcustom which-key-prefix-prefix "+" |
| 161 | "Prefix string to indicate a key bound to a keymap. | 161 | "Prefix string to indicate a key bound to a keymap. |
| 162 | Default is \"+\"." | 162 | Default is \"+\"." |
| 163 | :type 'string | 163 | :type 'string |
| 164 | :package-version "1.0" :version "30.1") | 164 | :package-version '(which-key . "1.0") :version "30.1") |
| 165 | 165 | ||
| 166 | (defcustom which-key-compute-remaps nil | 166 | (defcustom which-key-compute-remaps nil |
| 167 | "If non-nil, show remapped commands. | 167 | "If non-nil, show remapped commands. |
| 168 | This applies to commands that have been remapped given the | 168 | This applies to commands that have been remapped given the |
| 169 | currently active keymaps." | 169 | currently active keymaps." |
| 170 | :type 'boolean | 170 | :type 'boolean |
| 171 | :package-version "1.0" :version "30.1") | 171 | :package-version '(which-key . "1.0") :version "30.1") |
| 172 | 172 | ||
| 173 | (defcustom which-key-replacement-alist | 173 | (defcustom which-key-replacement-alist |
| 174 | `(((nil . "which-key-show-next-page-no-cycle") . (nil . "wk next pg")) | 174 | `(((nil . "which-key-show-next-page-no-cycle") . (nil . "wk next pg")) |
| @@ -211,7 +211,7 @@ non-nil value." | |||
| 211 | (choice regexp (const nil))) | 211 | (choice regexp (const nil))) |
| 212 | :value-type (cons (choice string (const nil)) | 212 | :value-type (cons (choice string (const nil)) |
| 213 | (choice string (const nil)))) | 213 | (choice string (const nil)))) |
| 214 | :package-version "1.0" :version "30.1") | 214 | :package-version '(which-key . "1.0") :version "30.1") |
| 215 | 215 | ||
| 216 | (defcustom which-key-allow-multiple-replacements nil | 216 | (defcustom which-key-allow-multiple-replacements nil |
| 217 | "Allow a key binding to be modified by multiple elements. | 217 | "Allow a key binding to be modified by multiple elements. |
| @@ -220,7 +220,7 @@ patterns in `which-key-replacement-alist'. When nil, only the | |||
| 220 | first match is used to perform replacements from | 220 | first match is used to perform replacements from |
| 221 | `which-key-replacement-alist'." | 221 | `which-key-replacement-alist'." |
| 222 | :type 'boolean | 222 | :type 'boolean |
| 223 | :package-version "1.0" :version "30.1") | 223 | :package-version '(which-key . "1.0") :version "30.1") |
| 224 | 224 | ||
| 225 | (defcustom which-key-show-docstrings nil | 225 | (defcustom which-key-show-docstrings nil |
| 226 | "If non-nil, show each command's docstring in the which-key popup. | 226 | "If non-nil, show each command's docstring in the which-key popup. |
| @@ -233,7 +233,7 @@ you use this feature." | |||
| 233 | (const :tag "Do not show docstrings" nil) | 233 | (const :tag "Do not show docstrings" nil) |
| 234 | (const :tag "Add docstring to command names" t) | 234 | (const :tag "Add docstring to command names" t) |
| 235 | (const :tag "Replace command name with docstring" docstring-only)) | 235 | (const :tag "Replace command name with docstring" docstring-only)) |
| 236 | :package-version "1.0" :version "30.1") | 236 | :package-version '(which-key . "1.0") :version "30.1") |
| 237 | 237 | ||
| 238 | (defcustom which-key-extra-keymaps '(key-translation-map) | 238 | (defcustom which-key-extra-keymaps '(key-translation-map) |
| 239 | "List of extra keymaps to show entries from. | 239 | "List of extra keymaps to show entries from. |
| @@ -242,7 +242,7 @@ The default is to check `key-translation-map', which contains the | |||
| 242 | :type '(choice (list :tag "Translation map" (const key-translation-map)) | 242 | :type '(choice (list :tag "Translation map" (const key-translation-map)) |
| 243 | (const :tag "None" nil) | 243 | (const :tag "None" nil) |
| 244 | (repeat :tag "Custom" symbol)) | 244 | (repeat :tag "Custom" symbol)) |
| 245 | :package-version "1.0" :version "30.1") | 245 | :package-version '(which-key . "1.0") :version "30.1") |
| 246 | 246 | ||
| 247 | (defcustom which-key-highlighted-command-list '() | 247 | (defcustom which-key-highlighted-command-list '() |
| 248 | "Rules used to highlight certain commands. | 248 | "Rules used to highlight certain commands. |
| @@ -252,7 +252,7 @@ matching command names and use | |||
| 252 | the element is a cons cell, it should take the form (regexp . | 252 | the element is a cons cell, it should take the form (regexp . |
| 253 | face to apply)." | 253 | face to apply)." |
| 254 | :type '(repeat (choice string (cons regexp face))) | 254 | :type '(repeat (choice string (cons regexp face))) |
| 255 | :package-version "1.0" :version "30.1") | 255 | :package-version '(which-key . "1.0") :version "30.1") |
| 256 | 256 | ||
| 257 | (defcustom which-key-special-keys '() | 257 | (defcustom which-key-special-keys '() |
| 258 | "These keys will automatically be truncated to one character. | 258 | "These keys will automatically be truncated to one character. |
| @@ -261,12 +261,12 @@ is disabled by default. An example configuration is | |||
| 261 | 261 | ||
| 262 | \(setq which-key-special-keys \\='(\"SPC\" \"TAB\" \"RET\" \"ESC\" \"DEL\")\)" | 262 | \(setq which-key-special-keys \\='(\"SPC\" \"TAB\" \"RET\" \"ESC\" \"DEL\")\)" |
| 263 | :type '(repeat string) | 263 | :type '(repeat string) |
| 264 | :package-version "1.0" :version "30.1") | 264 | :package-version '(which-key . "1.0") :version "30.1") |
| 265 | 265 | ||
| 266 | (defcustom which-key-buffer-name " *which-key*" | 266 | (defcustom which-key-buffer-name " *which-key*" |
| 267 | "Name of which-key buffer." | 267 | "Name of which-key buffer." |
| 268 | :type 'string | 268 | :type 'string |
| 269 | :package-version "1.0" :version "30.1") | 269 | :package-version '(which-key . "1.0") :version "30.1") |
| 270 | 270 | ||
| 271 | (defcustom which-key-show-prefix 'echo | 271 | (defcustom which-key-show-prefix 'echo |
| 272 | "Whether to and where to display the current prefix sequence. | 272 | "Whether to and where to display the current prefix sequence. |
| @@ -278,7 +278,7 @@ and nil. nil turns the feature off." | |||
| 278 | (const :tag "In the echo area" echo) | 278 | (const :tag "In the echo area" echo) |
| 279 | (const :tag "In the mode-line" mode-line) | 279 | (const :tag "In the mode-line" mode-line) |
| 280 | (const :tag "Hide" nil)) | 280 | (const :tag "Hide" nil)) |
| 281 | :package-version "1.0" :version "30.1") | 281 | :package-version '(which-key . "1.0") :version "30.1") |
| 282 | 282 | ||
| 283 | (defcustom which-key-popup-type 'side-window | 283 | (defcustom which-key-popup-type 'side-window |
| 284 | "Supported types are minibuffer, side-window, frame, and custom." | 284 | "Supported types are minibuffer, side-window, frame, and custom." |
| @@ -286,18 +286,18 @@ and nil. nil turns the feature off." | |||
| 286 | (const :tag "Show in side window" side-window) | 286 | (const :tag "Show in side window" side-window) |
| 287 | (const :tag "Show in popup frame" frame) | 287 | (const :tag "Show in popup frame" frame) |
| 288 | (const :tag "Use your custom display functions" custom)) | 288 | (const :tag "Use your custom display functions" custom)) |
| 289 | :package-version "1.0" :version "30.1") | 289 | :package-version '(which-key . "1.0") :version "30.1") |
| 290 | 290 | ||
| 291 | (defcustom which-key-min-display-lines 1 | 291 | (defcustom which-key-min-display-lines 1 |
| 292 | "Minimum number of horizontal lines to display in the which-key buffer." | 292 | "Minimum number of horizontal lines to display in the which-key buffer." |
| 293 | :type 'integer | 293 | :type 'integer |
| 294 | :package-version "1.0" :version "30.1") | 294 | :package-version '(which-key . "1.0") :version "30.1") |
| 295 | 295 | ||
| 296 | (defcustom which-key-max-display-columns nil | 296 | (defcustom which-key-max-display-columns nil |
| 297 | "Maximum number of columns to display in the which-key buffer. | 297 | "Maximum number of columns to display in the which-key buffer. |
| 298 | A value of nil means don't impose a maximum." | 298 | A value of nil means don't impose a maximum." |
| 299 | :type '(choice integer (const :tag "Unbounded" nil)) | 299 | :type '(choice integer (const :tag "Unbounded" nil)) |
| 300 | :package-version "1.0" :version "30.1") | 300 | :package-version '(which-key . "1.0") :version "30.1") |
| 301 | 301 | ||
| 302 | (defcustom which-key-side-window-location 'bottom | 302 | (defcustom which-key-side-window-location 'bottom |
| 303 | "Location of which-key popup when `which-key-popup-type' is side-window. | 303 | "Location of which-key popup when `which-key-popup-type' is side-window. |
| @@ -311,7 +311,7 @@ location is tried." | |||
| 311 | (const top) | 311 | (const top) |
| 312 | (const (right bottom)) | 312 | (const (right bottom)) |
| 313 | (const (bottom right))) | 313 | (const (bottom right))) |
| 314 | :package-version "1.0" :version "30.1") | 314 | :package-version '(which-key . "1.0") :version "30.1") |
| 315 | 315 | ||
| 316 | (defcustom which-key-side-window-slot 0 | 316 | (defcustom which-key-side-window-slot 0 |
| 317 | "The `slot' to use for `display-buffer-in-side-window'. | 317 | "The `slot' to use for `display-buffer-in-side-window'. |
| @@ -325,31 +325,31 @@ preceding (that is, above or on the left of) the middle slot. A | |||
| 325 | positive value means use a slot following (that is, below or on | 325 | positive value means use a slot following (that is, below or on |
| 326 | the right of) the middle slot. The default is zero." | 326 | the right of) the middle slot. The default is zero." |
| 327 | :type 'integer | 327 | :type 'integer |
| 328 | :package-version "1.0" :version "30.1") | 328 | :package-version '(which-key . "1.0") :version "30.1") |
| 329 | 329 | ||
| 330 | (defcustom which-key-side-window-max-width 0.333 | 330 | (defcustom which-key-side-window-max-width 0.333 |
| 331 | "Maximum width of which-key popup when type is side-window. | 331 | "Maximum width of which-key popup when type is side-window. |
| 332 | This variable can also be a number between 0 and 1. In that case, | 332 | This variable can also be a number between 0 and 1. In that case, |
| 333 | it denotes a percentage out of the frame's width." | 333 | it denotes a percentage out of the frame's width." |
| 334 | :type 'float | 334 | :type 'float |
| 335 | :package-version "1.0" :version "30.1") | 335 | :package-version '(which-key . "1.0") :version "30.1") |
| 336 | 336 | ||
| 337 | (defcustom which-key-side-window-max-height 0.25 | 337 | (defcustom which-key-side-window-max-height 0.25 |
| 338 | "Maximum height of which-key popup when type is side-window. | 338 | "Maximum height of which-key popup when type is side-window. |
| 339 | This variable can also be a number between 0 and 1. In that case, it denotes | 339 | This variable can also be a number between 0 and 1. In that case, it denotes |
| 340 | a percentage out of the frame's height." | 340 | a percentage out of the frame's height." |
| 341 | :type 'float | 341 | :type 'float |
| 342 | :package-version "1.0" :version "30.1") | 342 | :package-version '(which-key . "1.0") :version "30.1") |
| 343 | 343 | ||
| 344 | (defcustom which-key-frame-max-width 60 | 344 | (defcustom which-key-frame-max-width 60 |
| 345 | "Maximum width of which-key popup when type is frame." | 345 | "Maximum width of which-key popup when type is frame." |
| 346 | :type 'natnum | 346 | :type 'natnum |
| 347 | :package-version "1.0" :version "30.1") | 347 | :package-version '(which-key . "1.0") :version "30.1") |
| 348 | 348 | ||
| 349 | (defcustom which-key-frame-max-height 20 | 349 | (defcustom which-key-frame-max-height 20 |
| 350 | "Maximum height of which-key popup when type is frame." | 350 | "Maximum height of which-key popup when type is frame." |
| 351 | :type 'natnum | 351 | :type 'natnum |
| 352 | :package-version "1.0" :version "30.1") | 352 | :package-version '(which-key . "1.0") :version "30.1") |
| 353 | 353 | ||
| 354 | (defcustom which-key-allow-imprecise-window-fit (not (display-graphic-p)) | 354 | (defcustom which-key-allow-imprecise-window-fit (not (display-graphic-p)) |
| 355 | "Allow which-key to use a simpler method for resizing the popup. | 355 | "Allow which-key to use a simpler method for resizing the popup. |
| @@ -359,13 +359,13 @@ this on may help. | |||
| 359 | See https://github.com/justbur/emacs-which-key/issues/130 | 359 | See https://github.com/justbur/emacs-which-key/issues/130 |
| 360 | and https://github.com/justbur/emacs-which-key/issues/225." | 360 | and https://github.com/justbur/emacs-which-key/issues/225." |
| 361 | :type 'boolean | 361 | :type 'boolean |
| 362 | :package-version "1.0" :version "30.1") | 362 | :package-version '(which-key . "1.0") :version "30.1") |
| 363 | 363 | ||
| 364 | (defcustom which-key-show-remaining-keys nil | 364 | (defcustom which-key-show-remaining-keys nil |
| 365 | "Show remaining keys in last slot, when keys are hidden." | 365 | "Show remaining keys in last slot, when keys are hidden." |
| 366 | :type '(radio (const :tag "Yes" t) | 366 | :type '(radio (const :tag "Yes" t) |
| 367 | (const :tag "No" nil)) | 367 | (const :tag "No" nil)) |
| 368 | :package-version "1.0" :version "30.1") | 368 | :package-version '(which-key . "1.0") :version "30.1") |
| 369 | 369 | ||
| 370 | (defcustom which-key-sort-order #'which-key-key-order | 370 | (defcustom which-key-sort-order #'which-key-key-order |
| 371 | "Order in which the key bindings are sorted. | 371 | "Order in which the key bindings are sorted. |
| @@ -385,25 +385,25 @@ information." | |||
| 385 | (function-item which-key-description-order) | 385 | (function-item which-key-description-order) |
| 386 | (function-item which-key-prefix-then-key-order) | 386 | (function-item which-key-prefix-then-key-order) |
| 387 | (function-item which-key-local-then-key-order)) | 387 | (function-item which-key-local-then-key-order)) |
| 388 | :package-version "1.0" :version "30.1") | 388 | :package-version '(which-key . "1.0") :version "30.1") |
| 389 | 389 | ||
| 390 | (defcustom which-key-sort-uppercase-first t | 390 | (defcustom which-key-sort-uppercase-first t |
| 391 | "If non-nil, uppercase comes before lowercase in sorting. | 391 | "If non-nil, uppercase comes before lowercase in sorting. |
| 392 | This applies to the function chosen in | 392 | This applies to the function chosen in |
| 393 | `which-key-sort-order'. Otherwise, the order is reversed." | 393 | `which-key-sort-order'. Otherwise, the order is reversed." |
| 394 | :type 'boolean | 394 | :type 'boolean |
| 395 | :package-version "1.0" :version "30.1") | 395 | :package-version '(which-key . "1.0") :version "30.1") |
| 396 | 396 | ||
| 397 | (defcustom which-key-paging-prefixes '() | 397 | (defcustom which-key-paging-prefixes '() |
| 398 | "Enable paging for these prefixes." | 398 | "Enable paging for these prefixes." |
| 399 | :type '(repeat string) | 399 | :type '(repeat string) |
| 400 | :package-version "1.0" :version "30.1") | 400 | :package-version '(which-key . "1.0") :version "30.1") |
| 401 | 401 | ||
| 402 | (defcustom which-key-paging-key "<f5>" | 402 | (defcustom which-key-paging-key "<f5>" |
| 403 | "Key to use for changing pages. | 403 | "Key to use for changing pages. |
| 404 | Bound after each of the prefixes in `which-key-paging-prefixes'" | 404 | Bound after each of the prefixes in `which-key-paging-prefixes'" |
| 405 | :type 'string | 405 | :type 'string |
| 406 | :package-version "1.0" :version "30.1") | 406 | :package-version '(which-key . "1.0") :version "30.1") |
| 407 | 407 | ||
| 408 | ;; (defcustom which-key-undo-key nil | 408 | ;; (defcustom which-key-undo-key nil |
| 409 | ;; "Key (string) to use for undoing keypresses. Bound recursively | 409 | ;; "Key (string) to use for undoing keypresses. Bound recursively |
| @@ -422,7 +422,7 @@ Normally `help-char' after a prefix calls | |||
| 422 | `describe-prefix-bindings'. This changes that command to a | 422 | `describe-prefix-bindings'. This changes that command to a |
| 423 | which-key paging command when `which-key-mode' is active." | 423 | which-key paging command when `which-key-mode' is active." |
| 424 | :type 'boolean | 424 | :type 'boolean |
| 425 | :package-version "1.0" :version "30.1") | 425 | :package-version '(which-key . "1.0") :version "30.1") |
| 426 | 426 | ||
| 427 | (defcustom which-key-show-early-on-C-h nil | 427 | (defcustom which-key-show-early-on-C-h nil |
| 428 | "Allow \\`C-h' (`help-char') to trigger which-key popup before timer. | 428 | "Allow \\`C-h' (`help-char') to trigger which-key popup before timer. |
| @@ -438,7 +438,7 @@ using \\`C-h'. | |||
| 438 | Note that `which-key-idle-delay' should be set before turning on | 438 | Note that `which-key-idle-delay' should be set before turning on |
| 439 | `which-key-mode'." | 439 | `which-key-mode'." |
| 440 | :type 'boolean | 440 | :type 'boolean |
| 441 | :package-version "1.0" :version "30.1") | 441 | :package-version '(which-key . "1.0") :version "30.1") |
| 442 | 442 | ||
| 443 | (defcustom which-key-preserve-window-configuration nil | 443 | (defcustom which-key-preserve-window-configuration nil |
| 444 | "Save and restore window configuration around which-key popup display. | 444 | "Save and restore window configuration around which-key popup display. |
| @@ -448,7 +448,7 @@ prevents which-key from changing window position of visible | |||
| 448 | buffers. Only taken into account when popup type is | 448 | buffers. Only taken into account when popup type is |
| 449 | side-window." | 449 | side-window." |
| 450 | :type 'boolean | 450 | :type 'boolean |
| 451 | :package-version "1.0" :version "30.1") | 451 | :package-version '(which-key . "1.0") :version "30.1") |
| 452 | 452 | ||
| 453 | (defvar which-key-C-h-map-prompt | 453 | (defvar which-key-C-h-map-prompt |
| 454 | (concat " \\<which-key-C-h-map>" | 454 | (concat " \\<which-key-C-h-map>" |
| @@ -516,7 +516,7 @@ of terminals issue META modifier for the Alt key. | |||
| 516 | 516 | ||
| 517 | See Info node `(emacs)Modifier Keys'." | 517 | See Info node `(emacs)Modifier Keys'." |
| 518 | :type 'boolean | 518 | :type 'boolean |
| 519 | :package-version "1.0" :version "30.1") | 519 | :package-version '(which-key . "1.0") :version "30.1") |
| 520 | 520 | ||
| 521 | (defcustom which-key-delay-functions nil | 521 | (defcustom which-key-delay-functions nil |
| 522 | "List of functions that may delay the which-key popup. | 522 | "List of functions that may delay the which-key popup. |
| @@ -532,7 +532,7 @@ this list to return a value is the value that is used. | |||
| 532 | The delay time is effectively added to the normal | 532 | The delay time is effectively added to the normal |
| 533 | `which-key-idle-delay'." | 533 | `which-key-idle-delay'." |
| 534 | :type '(repeat function) | 534 | :type '(repeat function) |
| 535 | :package-version "1.0" :version "30.1") | 535 | :package-version '(which-key . "1.0") :version "30.1") |
| 536 | 536 | ||
| 537 | (defcustom which-key-allow-regexps nil | 537 | (defcustom which-key-allow-regexps nil |
| 538 | "A list of regexp strings to use to filter key sequences. | 538 | "A list of regexp strings to use to filter key sequences. |
| @@ -540,7 +540,7 @@ When non-nil, for a key sequence to trigger the which-key popup | |||
| 540 | it must match one of the regexps in this list. The format of the | 540 | it must match one of the regexps in this list. The format of the |
| 541 | key sequences is what is produced by `key-description'." | 541 | key sequences is what is produced by `key-description'." |
| 542 | :type '(repeat regexp) | 542 | :type '(repeat regexp) |
| 543 | :package-version "1.0" :version "30.1") | 543 | :package-version '(which-key . "1.0") :version "30.1") |
| 544 | 544 | ||
| 545 | (defcustom which-key-inhibit-regexps nil | 545 | (defcustom which-key-inhibit-regexps nil |
| 546 | "A list of regexp strings to use to filter key sequences. | 546 | "A list of regexp strings to use to filter key sequences. |
| @@ -548,7 +548,7 @@ When non-nil, for a key sequence to trigger the which-key popup | |||
| 548 | it cannot match one of the regexps in this list. The format of | 548 | it cannot match one of the regexps in this list. The format of |
| 549 | the key sequences is what is produced by `key-description'." | 549 | the key sequences is what is produced by `key-description'." |
| 550 | :type '(repeat regexp) | 550 | :type '(repeat regexp) |
| 551 | :package-version "1.0" :version "30.1") | 551 | :package-version '(which-key . "1.0") :version "30.1") |
| 552 | 552 | ||
| 553 | (defcustom which-key-show-transient-maps nil | 553 | (defcustom which-key-show-transient-maps nil |
| 554 | "Show keymaps created by `set-transient-map' when applicable. | 554 | "Show keymaps created by `set-transient-map' when applicable. |
| @@ -557,7 +557,7 @@ More specifically, detect when `overriding-terminal-local-map' is | |||
| 557 | set (this is the keymap used by `set-transient-map') and display | 557 | set (this is the keymap used by `set-transient-map') and display |
| 558 | it." | 558 | it." |
| 559 | :type 'boolean | 559 | :type 'boolean |
| 560 | :package-version "1.0" :version "30.1") | 560 | :package-version '(which-key . "1.0") :version "30.1") |
| 561 | 561 | ||
| 562 | (make-obsolete-variable | 562 | (make-obsolete-variable |
| 563 | 'which-key-enable-extended-define-key | 563 | 'which-key-enable-extended-define-key |
| @@ -568,7 +568,7 @@ it." | |||
| 568 | (defcustom which-key-init-buffer-hook '() | 568 | (defcustom which-key-init-buffer-hook '() |
| 569 | "Hook run when which-key buffer is initialized." | 569 | "Hook run when which-key buffer is initialized." |
| 570 | :type 'hook | 570 | :type 'hook |
| 571 | :package-version "1.0" :version "30.1") | 571 | :package-version '(which-key . "1.0") :version "30.1") |
| 572 | 572 | ||
| 573 | ;;;; Faces | 573 | ;;;; Faces |
| 574 | 574 | ||
| @@ -581,31 +581,31 @@ it." | |||
| 581 | '((t . (:inherit font-lock-constant-face))) | 581 | '((t . (:inherit font-lock-constant-face))) |
| 582 | "Face for which-key keys." | 582 | "Face for which-key keys." |
| 583 | :group 'which-key-faces | 583 | :group 'which-key-faces |
| 584 | :package-version "1.0" :version "30.1") | 584 | :package-version '(which-key . "1.0") :version "30.1") |
| 585 | 585 | ||
| 586 | (defface which-key-separator-face | 586 | (defface which-key-separator-face |
| 587 | '((t . (:inherit font-lock-comment-face))) | 587 | '((t . (:inherit font-lock-comment-face))) |
| 588 | "Face for the separator (default separator is an arrow)." | 588 | "Face for the separator (default separator is an arrow)." |
| 589 | :group 'which-key-faces | 589 | :group 'which-key-faces |
| 590 | :package-version "1.0" :version "30.1") | 590 | :package-version '(which-key . "1.0") :version "30.1") |
| 591 | 591 | ||
| 592 | (defface which-key-note-face | 592 | (defface which-key-note-face |
| 593 | '((t . (:inherit which-key-separator-face))) | 593 | '((t . (:inherit which-key-separator-face))) |
| 594 | "Face for notes or hints occasionally provided." | 594 | "Face for notes or hints occasionally provided." |
| 595 | :group 'which-key-faces | 595 | :group 'which-key-faces |
| 596 | :package-version "1.0" :version "30.1") | 596 | :package-version '(which-key . "1.0") :version "30.1") |
| 597 | 597 | ||
| 598 | (defface which-key-command-description-face | 598 | (defface which-key-command-description-face |
| 599 | '((t . (:inherit font-lock-function-name-face))) | 599 | '((t . (:inherit font-lock-function-name-face))) |
| 600 | "Face for the key description when it is a command." | 600 | "Face for the key description when it is a command." |
| 601 | :group 'which-key-faces | 601 | :group 'which-key-faces |
| 602 | :package-version "1.0" :version "30.1") | 602 | :package-version '(which-key . "1.0") :version "30.1") |
| 603 | 603 | ||
| 604 | (defface which-key-local-map-description-face | 604 | (defface which-key-local-map-description-face |
| 605 | '((t . (:inherit which-key-command-description-face))) | 605 | '((t . (:inherit which-key-command-description-face))) |
| 606 | "Face for the key description when it is found in `current-local-map'." | 606 | "Face for the key description when it is found in `current-local-map'." |
| 607 | :group 'which-key-faces | 607 | :group 'which-key-faces |
| 608 | :package-version "1.0" :version "30.1") | 608 | :package-version '(which-key . "1.0") :version "30.1") |
| 609 | 609 | ||
| 610 | (defface which-key-highlighted-command-face | 610 | (defface which-key-highlighted-command-face |
| 611 | '((t . (:inherit (which-key-command-description-face highlight)))) | 611 | '((t . (:inherit (which-key-command-description-face highlight)))) |
| @@ -613,25 +613,25 @@ it." | |||
| 613 | A command is highlighted, when it matches a string in | 613 | A command is highlighted, when it matches a string in |
| 614 | `which-key-highlighted-command-list'." | 614 | `which-key-highlighted-command-list'." |
| 615 | :group 'which-key-faces | 615 | :group 'which-key-faces |
| 616 | :package-version "1.0" :version "30.1") | 616 | :package-version '(which-key . "1.0") :version "30.1") |
| 617 | 617 | ||
| 618 | (defface which-key-group-description-face | 618 | (defface which-key-group-description-face |
| 619 | '((t . (:inherit font-lock-keyword-face))) | 619 | '((t . (:inherit font-lock-keyword-face))) |
| 620 | "Face for the key description when it is a group or prefix." | 620 | "Face for the key description when it is a group or prefix." |
| 621 | :group 'which-key-faces | 621 | :group 'which-key-faces |
| 622 | :package-version "1.0" :version "30.1") | 622 | :package-version '(which-key . "1.0") :version "30.1") |
| 623 | 623 | ||
| 624 | (defface which-key-special-key-face | 624 | (defface which-key-special-key-face |
| 625 | '((t . (:inherit which-key-key-face :inverse-video t :weight bold))) | 625 | '((t . (:inherit which-key-key-face :inverse-video t :weight bold))) |
| 626 | "Face for special keys (\\`SPC', \\`TAB', \\`RET')." | 626 | "Face for special keys (\\`SPC', \\`TAB', \\`RET')." |
| 627 | :group 'which-key-faces | 627 | :group 'which-key-faces |
| 628 | :package-version "1.0" :version "30.1") | 628 | :package-version '(which-key . "1.0") :version "30.1") |
| 629 | 629 | ||
| 630 | (defface which-key-docstring-face | 630 | (defface which-key-docstring-face |
| 631 | '((t . (:inherit which-key-note-face))) | 631 | '((t . (:inherit which-key-note-face))) |
| 632 | "Face for docstrings." | 632 | "Face for docstrings." |
| 633 | :group 'which-key-faces | 633 | :group 'which-key-faces |
| 634 | :package-version "1.0" :version "30.1") | 634 | :package-version '(which-key . "1.0") :version "30.1") |
| 635 | 635 | ||
| 636 | ;;;; Custom popup | 636 | ;;;; Custom popup |
| 637 | 637 | ||
| @@ -642,14 +642,14 @@ return the maximum height in lines and width in characters of the | |||
| 642 | which-key popup in the form a cons cell (height . width)." | 642 | which-key popup in the form a cons cell (height . width)." |
| 643 | :group 'which-key | 643 | :group 'which-key |
| 644 | :type '(choice function (const nil)) | 644 | :type '(choice function (const nil)) |
| 645 | :package-version "1.0" :version "30.1") | 645 | :package-version '(which-key . "1.0") :version "30.1") |
| 646 | 646 | ||
| 647 | (defcustom which-key-custom-hide-popup-function nil | 647 | (defcustom which-key-custom-hide-popup-function nil |
| 648 | "Set a custom hide-popup function. | 648 | "Set a custom hide-popup function. |
| 649 | It takes no arguments and the return value is ignored." | 649 | It takes no arguments and the return value is ignored." |
| 650 | :group 'which-key | 650 | :group 'which-key |
| 651 | :type '(choice function (const nil)) | 651 | :type '(choice function (const nil)) |
| 652 | :package-version "1.0" :version "30.1") | 652 | :package-version '(which-key . "1.0") :version "30.1") |
| 653 | 653 | ||
| 654 | (defcustom which-key-custom-show-popup-function nil | 654 | (defcustom which-key-custom-show-popup-function nil |
| 655 | "Set a custom show-popup function. | 655 | "Set a custom show-popup function. |
| @@ -658,13 +658,13 @@ width) in lines and characters respectively. The return value is | |||
| 658 | ignored." | 658 | ignored." |
| 659 | :group 'which-key | 659 | :group 'which-key |
| 660 | :type '(choice function (const nil)) | 660 | :type '(choice function (const nil)) |
| 661 | :package-version "1.0" :version "30.1") | 661 | :package-version '(which-key . "1.0") :version "30.1") |
| 662 | 662 | ||
| 663 | (defcustom which-key-lighter " WK" | 663 | (defcustom which-key-lighter " WK" |
| 664 | "Minor mode lighter to use in the mode-line." | 664 | "Minor mode lighter to use in the mode-line." |
| 665 | :group 'which-key | 665 | :group 'which-key |
| 666 | :type 'string | 666 | :type 'string |
| 667 | :package-version "1.0" :version "30.1") | 667 | :package-version '(which-key . "1.0") :version "30.1") |
| 668 | 668 | ||
| 669 | (defvar which-key-inhibit nil | 669 | (defvar which-key-inhibit nil |
| 670 | "Prevent which-key from popping up momentarily. | 670 | "Prevent which-key from popping up momentarily. |
| @@ -681,7 +681,7 @@ popup. If any function returns a non-nil value, the popup will | |||
| 681 | not display." | 681 | not display." |
| 682 | :group 'which-key | 682 | :group 'which-key |
| 683 | :type 'hook | 683 | :type 'hook |
| 684 | :package-version "1.0" :version "30.1") | 684 | :package-version '(which-key . "1.0") :version "30.1") |
| 685 | 685 | ||
| 686 | (defvar which-key-keymap-history nil | 686 | (defvar which-key-keymap-history nil |
| 687 | "History of keymap selections. | 687 | "History of keymap selections. |
| @@ -812,7 +812,7 @@ allow which-key to support packages that insert non-standard | |||
| 812 | `keys' into the key sequence being read by Emacs." | 812 | `keys' into the key sequence being read by Emacs." |
| 813 | :group 'which-key | 813 | :group 'which-key |
| 814 | :type 'function | 814 | :type 'function |
| 815 | :package-version "1.0" :version "30.1") | 815 | :package-version '(which-key . "1.0") :version "30.1") |
| 816 | 816 | ||
| 817 | 817 | ||
| 818 | ;;;; Evil | 818 | ;;;; Evil |
| @@ -826,7 +826,7 @@ setting this to non-nil will override this behavior for evil | |||
| 826 | operators." | 826 | operators." |
| 827 | :group 'which-key | 827 | :group 'which-key |
| 828 | :type 'boolean | 828 | :type 'boolean |
| 829 | :package-version "1.0" :version "30.1") | 829 | :package-version '(which-key . "1.0") :version "30.1") |
| 830 | 830 | ||
| 831 | (defcustom which-key-show-operator-state-maps nil | 831 | (defcustom which-key-show-operator-state-maps nil |
| 832 | "Show the keys following an evil command that reads a motion. | 832 | "Show the keys following an evil command that reads a motion. |
| @@ -836,7 +836,7 @@ might be some valid keys missing and it might be showing some | |||
| 836 | invalid keys." | 836 | invalid keys." |
| 837 | :group 'which-key | 837 | :group 'which-key |
| 838 | :type 'boolean | 838 | :type 'boolean |
| 839 | :package-version "1.0" :version "30.1") | 839 | :package-version '(which-key . "1.0") :version "30.1") |
| 840 | 840 | ||
| 841 | (defun which-key-evil-this-operator-p () | 841 | (defun which-key-evil-this-operator-p () |
| 842 | (and which-key-allow-evil-operators | 842 | (and which-key-allow-evil-operators |
| @@ -948,6 +948,10 @@ given your settings)." | |||
| 948 | #'which-key--hide-popup-on-frame-size-change) | 948 | #'which-key--hide-popup-on-frame-size-change) |
| 949 | (which-key--stop-timer))) | 949 | (which-key--stop-timer))) |
| 950 | 950 | ||
| 951 | ;; Update `customize-package-emacs-version-alist'. | ||
| 952 | (add-to-list 'customize-package-emacs-version-alist | ||
| 953 | '(which-key ("1.0" . "30.1"))) | ||
| 954 | |||
| 951 | (defun which-key--init-buffer () | 955 | (defun which-key--init-buffer () |
| 952 | "Initialize which-key buffer." | 956 | "Initialize which-key buffer." |
| 953 | (unless (buffer-live-p which-key--buffer) | 957 | (unless (buffer-live-p which-key--buffer) |
diff --git a/test/lisp/emacs-lisp/tabulated-list-tests.el b/test/lisp/emacs-lisp/tabulated-list-tests.el index e53268b3f14..7edcaaf9441 100644 --- a/test/lisp/emacs-lisp/tabulated-list-tests.el +++ b/test/lisp/emacs-lisp/tabulated-list-tests.el | |||
| @@ -171,4 +171,31 @@ | |||
| 171 | 4clojure 4clojure 1507 obsolete Open and evaluate 4clojure.com questions | 171 | 4clojure 4clojure 1507 obsolete Open and evaluate 4clojure.com questions |
| 172 | "))))) | 172 | "))))) |
| 173 | 173 | ||
| 174 | (ert-deftest tabulated-list-groups-with-path () | ||
| 175 | (with-temp-buffer | ||
| 176 | (tabulated-list-mode) | ||
| 177 | (setq tabulated-list-groups | ||
| 178 | (tabulated-list-groups | ||
| 179 | tabulated-list--test-entries | ||
| 180 | `( :path-function (lambda (entry) | ||
| 181 | (list (list (aref (cadr entry) 3)))) | ||
| 182 | :sort-function (lambda (groups _level) | ||
| 183 | (sort groups :in-place t :key #'car))))) | ||
| 184 | (setq tabulated-list-format tabulated-list--test-format) | ||
| 185 | (setq tabulated-list-padding 7) | ||
| 186 | (tabulated-list-init-header) | ||
| 187 | (tabulated-list-print) | ||
| 188 | ;; Basic printing. | ||
| 189 | (should (string-equal | ||
| 190 | (buffer-substring-no-properties (point-min) (point-max)) | ||
| 191 | "\ | ||
| 192 | * available | ||
| 193 | abc-mode abc-mode 944 available Major mode for editing abc music files | ||
| 194 | * installed | ||
| 195 | zzzz-game zzzz-game 2113 installed play zzzz in Emacs | ||
| 196 | mode mode 1128 installed A simple mode for editing Actionscript 3 files | ||
| 197 | * obsolete | ||
| 198 | 4clojure 4clojure 1507 obsolete Open and evaluate 4clojure.com questions | ||
| 199 | ")))) | ||
| 200 | |||
| 174 | ;;; tabulated-list-tests.el ends here | 201 | ;;; tabulated-list-tests.el ends here |
diff --git a/test/lisp/erc/erc-networks-tests.el b/test/lisp/erc/erc-networks-tests.el index f0a7c37ddf2..e84cca68cdd 100644 --- a/test/lisp/erc/erc-networks-tests.el +++ b/test/lisp/erc/erc-networks-tests.el | |||
| @@ -133,10 +133,12 @@ | |||
| 133 | (with-temp-buffer | 133 | (with-temp-buffer |
| 134 | (setq erc-networks--id (erc-networks--id-fixed-create 'oldest) | 134 | (setq erc-networks--id (erc-networks--id-fixed-create 'oldest) |
| 135 | oldest (current-buffer)) | 135 | oldest (current-buffer)) |
| 136 | (sleep-for 0.02) | ||
| 136 | 137 | ||
| 137 | (with-temp-buffer | 138 | (with-temp-buffer |
| 138 | (setq erc-networks--id (erc-networks--id-fixed-create 'middle) | 139 | (setq erc-networks--id (erc-networks--id-fixed-create 'middle) |
| 139 | middle (current-buffer)) | 140 | middle (current-buffer)) |
| 141 | (sleep-for 0.02) | ||
| 140 | 142 | ||
| 141 | (with-temp-buffer | 143 | (with-temp-buffer |
| 142 | (setq erc-networks--id (erc-networks--id-fixed-create 'newest) | 144 | (setq erc-networks--id (erc-networks--id-fixed-create 'newest) |
diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby-bracketed-args-indent.rb b/test/lisp/progmodes/ruby-mode-resources/ruby-bracketed-args-indent.rb new file mode 100644 index 00000000000..c1aaff78ac9 --- /dev/null +++ b/test/lisp/progmodes/ruby-mode-resources/ruby-bracketed-args-indent.rb | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | foo | ||
| 2 | .update({ | ||
| 3 | key => value, | ||
| 4 | other_key: | ||
| 5 | }, { | ||
| 6 | key => value, | ||
| 7 | other_key: | ||
| 8 | }) | ||
| 9 | |||
| 10 | update([ | ||
| 11 | 1, | ||
| 12 | 2 | ||
| 13 | ], [ | ||
| 14 | 3, | ||
| 15 | 4 | ||
| 16 | ]) | ||
| 17 | |||
| 18 | update([{ | ||
| 19 | key: "value" | ||
| 20 | }, { | ||
| 21 | key: "value" | ||
| 22 | }]) | ||
| 23 | |||
| 24 | update(arg1, { | ||
| 25 | foo: "bar" | ||
| 26 | }, [ | ||
| 27 | 1, | ||
| 28 | 2 | ||
| 29 | ], arg2) | ||
| 30 | |||
| 31 | def foo | ||
| 32 | foo.update( | ||
| 33 | { | ||
| 34 | key => value, | ||
| 35 | other_key: foo | ||
| 36 | } | ||
| 37 | ) | ||
| 38 | end | ||
| 39 | |||
| 40 | # Local Variables: | ||
| 41 | # ruby-bracketed-args-indent: nil | ||
| 42 | # End: | ||
diff --git a/test/lisp/progmodes/ruby-mode-tests.el b/test/lisp/progmodes/ruby-mode-tests.el index 2b8506a7adc..c9cde791baa 100644 --- a/test/lisp/progmodes/ruby-mode-tests.el +++ b/test/lisp/progmodes/ruby-mode-tests.el | |||
| @@ -992,6 +992,7 @@ VALUES-PLIST is a list with alternating index and value elements." | |||
| 992 | (ruby-deftest-indent "ruby-method-call-indent.rb") | 992 | (ruby-deftest-indent "ruby-method-call-indent.rb") |
| 993 | (ruby-deftest-indent "ruby-method-params-indent.rb") | 993 | (ruby-deftest-indent "ruby-method-params-indent.rb") |
| 994 | (ruby-deftest-indent "ruby-parenless-call-arguments-indent.rb") | 994 | (ruby-deftest-indent "ruby-parenless-call-arguments-indent.rb") |
| 995 | (ruby-deftest-indent "ruby-bracketed-args-indent.rb") | ||
| 995 | 996 | ||
| 996 | (ert-deftest ruby--test-chained-indentation () | 997 | (ert-deftest ruby--test-chained-indentation () |
| 997 | (with-temp-buffer | 998 | (with-temp-buffer |
diff --git a/test/lisp/progmodes/ruby-ts-mode-tests.el b/test/lisp/progmodes/ruby-ts-mode-tests.el index 61ef80eb610..05d98974acf 100644 --- a/test/lisp/progmodes/ruby-ts-mode-tests.el +++ b/test/lisp/progmodes/ruby-ts-mode-tests.el | |||
| @@ -326,6 +326,7 @@ The whitespace before and including \"|\" on each line is removed." | |||
| 326 | (ruby-ts-deftest-indent "ruby-method-call-indent.rb") | 326 | (ruby-ts-deftest-indent "ruby-method-call-indent.rb") |
| 327 | (ruby-ts-deftest-indent "ruby-method-params-indent.rb") | 327 | (ruby-ts-deftest-indent "ruby-method-params-indent.rb") |
| 328 | (ruby-ts-deftest-indent "ruby-parenless-call-arguments-indent.rb") | 328 | (ruby-ts-deftest-indent "ruby-parenless-call-arguments-indent.rb") |
| 329 | (ruby-ts-deftest-indent "ruby-bracketed-args-indent.rb") | ||
| 329 | 330 | ||
| 330 | (provide 'ruby-ts-mode-tests) | 331 | (provide 'ruby-ts-mode-tests) |
| 331 | 332 | ||