Merge from origin/emacs-29
3899acbb33
; * src/fringe.c: Fix description of large circle. (Bug#...2b10e1827d
sql: add missing postgresql types9ac1259278
Fix display of menu-bar bindings of commands in *Help* bu...ecdd3a9efa
Improve Completion Example section in the Emacs manual626e1ac62b
Improve 'message-server-alist' docstring327986936c
Add index entry for fallback modes1c4783c330
; * etc/NEWS: Copyedits and grammar fixes.3d6f755331
xref-search-program-alist: Fix searching larger file list...1b8b2cf61b
Fix typo and inaccuracy in the ELisp Reference manualdf17682ebf
; Support 'dart-ts-mode' in Eglote0dc60e078
; Fix typos in gdb-mi.el60560cc7ad
Fix description of lexical environment's internals1456adf424
; Eglot: fix a typo in a customization type2f59595f5f
; * etc/NEWS: Grammar fixes.596b780ab7
Update to Org 9.6.4-2-g0f6ae7a0b04a2247
Documentation copyedits for 'package-install-upgrade-buil...580d8278c5
Allow upgrading built-in packages with 'package-install'329304c23f
; * src/term.c (init_tty): Fix last change. (Bug#62877)200dbf7d30
Minor changes in c-ts-mode.el's support of DEFUNs9686b015a0
Fix strike-through attribute support on TTY frames39035fbfc5
Avoid crashes in 'describe-keymap' due to shadowing # Conflicts: # etc/NEWS # lisp/progmodes/c-ts-mode.el # lisp/progmodes/eglot.el
This commit is contained in:
commit
f1ce49d148
28 changed files with 285 additions and 167 deletions
|
@ -1245,6 +1245,7 @@ Manual}.
|
|||
These four keywords are not really variables; setting them in any
|
||||
other context has no special meaning.
|
||||
|
||||
@cindex fallback modes
|
||||
If you're editing a file across Emacs versions, and a new mode has
|
||||
been introduced to handle a file in a newer Emacs version, you can use
|
||||
several @code{mode} entries to use the new mode (called
|
||||
|
|
|
@ -313,19 +313,27 @@ may be defined in your Emacs session. For example, if a command
|
|||
called @code{authorize-me} was defined, Emacs could only complete
|
||||
as far as @samp{aut}.)
|
||||
|
||||
If you type @key{TAB} again immediately, it cannot determine the
|
||||
next character; it could be @samp{-}, @samp{a}, or @samp{c}. So it
|
||||
does not add any characters; instead, @key{TAB} displays a list of all
|
||||
possible completions in another window.
|
||||
If you type @kbd{@key{TAB}} again immediately, it cannot determine
|
||||
the next character; it could be @samp{-}, @samp{a}, or @samp{c}. So
|
||||
it does not add any characters; instead, @key{TAB} displays a list of
|
||||
all possible completions in another window.
|
||||
|
||||
Next, type @kbd{-f}. The minibuffer now contains @samp{auto-f}, and
|
||||
the only command name that starts with this is @code{auto-fill-mode}.
|
||||
If you now type @key{TAB}, completion fills in the rest of the
|
||||
If you now type @kbd{@key{TAB}}, completion fills in the rest of the
|
||||
argument @samp{auto-fill-mode} into the minibuffer.
|
||||
|
||||
Hence, typing just @kbd{a u @key{TAB} - f @key{TAB}} allows you to
|
||||
enter @samp{auto-fill-mode}.
|
||||
|
||||
@key{TAB} also works while point is not at the end of the
|
||||
minibuffer. In that case, it will fill in text both at point and at
|
||||
the end of the minibuffer. If you type @kbd{M-x autocm}, then press
|
||||
@kbd{C-b} to move point before the @samp{m}, you can type
|
||||
@kbd{@key{TAB}} to insert the text @samp{onf-} at point and @samp{ode}
|
||||
at the end of the minibuffer, so that the minibuffer contains
|
||||
@samp{autoconf-mode}.
|
||||
|
||||
@node Completion Commands
|
||||
@subsection Completion Commands
|
||||
|
||||
|
|
|
@ -264,11 +264,12 @@ have any number of prefixes.
|
|||
@end table
|
||||
|
||||
@cindex @code{custom-group} property
|
||||
The variables and subgroups of a group are stored in the
|
||||
The variables, faces, and subgroups of a group are stored in the
|
||||
@code{custom-group} property of the group's symbol. @xref{Symbol
|
||||
Plists}. The value of that property is a list of pairs whose
|
||||
@code{car} is the variable or subgroup symbol and the @code{cdr} is
|
||||
either @code{custom-variable} or @code{custom-group}.
|
||||
@code{car} is the symbol of the variable or the face or the subgroup,
|
||||
and the @code{cdr} is one of the corresponding symbols
|
||||
@code{custom-variable}, @code{custom-face}, or @code{custom-group}.
|
||||
@end defmac
|
||||
|
||||
@defopt custom-unlispify-remove-prefixes
|
||||
|
|
|
@ -1338,7 +1338,7 @@ specified @var{file} and perform the necessary initialization of the
|
|||
module. This is the primitive which makes sure the module exports the
|
||||
@code{plugin_is_GPL_compatible} symbol, calls the module's
|
||||
@code{emacs_module_init} function, and signals an error if that
|
||||
function returns an error indication, or if the use typed @kbd{C-g}
|
||||
function returns an error indication, or if the user typed @kbd{C-g}
|
||||
during the initialization. If the initialization succeeds,
|
||||
@code{module-load} returns @code{t}. Note that @var{file} must
|
||||
already have the proper file-name extension, as this function doesn't
|
||||
|
|
|
@ -1183,13 +1183,16 @@ wants the current value of a variable, it looks first in the lexical
|
|||
environment; if the variable is not specified in there, it looks in
|
||||
the symbol's value cell, where the dynamic value is stored.
|
||||
|
||||
(Internally, the lexical environment is an alist of symbol-value
|
||||
pairs, with the final element in the alist being the symbol @code{t}
|
||||
rather than a cons cell. Such an alist can be passed as the second
|
||||
argument to the @code{eval} function, in order to specify a lexical
|
||||
environment in which to evaluate a form. @xref{Eval}. Most Emacs
|
||||
Lisp programs, however, should not interact directly with lexical
|
||||
environments in this way; only specialized programs like debuggers.)
|
||||
(Internally, the lexical environment is a list whose members are
|
||||
usually cons cells that are symbol-value pairs, but some of its
|
||||
members can be symbols rather than cons cells. A symbol in the list
|
||||
means the lexical environment declared that symbol's variable as
|
||||
locally considered to be dynamically bound. This list can be passed
|
||||
as the second argument to the @code{eval} function, in order to
|
||||
specify a lexical environment in which to evaluate a form.
|
||||
@xref{Eval}. Most Emacs Lisp programs, however, should not interact
|
||||
directly with lexical environments in this way; only specialized
|
||||
programs like debuggers.)
|
||||
|
||||
@cindex closures, example of using
|
||||
Lexical bindings have indefinite extent. Even after a binding
|
||||
|
|
|
@ -5958,8 +5958,9 @@ the agenda (see [[*Weekly/daily agenda]]). We distinguish:
|
|||
#+findex: org-block
|
||||
|
||||
For more complex date specifications, Org mode supports using the
|
||||
special expression diary entries implemented in the Emacs Calendar
|
||||
package[fn:20]. For example, with optional time:
|
||||
special expression diary entries implemented in the
|
||||
[[info:emacs#Special Diary Entries][Emacs Calendar package]][fn:20].
|
||||
For example, with optional time:
|
||||
|
||||
#+begin_example
|
||||
,* 22:00-23:00 The nerd meeting on every 2nd Thursday of the month
|
||||
|
|
132
etc/NEWS.29
132
etc/NEWS.29
|
@ -218,13 +218,13 @@ of 'user-emacs-directory'.
|
|||
|
||||
+++
|
||||
** The image commands have changed key bindings.
|
||||
In previous Emacs versions, images have had the '+', '-' and 'r' keys
|
||||
bound when point is over an image. In Emacs 29.1, additional commands
|
||||
were added, and this made it more likely that users would trigger the
|
||||
image commands by mistake. To avoid this, all image commands have
|
||||
In previous Emacs versions, the '+', '-' and 'r' keys were bound when
|
||||
point was over an image. In Emacs 29.1, additional commands have been
|
||||
added, and this made it more likely that users would trigger the image
|
||||
commands by mistake. To avoid this, all image commands have been
|
||||
moved to the 'i' prefix keymap, so '+' is now 'i +', '-' is now 'i -',
|
||||
and 'r' is now 'i r'. In addition, these commands are now repeating,
|
||||
so, for example, you can rotate an image twice by typing 'i r r'.
|
||||
so you can rotate an image twice by saying 'i r r', for instance.
|
||||
|
||||
+++
|
||||
** Emacs now picks the correct coding-system for X input methods.
|
||||
|
@ -380,7 +380,7 @@ this user option to nil to revert back to the old behavior.
|
|||
---
|
||||
** Support for old EIEIO functions is not autoloaded any more.
|
||||
You need an explicit '(require 'eieio-compat)' to use 'defmethod'
|
||||
and 'defgeneric' (which have been made obsolete in Emacs 25.1 with
|
||||
and 'defgeneric' (which were made obsolete in Emacs 25.1 by
|
||||
'cl-defmethod' and 'cl-defgeneric').
|
||||
Similarly you might need to '(require 'eieio-compat)' before loading
|
||||
files that were compiled with an old EIEIO (Emacs<25).
|
||||
|
@ -497,7 +497,7 @@ the 'nlinum' package from GNU ELPA instead. The former has better
|
|||
performance, but the latter is closer to a drop-in replacement.
|
||||
|
||||
1. To use 'display-line-numbers-mode', add something like this to your
|
||||
Init file:
|
||||
init file:
|
||||
|
||||
(global-display-line-numbers-mode 1)
|
||||
;; Alternatively, to use it only in programming modes:
|
||||
|
@ -517,7 +517,7 @@ performance, but the latter is closer to a drop-in replacement.
|
|||
|
||||
---
|
||||
** The thumbs.el library is now obsolete.
|
||||
We recommend using command 'image-dired' instead.
|
||||
We recommend using the 'image-dired' command instead.
|
||||
|
||||
---
|
||||
** The autoarg.el library is now marked obsolete.
|
||||
|
@ -577,7 +577,7 @@ encoding, only for decoding.
|
|||
** New user option 'major-mode-remap-alist' to specify favorite major modes.
|
||||
This user option lets you remap the default modes (e.g. 'perl-mode' or
|
||||
'latex-mode') to your favorite ones (e.g. 'cperl-mode' or
|
||||
'LaTeX-mode') without having to use 'defalias', which can have
|
||||
'LaTeX-mode') instead of having to use 'defalias', which can have
|
||||
undesirable side effects.
|
||||
This applies to all modes specified via 'auto-mode-alist', file-local
|
||||
variables, etc.
|
||||
|
@ -587,6 +587,8 @@ variables, etc.
|
|||
|
||||
---
|
||||
** New user option 'electric-quote-replace-consecutive'.
|
||||
This allows you to disable the default behavior of consecutive single
|
||||
quotes being replaced with a double quote.
|
||||
|
||||
---
|
||||
** Emacs is now capable of editing files with very long lines.
|
||||
|
@ -801,7 +803,7 @@ element: 'set-minibuffer-message', which displays echo-area messages
|
|||
at the end of the minibuffer text when the minibuffer is active.
|
||||
Other useful functions include 'inhibit-message', which allows
|
||||
specifying, via 'inhibit-message-regexps', the list of messages whose
|
||||
display shall be inhibited; and 'set-multi-message' that accumulates
|
||||
display should be inhibited; and 'set-multi-message' that accumulates
|
||||
recent messages and displays them stacked together.
|
||||
|
||||
---
|
||||
|
@ -902,7 +904,7 @@ frame's contents will be hidden, leaving only the title bar on display.
|
|||
---
|
||||
** New user option 'x-gtk-use-native-input'.
|
||||
This controls whether or not GTK input methods are used by Emacs,
|
||||
instead of XIM input methods.
|
||||
instead of XIM input methods. Defaults to nil.
|
||||
|
||||
+++
|
||||
** New user option 'use-system-tooltips'.
|
||||
|
@ -999,17 +1001,17 @@ combinations in a graphical menu system.
|
|||
|
||||
+++
|
||||
*** New command 'emoji-search' (bound to 'C-x 8 e s').
|
||||
This command lets you search for Emoji based on names.
|
||||
This command lets you search for and insert an Emoji based on names.
|
||||
|
||||
+++
|
||||
*** New command 'emoji-list' (bound to 'C-x 8 e l').
|
||||
This command lists all Emoji (categorized by themes) in a special
|
||||
buffer and lets you choose one of them.
|
||||
buffer and lets you choose one of them to insert.
|
||||
|
||||
---
|
||||
*** New command 'emoji-recent' (bound to 'C-x 8 e r').
|
||||
This command lets you choose among the Emoji you have recently
|
||||
inserted.
|
||||
inserted and insert it.
|
||||
|
||||
+++
|
||||
*** New command 'emoji-describe' (bound to 'C-x 8 e d').
|
||||
|
@ -1043,7 +1045,7 @@ quotes removed.
|
|||
|
||||
---
|
||||
*** 'M-x apropos-variable' output now includes values of variables.
|
||||
Such apropos buffer is more easily viewed with outlining after
|
||||
Such an apropos buffer is more easily viewed with outlining after
|
||||
enabling 'outline-minor-mode' in 'apropos-mode'.
|
||||
|
||||
+++
|
||||
|
@ -1075,7 +1077,7 @@ This has been changed to:
|
|||
+++
|
||||
*** The 'C-h .' command now accepts a prefix argument.
|
||||
'C-u C-h .' would previously inhibit displaying a warning message if
|
||||
there's no local help at point. This has been changed to call
|
||||
there was no local help at point. This has been changed to call
|
||||
'button-describe'/'widget-describe' and display button/widget help
|
||||
instead.
|
||||
|
||||
|
@ -1128,7 +1130,7 @@ helpful commands for various tasks. You can toggle the display using
|
|||
'C-h C-q'.
|
||||
|
||||
** Emacs now comes with Org v9.6.
|
||||
See the file "ORG-NEWS" for user-visible changes in Org.
|
||||
See the file "etc/ORG-NEWS" for user-visible changes in Org.
|
||||
|
||||
** Outline Mode
|
||||
|
||||
|
@ -1191,12 +1193,13 @@ the display of several buffers in a row more amenable.
|
|||
|
||||
+++
|
||||
*** New buffer display action alist entry 'lru-frames'.
|
||||
This allows to specify which frames 'display-buffer' should consider
|
||||
when using a window that shows another buffer.
|
||||
This allows specifying which frames 'display-buffer' should consider
|
||||
when using a window that shows another buffer. It is interpreted as
|
||||
per the ALL-FRAMES argument of 'get-lru-window'.
|
||||
|
||||
+++
|
||||
*** New buffer display action alist entry 'lru-time'.
|
||||
'display-buffer' will ignore windows with a use time higher than that
|
||||
'display-buffer' will ignore windows with a use time higher than this
|
||||
when using a window that shows another buffer.
|
||||
|
||||
+++
|
||||
|
@ -1206,12 +1209,14 @@ making it a less likely candidate for displaying another buffer.
|
|||
|
||||
+++
|
||||
*** New buffer display action alist entry 'window-min-width'.
|
||||
This allows to specify a minimum width of the window used to display a
|
||||
buffer.
|
||||
This allows specifying a preferred minimum width of the window used to
|
||||
display a buffer.
|
||||
|
||||
---
|
||||
*** You can customize on which window 'scroll-other-window' operates.
|
||||
This is controlled by the new 'other-window-scroll-default' variable.
|
||||
*** You can specify on which window 'scroll-other-window' operates.
|
||||
This is controlled by the new 'other-window-scroll-default' variable,
|
||||
which should be set to a function that returns a window. When this
|
||||
variable is nil, 'next-window' is used.
|
||||
|
||||
** Frames
|
||||
|
||||
|
@ -1274,17 +1279,19 @@ respond within N seconds. The default is to wait forever.
|
|||
+++
|
||||
*** 'server-stop-automatically' can be used to automatically stop the server.
|
||||
The Emacs server will be automatically stopped when certain conditions
|
||||
are met. The conditions are given by the argument, which can be
|
||||
'empty', 'delete-frame' or 'kill-terminal'.
|
||||
are met. The conditions are determined by the argument to
|
||||
'server-stop-automatically', which can be 'empty', 'delete-frame' or
|
||||
'kill-terminal'.
|
||||
|
||||
** Rcirc
|
||||
|
||||
+++
|
||||
*** New command 'rcirc-when'.
|
||||
This shows the reception time of the message at point (if available).
|
||||
|
||||
+++
|
||||
*** New user option 'rcirc-cycle-completion-flag'.
|
||||
Rcirc will use the default 'completion-at-point' mechanism. The
|
||||
Rcirc now uses the default 'completion-at-point' mechanism. The
|
||||
conventional IRC behavior of completing by cycling through the
|
||||
available options can be restored by enabling this option.
|
||||
|
||||
|
@ -1869,13 +1876,26 @@ packages checked out using 'package-vc-install'.
|
|||
+++
|
||||
*** New command 'package-report-bug'.
|
||||
This command helps you compose an email for sending bug reports to
|
||||
package maintainers.
|
||||
package maintainers, and is bound to 'b' in the "*Packages*" buffer.
|
||||
|
||||
+++
|
||||
*** New user option 'package-vc-selected-packages'.
|
||||
By customizing this user option you can specify specific packages to
|
||||
install.
|
||||
|
||||
---
|
||||
*** New user option 'package-install-upgrade-built-in'.
|
||||
When enabled, 'package-install' will include in the list of
|
||||
upgradeable packages those built-in packages (like Eglot and
|
||||
use-package, for example) for which a newer version is available in
|
||||
package archives, and will allow installing those newer versions. By
|
||||
default, this is disabled; however, if 'package-install' is invoked
|
||||
with a prefix argument, it will act as if this new option were
|
||||
enabled.
|
||||
|
||||
If you customize this option, we recommend you place its non-default
|
||||
setting in your early-init file.
|
||||
|
||||
** Emacs Sessions (Desktop)
|
||||
|
||||
+++
|
||||
|
@ -1933,8 +1953,8 @@ displayed in a window.
|
|||
|
||||
+++
|
||||
*** New user option 'compilation-hidden-output'.
|
||||
This can be used to make specific parts of compilation output
|
||||
invisible.
|
||||
This regular expression can be used to make specific parts of
|
||||
compilation output invisible.
|
||||
|
||||
+++
|
||||
*** The 'compilation-auto-jump-to-first-error' user option has been extended.
|
||||
|
@ -2317,7 +2337,7 @@ EUDC inline expansion result formatting defaulted to
|
|||
("%s %s <%s>" firstname name email)
|
||||
|
||||
Since email address specifications need to comply with RFC 5322 in
|
||||
order to be useful in messages, there was a risk to produce syntax
|
||||
order to be useful in messages, there was a risk of producing syntax
|
||||
which was standard with RFC 822, but is marked as obsolete syntax by
|
||||
its successor RFC 5322. Also, the first and last name part was never
|
||||
enclosed in double quotes, potentially producing invalid address
|
||||
|
@ -2351,8 +2371,8 @@ used to select the entry type in the ecomplete database.
|
|||
+++
|
||||
*** New back-end for mailabbrev.
|
||||
A new back-end for mailabbrev allows information from that database to
|
||||
be queried by EUDC, too. The attributes 'email', 'name', and 'firstname'
|
||||
are supported only.
|
||||
be queried by EUDC, too. Only the attributes 'email', 'name', and
|
||||
'firstname' are supported.
|
||||
|
||||
** EWW/SHR
|
||||
|
||||
|
@ -2599,14 +2619,14 @@ as opposed to via the command-line.
|
|||
+++
|
||||
*** New command 'image-transform-fit-to-window'.
|
||||
This command fits the image to the current window by scaling down or
|
||||
up as necessary. Unlike 'image-transform-fit-both', this does not
|
||||
only scale the image down, but up as well. It is bound to 's w' in
|
||||
Image Mode by default.
|
||||
up as necessary. Unlike 'image-transform-fit-both', this can scale
|
||||
the image up as well as down. It is bound to 's w' in Image Mode by
|
||||
default.
|
||||
|
||||
---
|
||||
*** New command 'image-mode-wallpaper-set'.
|
||||
This command sets the desktop background to the current image. It is
|
||||
bound to 'W' by default.
|
||||
bound to 'W' in Image Mode by default.
|
||||
|
||||
+++
|
||||
*** 'image-transform-fit-to-{height,width}' are now obsolete.
|
||||
|
@ -2624,14 +2644,14 @@ much (in percent). It is nil by default, which means no limit.
|
|||
|
||||
---
|
||||
*** New user option 'image-text-based-formats'.
|
||||
This controls whether or not to show a message when opening certain
|
||||
image formats saying how to edit it as text. The default is to show
|
||||
this message for SVG and XPM.
|
||||
This controls whether or not to show a message, when opening certain
|
||||
image formats, explaining how to edit it as text. The default is to
|
||||
show this message for SVG and XPM.
|
||||
|
||||
+++
|
||||
*** New command 'image-transform-set-percent'.
|
||||
It allows setting the image size to a percentage of its original size,
|
||||
and is bound to 's p' in Image mode.
|
||||
It allows resizing the image to a percentage of its original size, and
|
||||
is bound to 's p' in Image mode.
|
||||
|
||||
+++
|
||||
*** 'image-transform-original' renamed to 'image-transform-reset-to-original'.
|
||||
|
@ -3244,6 +3264,10 @@ based on data provided by language servers using the Language Server
|
|||
Protocol (LSP). See the new Info manual "(eglot) Top" for more. Also
|
||||
see "etc/EGLOT-NEWS".
|
||||
|
||||
If you want to be able to use 'package-install' to upgrade Eglot to
|
||||
newer versions released on GNU ELPA, customize the new option
|
||||
'package-install-upgrade-built-in' to a non-nil value.
|
||||
|
||||
+++
|
||||
** use-package: Declarative package configuration.
|
||||
use-package is now shipped with Emacs. It provides the 'use-package'
|
||||
|
@ -3251,6 +3275,10 @@ macro, which allows you to isolate package configuration in your init
|
|||
file in a way that is declarative, tidy, and performance-oriented.
|
||||
See the new Info manual "(use-package) Top" for more.
|
||||
|
||||
If you want to be able to use 'package-install' to upgrade use-package
|
||||
to newer versions released on GNU ELPA, customize the new option
|
||||
'package-install-upgrade-built-in' to a non-nil value.
|
||||
|
||||
---
|
||||
** New package 'wallpaper'.
|
||||
This package provides the command 'wallpaper-set', which sets the
|
||||
|
@ -3915,9 +3943,9 @@ connection-local profile.
|
|||
+++
|
||||
*** New macro 'with-connection-local-application-variables'.
|
||||
This macro works like 'with-connection-local-variables', but it allows
|
||||
to use another application but 'tramp'. This is useful when running
|
||||
code in a buffer where Tramp has already set some connection-local
|
||||
variables.
|
||||
using another application instead of 'tramp'. This is useful when
|
||||
running code in a buffer where Tramp has already set some
|
||||
connection-local variables.
|
||||
|
||||
+++
|
||||
*** New macro 'setq-connection-local'.
|
||||
|
@ -3996,8 +4024,8 @@ This returns a list of sub-sequences of the specified sequence.
|
|||
|
||||
+++
|
||||
*** New function 'seq-remove-at-position'.
|
||||
This function returns a copy of the specified sequence where the
|
||||
element at a given (zero-based) index got removed.
|
||||
This function returns a copy of the specified sequence with the
|
||||
element at a given (zero-based) index removed.
|
||||
|
||||
+++
|
||||
*** New function 'seq-positions'.
|
||||
|
@ -4065,7 +4093,7 @@ that quote character has to be escaped to avoid Emacs displaying it as
|
|||
|
||||
(setq foo '(1 2 3))
|
||||
|
||||
invalid. Emacs will now warn during byte compilation if it seems
|
||||
invalid. Emacs will now warn during byte compilation if it sees
|
||||
something like that, and also warn about when using RIGHT/LEFT SINGLE
|
||||
QUOTATION MARK directly. In both these cases, if these characters
|
||||
should really be present in the docstring, they should be quoted with
|
||||
|
@ -4125,7 +4153,7 @@ example for benchmarking purposes.
|
|||
** New function 'string-edit'.
|
||||
This is meant to be used when the user has to edit a (potentially)
|
||||
long string. It pops up a new buffer where you can edit the string,
|
||||
and a callback is called when the user types 'C-c C-c'.
|
||||
and the provided callback is called when the user types 'C-c C-c'.
|
||||
|
||||
+++
|
||||
** New function 'read-string-from-buffer'.
|
||||
|
@ -4271,7 +4299,7 @@ them towards or away from each other.
|
|||
|
||||
+++
|
||||
** New hook 'x-pre-popup-menu-hook'.
|
||||
This hook, run before 'x-popup-menu', is about to display a
|
||||
This hook is run before 'x-popup-menu' is about to display a
|
||||
deck-of-cards menu on screen.
|
||||
|
||||
---
|
||||
|
@ -4372,8 +4400,8 @@ switch to these new functions.
|
|||
+++
|
||||
*** 'define-key' now takes an optional REMOVE argument.
|
||||
If non-nil, remove the definition from the keymap. This is subtly
|
||||
different from setting a definition to nil (when the keymap has a
|
||||
parent).
|
||||
different from setting a definition to nil: when the keymap has a
|
||||
parent such a definition will shadow the parent's definition.
|
||||
|
||||
+++
|
||||
*** 'read-multiple-choice' now takes an optional SHOW-HELP argument.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{9.6.3}
|
||||
\def\orgversionnumber{9.6.4}
|
||||
\def\versionyear{2023} % latest update
|
||||
\input emacsver.tex
|
||||
|
||||
|
|
|
@ -795,6 +795,21 @@ specifying the minimum acceptable version."
|
|||
(require 'finder-inf nil t) ; For `package--builtins'.
|
||||
(assq package package--builtins))))))
|
||||
|
||||
(defun package--active-built-in-p (package)
|
||||
"Return non-nil if the built-in version of PACKAGE is used.
|
||||
If the built-in version of PACKAGE is used and PACKAGE is
|
||||
also available for installation from an archive, it is an
|
||||
indication that PACKAGE was never upgraded to any newer
|
||||
version from the archive."
|
||||
(and (not (assq (cond
|
||||
((package-desc-p package)
|
||||
(package-desc-name package))
|
||||
((stringp package) (intern package))
|
||||
((symbolp package) package)
|
||||
((error "Unknown package format: %S" package)))
|
||||
(package--alist)))
|
||||
(package-built-in-p package)))
|
||||
|
||||
(defun package--autoloads-file-name (pkg-desc)
|
||||
"Return the absolute name of the autoloads file, sans extension.
|
||||
PKG-DESC is a `package-desc' object."
|
||||
|
@ -2178,12 +2193,18 @@ using `package-compute-transaction'."
|
|||
(unless package-archive-contents
|
||||
(package-refresh-contents)))
|
||||
|
||||
(defcustom package-install-upgrade-built-in nil
|
||||
"Non-nil means that built-in packages can be upgraded via a package archive.
|
||||
If disabled, then `package-install' will not suggest to replace a
|
||||
built-in package with a (possibly newer) version from a package archive."
|
||||
:type 'boolean
|
||||
:version "29.1")
|
||||
|
||||
;;;###autoload
|
||||
(defun package-install (pkg &optional dont-select)
|
||||
"Install the package PKG.
|
||||
PKG can be a `package-desc' or a symbol naming one of the
|
||||
available packages in an archive in `package-archives'. When
|
||||
called interactively, prompt for the package name.
|
||||
available packages in an archive in `package-archives'.
|
||||
|
||||
Mark the installed package as selected by adding it to
|
||||
`package-selected-packages'.
|
||||
|
@ -2193,7 +2214,11 @@ non-nil, install the package but do not add it to
|
|||
`package-selected-packages'.
|
||||
|
||||
If PKG is a `package-desc' and it is already installed, don't try
|
||||
to install it but still mark it as selected."
|
||||
to install it but still mark it as selected.
|
||||
|
||||
If the command is invoked with a prefix argument, it will allow
|
||||
upgrading of built-in packages, as if `package-install-upgrade-built-in'
|
||||
had been enabled."
|
||||
(interactive
|
||||
(progn
|
||||
;; Initialize the package system to get the list of package
|
||||
|
@ -2201,11 +2226,14 @@ to install it but still mark it as selected."
|
|||
(package--archives-initialize)
|
||||
(list (intern (completing-read
|
||||
"Install package: "
|
||||
(delq nil
|
||||
(mapcar (lambda (elt)
|
||||
(unless (package-installed-p (car elt))
|
||||
(symbol-name (car elt))))
|
||||
package-archive-contents))
|
||||
(mapcan
|
||||
(lambda (elt)
|
||||
(and (or (and (or current-prefix-arg
|
||||
package-install-upgrade-built-in)
|
||||
(package--active-built-in-p (car elt)))
|
||||
(not (package-installed-p (car elt))))
|
||||
(list (symbol-name (car elt)))))
|
||||
package-archive-contents)
|
||||
nil t))
|
||||
nil)))
|
||||
(package--archives-initialize)
|
||||
|
@ -2216,6 +2244,9 @@ to install it but still mark it as selected."
|
|||
(unless (or dont-select (package--user-selected-p name))
|
||||
(package--save-selected-packages
|
||||
(cons name package-selected-packages)))
|
||||
(when (and (or current-prefix-arg package-install-upgrade-built-in)
|
||||
(package--active-built-in-p pkg))
|
||||
(setq pkg (or (cadr (assq name package-archive-contents)) pkg)))
|
||||
(if-let* ((transaction
|
||||
(if (package-desc-p pkg)
|
||||
(unless (package-installed-p pkg)
|
||||
|
|
|
@ -4359,8 +4359,10 @@ If COND is a function, METHOD will be inserted if COND returns
|
|||
a non-nil value when called in the message buffer without any
|
||||
arguments. If METHOD is nil in this case, the return value of
|
||||
the function will be inserted instead.
|
||||
If the buffer already has a\"X-Message-SMTP-Method\" header,
|
||||
it is left unchanged."
|
||||
|
||||
Note: if the buffer already has a \"X-Message-SMTP-Method\"
|
||||
header, these rules are ignored, and the header is left
|
||||
unchanged."
|
||||
:type '(alist :key-type (choice
|
||||
(string :tag "From Address")
|
||||
(function :tag "Predicate"))
|
||||
|
|
|
@ -592,22 +592,22 @@ the C sources, too."
|
|||
;; First collect all the printed representations of menus.
|
||||
(dolist (menu menus)
|
||||
(let ((map (lookup-key global-map (seq-take menu 1)))
|
||||
(string nil))
|
||||
(string nil)
|
||||
(sep (if (char-displayable-p ?→) " → " " => ")))
|
||||
(seq-do-indexed
|
||||
(lambda (entry level)
|
||||
(when (symbolp map)
|
||||
(setq map (symbol-function map)))
|
||||
(when-let ((elem (assq entry (cdr map))))
|
||||
(when (> level 0)
|
||||
(push (if (char-displayable-p ?→)
|
||||
" → "
|
||||
" => ")
|
||||
string))
|
||||
(push sep string))
|
||||
(if (eq (nth 1 elem) 'menu-item)
|
||||
(progn
|
||||
(push (nth 2 elem) string)
|
||||
(push (propertize (nth 2 elem) 'face 'help-key-binding)
|
||||
string)
|
||||
(setq map (cadddr elem)))
|
||||
(push (nth 1 elem) string)
|
||||
(push (propertize (nth 1 elem) 'face 'help-key-binding)
|
||||
string)
|
||||
(setq map (cddr elem)))))
|
||||
(cdr (seq-into menu 'list)))
|
||||
(when string
|
||||
|
@ -622,8 +622,7 @@ the C sources, too."
|
|||
(cond ((zerop i) "")
|
||||
((= i (1- (length menus))) " and ")
|
||||
(t ", "))
|
||||
(propertize (string-join (nreverse string))
|
||||
'face 'help-key-binding)))
|
||||
(string-join (nreverse string))))
|
||||
strings))))
|
||||
|
||||
(defun help-fns--compiler-macro (function)
|
||||
|
|
|
@ -158,9 +158,9 @@ result. The default value is `org-remove-indentation'."
|
|||
:version "24.1"
|
||||
:type 'function)
|
||||
|
||||
(defcustom org-babel-tangle-default-file-mode #o544
|
||||
(defcustom org-babel-tangle-default-file-mode #o644
|
||||
"The default mode used for tangled files, as an integer.
|
||||
The default value 356 correspands to the octal #o544, which is
|
||||
The default value 420 correspands to the octal #o644, which is
|
||||
read-write permissions for the user, read-only for everyone else."
|
||||
:group 'org-babel-tangle
|
||||
:package-version '(Org . "9.6")
|
||||
|
@ -361,9 +361,9 @@ Did you give the decimal value %1$d by mistake?" mode)))
|
|||
;; Match regexp taken from `file-modes-symbolic-to-number'.
|
||||
(file-modes-symbolic-to-number mode org-babel-tangle-default-file-mode))
|
||||
((string-match-p "^[r-][w-][xs-][r-][w-][xs-][r-][w-][x-]$" mode)
|
||||
(file-modes-symbolic-to-number (concat "u=" (substring mode 0 3)
|
||||
",g=" (substring mode 3 6)
|
||||
",o=" (substring mode 6 9))
|
||||
(file-modes-symbolic-to-number (concat "u=" (delete ?- (substring mode 0 3))
|
||||
",g=" (delete ?- (substring mode 3 6))
|
||||
",o=" (delete ?- (substring mode 6 9)))
|
||||
0))
|
||||
(t (error "File mode %S not recognized as a valid format. See `org-babel-interpret-file-mode'." mode))))
|
||||
|
||||
|
|
|
@ -7724,8 +7724,7 @@ The optional argument TYPE tells the agenda type."
|
|||
(unless (string= org-agenda-todo-keyword-format "")
|
||||
;; Remove `display' property as the icon could leak
|
||||
;; on the white space.
|
||||
(org-add-props " " (org-plist-delete (text-properties-at 0 x)
|
||||
'display)))
|
||||
(apply #'propertize " " (org-plist-delete (text-properties-at 0 x) 'display)))
|
||||
(substring x (match-end 3)))))))
|
||||
x)))
|
||||
|
||||
|
|
|
@ -5329,7 +5329,7 @@ seconds.")
|
|||
"Duration, as a time value, of the pause between synchronizations.
|
||||
See `org-element-cache-sync-duration' for more information.")
|
||||
|
||||
(defvar org-element--cache-self-verify t
|
||||
(defvar org-element--cache-self-verify nil
|
||||
"Activate extra consistency checks for the cache.
|
||||
|
||||
This may cause serious performance degradation depending on the value
|
||||
|
|
|
@ -36,6 +36,10 @@
|
|||
|
||||
;;; Org version verification.
|
||||
|
||||
(defconst org--built-in-p nil
|
||||
"When non-nil, assume that Org is a part of Emacs source.
|
||||
For internal use only. See Emacs bug #62762.
|
||||
This variable is only supposed to be changed by Emacs build scripts.")
|
||||
(defmacro org-assert-version ()
|
||||
"Assert compile time and runtime version match."
|
||||
;; We intentionally use a more permissive `org-release' instead of
|
||||
|
@ -45,7 +49,7 @@
|
|||
;; `org-assert-version' calls would fail using strict
|
||||
;; `org-git-version' check because the generated Org version strings
|
||||
;; will not match.
|
||||
`(unless (equal (org-release) ,(org-release))
|
||||
`(unless (or org--built-in-p (equal (org-release) ,(org-release)))
|
||||
(warn "Org version mismatch. Org loading aborted.
|
||||
This warning usually appears when a built-in Org version is loaded
|
||||
prior to the more recent Org version.
|
||||
|
|
|
@ -5414,12 +5414,10 @@ overwritten, and the table is not marked as requiring realignment."
|
|||
(self-insert-command N))
|
||||
(setq org-table-may-need-update t)
|
||||
(let* (orgtbl-mode
|
||||
a
|
||||
(cmd (or (key-binding
|
||||
(or (and (listp function-key-map)
|
||||
(setq a (assoc last-input-event function-key-map))
|
||||
(cdr a))
|
||||
(vector last-input-event)))
|
||||
(cdr (assoc last-command-event function-key-map)))
|
||||
(vector last-command-event)))
|
||||
'self-insert-command)))
|
||||
(call-interactively cmd)
|
||||
(if (and org-self-insert-cluster-for-undo
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
(defun org-release ()
|
||||
"The release version of Org.
|
||||
Inserted by installing Org mode or when a release is made."
|
||||
(let ((org-release "9.6.3"))
|
||||
(let ((org-release "9.6.4"))
|
||||
org-release))
|
||||
;;;###autoload
|
||||
(defun org-git-version ()
|
||||
"The Git version of Org mode.
|
||||
Inserted by installing Org or when a release is made."
|
||||
(let ((org-git-version "release_9.6.3-2-gf2949d"))
|
||||
(let ((org-git-version "release_9.6.4-2-g0f6ae7"))
|
||||
org-git-version))
|
||||
|
||||
(provide 'org-version)
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
;; URL: https://orgmode.org
|
||||
;; Package-Requires: ((emacs "26.1"))
|
||||
|
||||
;; Version: 9.6.3
|
||||
;; Version: 9.6.4
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
;;
|
||||
|
@ -9143,7 +9143,8 @@ nil or a string to be used for the todo mark." )
|
|||
(replace-match "0" t nil nil 1)))))
|
||||
|
||||
(defvar org-state)
|
||||
(defvar org-blocked-by-checkboxes)
|
||||
;; FIXME: We should refactor this and similar dynamically scoped blocker flags.
|
||||
(defvar org-blocked-by-checkboxes nil) ; dynamically scoped
|
||||
(defun org-todo (&optional arg)
|
||||
"Change the TODO state of an item.
|
||||
|
||||
|
|
|
@ -1822,7 +1822,7 @@ INFO is a plist used as a communication channel. See
|
|||
(replace-regexp-in-string
|
||||
"--\\|[\\{}$%&_#~^]"
|
||||
(lambda (m)
|
||||
(cond ((equal m "--") "-{}-")
|
||||
(cond ((equal m "--") "-{}-{}")
|
||||
((equal m "\\") "\\textbackslash{}")
|
||||
((equal m "~") "\\textasciitilde{}")
|
||||
((equal m "^") "\\textasciicircum{}")
|
||||
|
|
|
@ -2923,17 +2923,23 @@ contextual information."
|
|||
;; not be desired in scripts that do not separate words with
|
||||
;; spaces (for example, Han script). `fill-region' is able to
|
||||
;; handle such situations.
|
||||
;; FIXME: The unnecessary spaced may still remain when a newline
|
||||
;; FIXME: The unnecessary spacing may still remain when a newline
|
||||
;; is at a boundary between Org objects (e.g. italics markup
|
||||
;; followed by newline).
|
||||
(setq output
|
||||
(with-temp-buffer
|
||||
(insert output)
|
||||
(save-match-data
|
||||
(let ((leading (and (string-match (rx bos (1+ blank)) output)
|
||||
(match-string 0 output)))
|
||||
(trailing (and (string-match (rx (1+ blank) eos) output)
|
||||
(match-string 0 output))))
|
||||
(insert
|
||||
(substring
|
||||
output
|
||||
(length leading)
|
||||
(pcase (length trailing)
|
||||
(0 nil)
|
||||
(n (- n)))))
|
||||
;; Unfill, retaining leading/trailing space.
|
||||
(let ((fill-column most-positive-fixnum))
|
||||
(fill-region (point-min) (point-max)))
|
||||
|
|
|
@ -193,9 +193,17 @@ To set the default indent style globally, use
|
|||
(c-ts-mode--get-indent-style
|
||||
(if (derived-mode-p 'c-ts-mode) 'c 'cpp))))))
|
||||
|
||||
(defvar c-ts-mode-emacs-devel nil
|
||||
"If the value is t, enable Emacs source-specific features.
|
||||
This needs to be set before enabling `c-ts-mode'.")
|
||||
(defcustom c-ts-mode-emacs-sources-support t
|
||||
"Whether to enable Emacs source-specific features.
|
||||
This enables detection of definitions of Lisp function using
|
||||
the DEFUN macro.
|
||||
This needs to be set before enabling `c-ts-mode'; if you change
|
||||
the value after enabling `c-ts-mode', toggle the mode off and on
|
||||
again."
|
||||
:version "29.1"
|
||||
:type 'boolean
|
||||
:safe 'booleanp
|
||||
:group 'c)
|
||||
|
||||
;;; Syntax table
|
||||
|
||||
|
@ -671,7 +679,7 @@ MODE is either `c' or `cpp'."
|
|||
:override t
|
||||
'(((call_expression
|
||||
(call_expression function: (identifier) @fn)
|
||||
@c-ts-mode--fontify-defun)
|
||||
@c-ts-mode--fontify-DEFUN)
|
||||
(:match "^DEFUN$" @fn)))))
|
||||
|
||||
;;; Font-lock helpers
|
||||
|
@ -735,14 +743,14 @@ OVERRIDE, START, END, and ARGS, see `treesit-font-lock-rules'."
|
|||
(treesit-node-start node) (treesit-node-end node)
|
||||
'font-lock-variable-use-face override start end)))
|
||||
|
||||
(defun c-ts-mode--fontify-defun (node override start end &rest _)
|
||||
"Correctly fontify the DEFUN macro.
|
||||
(defun c-ts-mode--fontify-DEFUN (node override start end &rest _)
|
||||
"Correctly fontify calls to the DEFUN macro in Emacs sources.
|
||||
For NODE, OVERRIDE, START, and END, see
|
||||
`treesit-font-lock-rules'. The captured NODE is a
|
||||
call_expression where DEFUN is the function.
|
||||
call_expression node, where DEFUN is the function.
|
||||
|
||||
This function corrects the fontification on the colon in
|
||||
\"doc:\", and the parameter list."
|
||||
This function corrects the fontification of the colon in
|
||||
\"doc:\", and of the parameter list."
|
||||
(let* ((parent (treesit-node-parent node))
|
||||
;; ARG-LIST-1 and 2 are like this:
|
||||
;;
|
||||
|
@ -808,7 +816,7 @@ Return nil if NODE is not a defun node or doesn't have a name."
|
|||
"union_specifier" "class_specifier"
|
||||
"namespace_definition")
|
||||
(treesit-node-child-by-field-name node "name"))
|
||||
;; DEFUNs in Emacs source.
|
||||
;; DEFUNs in Emacs sources.
|
||||
("expression_statement"
|
||||
(let* ((call-exp-1 (treesit-node-child node 0))
|
||||
(call-exp-2 (treesit-node-child call-exp-1 0))
|
||||
|
@ -885,7 +893,9 @@ the semicolon. This function skips the semicolon."
|
|||
(list node parent bol)))
|
||||
|
||||
(defun c-ts-mode--emacs-defun-p (node)
|
||||
"Return non-nil if NODE is a DEFUN in Emacs source files."
|
||||
"Return non-nil if NODE is a Lisp function defined using DEFUN.
|
||||
This function detects Lisp primitives defined in Emacs source
|
||||
files using the DEFUN macro."
|
||||
(and (equal (treesit-node-type node) "expression_statement")
|
||||
(equal (treesit-node-text
|
||||
(treesit-node-child-by-field-name
|
||||
|
@ -896,23 +906,25 @@ the semicolon. This function skips the semicolon."
|
|||
"DEFUN")))
|
||||
|
||||
(defun c-ts-mode--emacs-defun-at-point (&optional range)
|
||||
"Return the current defun node.
|
||||
"Return the defun node at point.
|
||||
|
||||
This function recognizes DEFUNs in Emacs source files.
|
||||
In addition to regular C functions, this function recognizes
|
||||
definitions of Lisp primitrives in Emacs source files using DEFUN,
|
||||
if `c-ts-mode-emacs-sources-support' is non-nil.
|
||||
|
||||
Note that for the case of a DEFUN, it is made of two separate
|
||||
nodes, one for the declaration and one for the body, this
|
||||
Note that DEFUN is parsed by tree-sitter as two separate
|
||||
nodes, one for the declaration and one for the body; this
|
||||
function returns the declaration node.
|
||||
|
||||
If RANGE is non-nil, return (BEG . END) where BEG end END
|
||||
encloses the whole defun. This solves the problem of only
|
||||
returning the declaration part for DEFUN."
|
||||
encloses the whole defun. This is for when the entire defun
|
||||
is required, not just the declaration part for DEFUN."
|
||||
(or (when-let ((node (treesit-defun-at-point)))
|
||||
(if range
|
||||
(cons (treesit-node-start node)
|
||||
(treesit-node-end node))
|
||||
node))
|
||||
(and c-ts-mode-emacs-devel
|
||||
(and c-ts-mode-emacs-sources-support
|
||||
(let ((candidate-1 ; For when point is in the DEFUN statement.
|
||||
(treesit-node-prev-sibling
|
||||
(treesit-node-top-level
|
||||
|
@ -945,9 +957,10 @@ returning the declaration part for DEFUN."
|
|||
|
||||
(defun c-ts-mode--emacs-current-defun-name ()
|
||||
"Return the name of the current defun.
|
||||
This is used for `add-log-current-defun-function'. This
|
||||
recognizes DEFUN in Emacs sources, in addition to normal function
|
||||
definitions."
|
||||
This is used for `add-log-current-defun-function'.
|
||||
In addition to regular C functions, this function also recognizes
|
||||
Emacs primitives defined using DEFUN in Emacs sources,
|
||||
if `c-ts-mode-emacs-sources-support' is non-nil."
|
||||
(or (treesit-add-log-current-defun)
|
||||
(c-ts-mode--defun-name (c-ts-mode--emacs-defun-at-point))))
|
||||
|
||||
|
@ -1096,7 +1109,7 @@ in your configuration."
|
|||
(setq-local treesit-defun-tactic 'top-level)
|
||||
(treesit-major-mode-setup)
|
||||
|
||||
(when c-ts-mode-emacs-devel
|
||||
(when c-ts-mode-emacs-sources-support
|
||||
(setq-local add-log-current-defun-function
|
||||
#'c-ts-mode--emacs-current-defun-name))))
|
||||
|
||||
|
@ -1141,7 +1154,8 @@ recommended to enable `electric-pair-mode' with this mode."
|
|||
;; Font-lock.
|
||||
(setq-local treesit-font-lock-settings (c-ts-mode--font-lock-settings 'cpp))
|
||||
(treesit-major-mode-setup)
|
||||
(when c-ts-mode-emacs-devel
|
||||
|
||||
(when c-ts-mode-emacs-sources-support
|
||||
(setq-local add-log-current-defun-function
|
||||
#'c-ts-mode--emacs-current-defun-name))))
|
||||
|
||||
|
|
|
@ -215,11 +215,11 @@ chosen (interactively or automatically)."
|
|||
((R-mode ess-r-mode) . ("R" "--slave" "-e"
|
||||
"languageserver::run()"))
|
||||
((java-mode java-ts-mode) . ("jdtls"))
|
||||
(dart-mode . ("dart" "language-server"
|
||||
"--client-id" "emacs.eglot-dart"))
|
||||
((dart-mode dart-ts-mode)
|
||||
. ("dart" "language-server"
|
||||
"--client-id" "emacs.eglot-dart"))
|
||||
((elixir-mode elixir-ts-mode heex-ts-mode)
|
||||
. ,(if (and (fboundp 'w32-shell-dos-semantics)
|
||||
(w32-shell-dos-semantics))
|
||||
. ,(if (and (fboundp 'w32-shell-dos-semantics) (w32-shell-dos-semantics))
|
||||
'("language_server.bat")
|
||||
'("language_server.sh")))
|
||||
(ada-mode . ("ada_language_server"))
|
||||
|
@ -1707,7 +1707,7 @@ under cursor."
|
|||
(const :tag "Go to definition" :definitionProvider)
|
||||
(const :tag "Go to type definition" :typeDefinitionProvider)
|
||||
(const :tag "Go to implementation" :implementationProvider)
|
||||
(const :tag "Go to declaration" :implementationProvider)
|
||||
(const :tag "Go to declaration" :declarationProvider)
|
||||
(const :tag "Find references" :referencesProvider)
|
||||
(const :tag "Highlight symbols automatically" :documentHighlightProvider)
|
||||
(const :tag "List symbols in buffer" :documentSymbolProvider)
|
||||
|
|
|
@ -2406,7 +2406,7 @@ a GDB/MI reply message."
|
|||
("+" . ())
|
||||
("=" . (("thread-created" . (gdb-thread-created . atomic))
|
||||
("thread-selected" . (gdb-thread-selected . atomic))
|
||||
("thread-existed" . (gdb-ignored-notification . atomic))
|
||||
("thread-exited" . (gdb-thread-exited . atomic))
|
||||
('default . (gdb-ignored-notification . atomic)))))
|
||||
"Alist of alists, mapping the type and class of message to a handler function.
|
||||
Handler functions are all flagged as either `progressive' or `atomic'.
|
||||
|
|
|
@ -2192,14 +2192,17 @@ to add functions and PL/SQL keywords.")
|
|||
|
||||
;; Postgres Data Types
|
||||
(sql-font-lock-keywords-builder 'font-lock-type-face nil
|
||||
"bigint" "bigserial" "bit" "bool" "boolean" "box" "bytea" "char"
|
||||
"character" "cidr" "circle" "date" "decimal" "double" "float4"
|
||||
"float8" "inet" "int" "int2" "int4" "int8" "integer" "interval" "line"
|
||||
"lseg" "macaddr" "money" "name" "numeric" "path" "point" "polygon"
|
||||
"precision" "real" "serial" "serial4" "serial8" "sequences" "smallint" "text"
|
||||
"time" "timestamp" "timestamptz" "timetz" "tsquery" "tsvector"
|
||||
"txid_snapshot" "unknown" "uuid" "varbit" "varchar" "varying" "without"
|
||||
"xml" "zone"
|
||||
"bigint" "bigserial" "bit" "bool" "boolean" "box" "bytea" "char" "character"
|
||||
"cidr" "circle" "date" "daterange" "decimal" "double" "float4" "float8" "inet"
|
||||
"int" "int2" "int4" "int4range" "int8" "int8range" "integer" "interval"
|
||||
"jsonb" "jsonpath" "line" "lseg" "macaddr" "macaddr8" "money" "name" "numeric"
|
||||
"numrange" "oid" "path" "point" "polygon" "precision" "real" "regclass"
|
||||
"regcollation" "regconfig" "regdictionary" "regnamespace " "regoper"
|
||||
"regoperator" "regproc" "regprocedure" "regrole" "regtype" "sequences"
|
||||
"serial" "serial4" "serial8" "smallint" "smallserial" "text" "time"
|
||||
"timestamp" "timestamptz" "timetz" "tsquery" "tsrange" "tstzrange" "tsvector"
|
||||
"txid_snapshot" "unknown" "uuid" "varbit" "varchar" "varying" "without" "xml"
|
||||
"zone"
|
||||
)))
|
||||
|
||||
"Postgres SQL keywords used by font-lock.
|
||||
|
|
|
@ -1820,16 +1820,22 @@ IGNORES is a list of glob patterns for files to ignore."
|
|||
;; Ripgrep gets jumbled output, though, even with --line-buffered.
|
||||
;; But Grep seems to be stable. Even without --line-buffered.
|
||||
(defcustom xref-search-program-alist
|
||||
'((grep
|
||||
.
|
||||
;; '-s' because 'git ls-files' can output broken symlinks.
|
||||
"xargs -0 grep <C> --null -snHE -e <R>")
|
||||
(ripgrep
|
||||
.
|
||||
;; '!*/' is there to filter out dirs (e.g. submodules).
|
||||
"xargs -0 rg <C> --null -nH --no-heading --no-messages -g '!*/' -e <R>"
|
||||
)
|
||||
(ugrep . "xargs -0 ugrep <C> --null -ns -e <R>"))
|
||||
(let ((xargs-max-chars
|
||||
(and (memq system-type '(windows-nt ms-dos))
|
||||
"-s 10000 ")))
|
||||
`((grep
|
||||
.
|
||||
;; '-s' because 'git ls-files' can output broken symlinks.
|
||||
,(concat "xargs -0 " xargs-max-chars "grep <C> --null -snHE -e <R>"))
|
||||
(ripgrep
|
||||
.
|
||||
;; '!*/' is there to filter out dirs (e.g. submodules).
|
||||
,(concat "xargs -0 "
|
||||
xargs-max-chars
|
||||
"rg <C> --null -nH --no-heading --no-messages -g '!*/' -e <R>"))
|
||||
(ugrep
|
||||
.
|
||||
,(concat "xargs -0 " xargs-max-chars "ugrep <C> --null -ns -e <R>"))))
|
||||
"Association list mapping program identifiers to command templates.
|
||||
|
||||
Program identifier should be a symbol, named after the search program.
|
||||
|
@ -1844,7 +1850,7 @@ The template should have the following fields:
|
|||
:type '(repeat
|
||||
(cons (symbol :tag "Program identifier")
|
||||
(string :tag "Command template")))
|
||||
:version "28.1"
|
||||
:version "29.1"
|
||||
:package-version '(xref . "1.0.4"))
|
||||
|
||||
(defcustom xref-search-program 'grep
|
||||
|
|
|
@ -211,14 +211,14 @@ static unsigned short right_curly_arrow_bits[] = {
|
|||
|
||||
/* Large circle bitmap. */
|
||||
/*
|
||||
........
|
||||
..xxxx..
|
||||
.xxxxxx.
|
||||
xxxxxxxx
|
||||
xxxxxxxx
|
||||
xxxxxxxx
|
||||
xxxxxxxx
|
||||
.xxxxxx.
|
||||
..xxxx..
|
||||
........
|
||||
*/
|
||||
static unsigned short large_circle_bits[] = {
|
||||
0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c};
|
||||
|
|
19
src/keymap.c
19
src/keymap.c
|
@ -3308,13 +3308,18 @@ describe_vector (Lisp_Object vector, Lisp_Object prefix, Lisp_Object args,
|
|||
if (this_shadowed)
|
||||
{
|
||||
SET_PT (PT - 1);
|
||||
static char const fmt[] = " (currently shadowed by `%s')";
|
||||
USE_SAFE_ALLOCA;
|
||||
char *buffer = SAFE_ALLOCA (sizeof fmt +
|
||||
SBYTES (SYMBOL_NAME (shadowed_by)));
|
||||
esprintf (buffer, fmt, SDATA (SYMBOL_NAME (shadowed_by)));
|
||||
insert_string (buffer);
|
||||
SAFE_FREE();
|
||||
if (SYMBOLP (shadowed_by))
|
||||
{
|
||||
static char const fmt[] = " (currently shadowed by `%s')";
|
||||
USE_SAFE_ALLOCA;
|
||||
char *buffer =
|
||||
SAFE_ALLOCA (sizeof fmt + SBYTES (SYMBOL_NAME (shadowed_by)));
|
||||
esprintf (buffer, fmt, SDATA (SYMBOL_NAME (shadowed_by)));
|
||||
insert_string (buffer);
|
||||
SAFE_FREE();
|
||||
}
|
||||
else /* Could be a keymap, a lambda, or a keyboard macro. */
|
||||
insert_string (" (currently shadowed)");
|
||||
SET_PT (PT + 1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4163,7 +4163,15 @@ use the Bourne shell command 'TERM=...; export TERM' (C-shell:\n\
|
|||
tty->TS_enter_alt_charset_mode = tgetstr ("as", address);
|
||||
tty->TS_exit_alt_charset_mode = tgetstr ("ae", address);
|
||||
tty->TS_exit_attribute_mode = tgetstr ("me", address);
|
||||
#ifdef TERMINFO
|
||||
tty->TS_enter_strike_through_mode = tigetstr ("smxx");
|
||||
if (tty->TS_enter_strike_through_mode == (char *) (intptr_t) -1)
|
||||
tty->TS_enter_strike_through_mode = NULL;
|
||||
#else
|
||||
/* FIXME: Is calling tgetstr here for non-terminfo case correct,
|
||||
even though "smxx" is more than 2 characters? */
|
||||
tty->TS_enter_strike_through_mode = tgetstr ("smxx", address);
|
||||
#endif
|
||||
|
||||
MultiUp (tty) = tgetstr ("UP", address);
|
||||
MultiDown (tty) = tgetstr ("DO", address);
|
||||
|
|
Loading…
Add table
Reference in a new issue