aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorPo Lu2024-06-30 10:06:09 +0800
committerPo Lu2024-06-30 10:06:09 +0800
commite2561e267fd2eb37b140a293baec79096f03290b (patch)
tree937291ce231a708b51541bbce5f76151b344a0e0 /doc
parentf0f883da4b410c606b46b61c80b874ead08335ea (diff)
parent72cf9964f3c0fd63332884b8145399f1784de7f1 (diff)
downloademacs-e2561e267fd2eb37b140a293baec79096f03290b.tar.gz
emacs-e2561e267fd2eb37b140a293baec79096f03290b.zip
Merge from savannah/emacs-30
72cf9964f3c Inaccuracy in efaq.texi fc48e9e8ed5 ; Fix typos in DOS Makefile scripts 9b8d754579f ; * etc/NEWS: Explain Nextstep. 8819e5a45d5 Fix treesit crash (bug#71681) eaf2dc96c1f ; Fix SHR test on MS-Windows 57880f597c5 Delete redundant mention of `with-eval-after-load' ea8ce984342 * doc/misc/efaq.texi (New in Emacs 30): Fix typos. 45a20d781a9 ; Fix typos in symbols d95f039af43 Document security fixes in FAQ d063af203c8 Add "New in Emacs 30" to FAQ ca6b484162b ; * etc/NEWS: Move "Minibuffer and Completions" 35c46663e49 ; * etc/NEWS: Move item to "Lisp Changes". 0515b38d289 ; * etc/NEWS: Move keyboard macro items closer together. 22af3a71039 ; * etc/NEWS: More copy-edits. 000ef8876ae ; * etc/NEWS: Move items to "Incompatible Lisp Changes". 4088dc8e4ce ; * etc/NEWS: Rearrange "Incompatible Lisp Changes". 179800f36bb ; * lisp/epg.el (epg--start): Add commentary about encoding. 73898f0214c Fix non-ASCII filename operatiion on EasyPG (bug#71500) a65b6aac6b5 Silence warning with global minor mode :predicate f5f7343ac41 ; * etc/NEWS: Move an item to "Startup Changes" c95066bf188 ; * etc/NEWS: Move some Lisp items to better place. bf7db88ce1f ; * etc/NEWS: Rearrange "Editing Changes in Emacs 30.1" 000424eb9eb ; * etc/NEWS: Make touch screen support more prominent. 5b5671587fb ; * etc/NEWS: Rearrange "Changes in Emacs 30.1". 31124abdefe ; * lisp/thingatpt.el (sexp-at-point): Doc fix (bug#71777). 44f269d6e60 Fix: make 'xwidget-webkit-scroll-backward' scroll backwards 358085997c6 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... 736b7cad406 Add jsdoc support to php-ts-mode in <script> element 5f3d964e397 Update to Transient v0.7.2-4-gf75bc48d # Conflicts: # etc/NEWS
Diffstat (limited to 'doc')
-rw-r--r--doc/misc/efaq.texi103
-rw-r--r--doc/misc/transient.texi31
2 files changed, 133 insertions, 1 deletions
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 5b722f9fd77..7ab9731ff8f 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -847,6 +847,7 @@ in the Emacs development repository (@pxref{Latest version of Emacs}).
847@menu 847@menu
848* Origin of the term Emacs:: 848* Origin of the term Emacs::
849* Latest version of Emacs:: 849* Latest version of Emacs::
850* New in Emacs 30::
850* New in Emacs 29:: 851* New in Emacs 29::
851* New in Emacs 28:: 852* New in Emacs 28::
852* New in Emacs 27:: 853* New in Emacs 27::
@@ -920,6 +921,90 @@ Emacs, type @kbd{C-h C-n} (@kbd{M-x view-emacs-news}). You can give
920this command a prefix argument to read about which features were new 921this command a prefix argument to read about which features were new
921in older versions. 922in older versions.
922 923
924
925@node New in Emacs 30
926@section What is different about Emacs 30?
927@cindex Differences between Emacs 29 and Emacs 30
928@cindex Emacs 30, new features in
929
930Here's a list of the most important changes in Emacs 30 as compared to
931Emacs 29. The full list is too long to fit here, but can be read in the
932Emacs @file{NEWS} file by typing @kbd{C-h n} inside Emacs.
933
934@itemize
935@item
936Native compilation is now enabled by default. When Emacs is built on a
937machine with @samp{libgccjit}, this will improve Emacs performance in
938many typical workloads.
939
940@item
941Emacs has been ported to the Android operating system. See the file
942@file{java/INSTALL} in the Emacs source distribution for details on how
943to build it.
944
945@item
946Numerous performance improvements, for example in parsing JSON, reading
947data from subprocesses, handling output from Eshell and in Shell mode, X
948selection requests, remote files, and so on.
949
950@item
951Native JSON support is now always available; libjansson is no longer
952used.
953
954@item
955New major modes based on the
956@uref{https://tree-sitter.github.io/tree-sitter/, tree-sitter library}
957library for editing Elixir, HTML, Lua, HEEx, and PHP.
958
959@item
960Support for the EditorConfig standard has been added, an editor-neutral
961way to provide directory local (project-wide) settings. It is enabled
962via a new global minor mode @code{editorconfig-mode} which makes Emacs
963obey the @file{.editorconfig} files.
964
965@item
966Support for touchscreens has been improved. On systems that understand
967them (at present X, Android, PGTK, and MS-Windows), many touch screen
968gestures are now implemented and translated into mouse or gesture
969events, and support for tapping tool bar buttons and opening menus has
970been added.
971
972@item
973Tool bar tweaks. The new minor mode @code{window-tool-bar-mode}
974provides a per-window toolbar. Toolbars can be placed on the bottom of
975a frame by setting the @code{tool-bar-position} variable on all window
976systems but GNUStep and macOS.
977
978@item
979The @samp{which-key} package from GNU ELPA is now included in Emacs.
980After enabling the minor mode mode @code{which-key-mode}, if you enter
981@kbd{C-x} and wait for one second, the minibuffer will expand with all
982available key bindings that follow @kbd{C-x} (or as many as space
983allows).
984
985@item
986New global minor mode @code{kill-ring-deindent-mode}. When enabled,
987text being saved to the kill ring will be de-indented by the column
988number at its start.
989
990@item
991New minor mode @code{visual-wrap-prefix-mode}. Unlike @kbd{M-q}, the
992indentation only happens on display, and doesn't change the buffer text
993in any way.
994
995@item
996Automatic regeneration of TAGS files using the new global minor mode
997@code{etags-regen-mode}.
998
999@item
1000Improved warnings from the byte-code compiler to aid Lisp developers.
1001
1002@item
1003Support for underline colors on TTY frames.
1004
1005@end itemize
1006
1007
923@node New in Emacs 29 1008@node New in Emacs 29
924@section What is different about Emacs 29? 1009@section What is different about Emacs 29?
925@cindex Differences between Emacs 28 and Emacs 29 1010@cindex Differences between Emacs 28 and Emacs 29
@@ -929,6 +1014,9 @@ Here's a list of the most important changes in Emacs 29 as compared to
929Emacs 28 (the full list is too long, and can be read in the Emacs 1014Emacs 28 (the full list is too long, and can be read in the Emacs
930@file{NEWS} file by typing @kbd{C-h n} inside Emacs). 1015@file{NEWS} file by typing @kbd{C-h n} inside Emacs).
931 1016
1017Note that Emacs 29.3 and 29.4 both contained important security fixes.
1018Upgrading is particularly important if you use Emacs as a mail client.
1019
932@itemize 1020@itemize
933@item 1021@item
934Emacs can now be built with the 1022Emacs can now be built with the
@@ -3577,6 +3665,21 @@ you use the package system (e.g. @code{M-x list-packages}) with third
3577party archives. Use only third parties that you can trust! 3665party archives. Use only third parties that you can trust!
3578 3666
3579@item 3667@item
3668Using an out-of-date Emacs version.
3669
3670For security purposes, we recommend always using the latest officially
3671released version of Emacs. Using old versions of Emacs might put your
3672security at risk, as newer versions occasionally include important
3673security fixes. Please review the Emacs release notes and the
3674@file{etc/NEWS} file for details.
3675
3676Upgrading to the most recent version is particularly important if you
3677use Emacs as a mail client, or to edit files that come from untrusted
3678sources. You should be able to install the latest version of Emacs
3679through your system's package manager, and it is always available at
3680@uref{https://www.gnu.org/software/emacs/, the Emacs website}.
3681
3682@item
3580The @code{file-local-variable} feature. (Yes, a risk, but easy to 3683The @code{file-local-variable} feature. (Yes, a risk, but easy to
3581change.) 3684change.)
3582 3685
diff --git a/doc/misc/transient.texi b/doc/misc/transient.texi
index 407b55ee017..22db4e82143 100644
--- a/doc/misc/transient.texi
+++ b/doc/misc/transient.texi
@@ -1208,7 +1208,10 @@ prefix's @code{transient--layout} property, but it is often more convenient
1208to use the same form as understood by @code{transient-define-prefix}, 1208to use the same form as understood by @code{transient-define-prefix},
1209described below. If you use the latter approach, you can use the 1209described below. If you use the latter approach, you can use the
1210@code{transient-parse-suffixes} and @code{transient-parse-suffix} functions to 1210@code{transient-parse-suffixes} and @code{transient-parse-suffix} functions to
1211transform them from the convenient to the expected form. 1211transform them from the convenient to the expected form. Depending
1212on the used group class, @code{transient-parse-suffixes}'s SUFFIXES must be
1213a list of group vectors (for @code{transient-columns}) or a list of suffix
1214lists (for all other group classes).
1212 1215
1213If you explicitly specify children and then transform them using 1216If you explicitly specify children and then transform them using
1214@code{:setup-children}, then the class of the group is determined as usual, 1217@code{:setup-children}, then the class of the group is determined as usual,
@@ -1220,6 +1223,32 @@ For backward compatibility, if you fail to do so, @code{transient-column}
1220is used and a warning is displayed. This warning will eventually 1223is used and a warning is displayed. This warning will eventually
1221be replaced with an error. 1224be replaced with an error.
1222 1225
1226@lisp
1227(transient-define-prefix my-finder-by-keyword ()
1228 "Select a keyword and list matching packages."
1229 ;; The real `finder-by-keyword' is more convenient
1230 ;; of course, but that is not the point here.
1231 [:class transient-columns
1232 :setup-children
1233 (lambda (_)
1234 (transient-parse-suffixes
1235 'my-finder-by-keyword
1236 (let ((char (1- ?A)))
1237 (mapcar ; a list ...
1238 (lambda (partition)
1239 (vconcat ; of group vectors ...
1240 (mapcar (lambda (elt)
1241 (let ((keyword (symbol-name (car elt))))
1242 ; ... where each suffix is a list
1243 (list (format "%c" (cl-incf char))
1244 keyword
1245 (lambda ()
1246 (interactive)
1247 (finder-list-matches keyword)))))
1248 partition)))
1249 (seq-partition finder-known-keywords 7)))))])
1250@end lisp
1251
1223@item 1252@item
1224The boolean @code{:pad-keys} argument controls whether keys of all suffixes 1253The boolean @code{:pad-keys} argument controls whether keys of all suffixes
1225contained in a group are right padded, effectively aligning the 1254contained in a group are right padded, effectively aligning the