Merge from origin/emacs-30

1364bbc6a5 ; * admin/notes/spelling: Grammar fix
dc80a8f050 ; Add index entry "code completion" to user manual
0d9b14ed05 ; * doc/emacs/programs.texi (Program Modes): Add info abo...
f224475f57 ; admin/notes/spelling: Notes on abbreviation of "Emacs L...
86c354dd0d Fix OSX build without pdumper
2d12754ee2 ; Add indexing for Eglot in user manual
a30b9b640b ; Change some instances of cl to cl-lib in docs
b681d62436 ; Improve introduction to use-package manual
f1acefd86f ; Add cross-references to push and pop docstrings
This commit is contained in:
Sean Whitton 2025-03-22 21:09:37 +08:00
commit 764f23ef43
8 changed files with 46 additions and 17 deletions

View file

@ -635,7 +635,9 @@ ifndef NO_BIN_LINK
cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) "$(EMACSFULL)" "$(EMACS)"
endif
else
ifeq (${DUMPING},pdumper)
${INSTALL_DATA} src/emacs.pdmp "$(DESTDIR)${libexecdir}/Emacs.pdmp"
endif
subdir=${ns_appresdir}/site-lisp && ${write_subdir}
rm -rf ${ns_appresdir}/share
endif

View file

@ -15,3 +15,8 @@ Re "behavior" vs "behaviour", etc.
consistency. Leave obsolete aliases, as always.
- https://lists.gnu.org/r/emacs-devel/2005-06/msg00489.html
- In comments, docstrings and other documentation that forms part of
Emacs itself, prefer not to abbreviate "Emacs Lisp".
Say just "Lisp" whenever the context allows.
If you must abbreviate "Emacs Lisp", capitalize it thus: "Elisp".

View file

@ -2248,6 +2248,7 @@ definitions of symbols. (One disadvantage of this kind of backend is
that it only knows about subunits that were loaded into the
interpreter.)
@cindex eglot, for finding definitions of identifiers
@item
If Eglot is activated for the current buffer's project
(@pxref{Projects}) and the current buffer's major mode, Eglot consults

View file

@ -115,6 +115,16 @@ utilize the incremental parsing capabilities provided by
@samp{tree-sitter}. These modes have @samp{-ts-} in their names; for
example @code{c-ts-mode}, @code{python-ts-mode}, etc.
@cindex LSP
@cindex language server
@cindex Eglot
Major modes for programming languages can use services of
@dfn{language servers} via the facilities provided by the Eglot package.
Eglot implements LSP, the @dfn{language server protocol}, which allows
Emacs to receive language-specific information and services that enrich
and extend source code editing capabilities. @xref{Eglot Features,,,
eglot, Eglot: The Emacs LSP Client}.
@kindex DEL @r{(programming modes)}
@findex backward-delete-char-untabify
In most programming languages, indentation should vary from line to
@ -404,6 +414,7 @@ define your own comparison function by writing Lisp code.
the variable @code{completion-category-overrides} and setting its
@code{display-sort-function} for the category @code{imenu}.
@cindex eglot, for producing Imenu index
If Eglot is activated for the current buffer's project
(@pxref{Projects}) and the current buffer's major mode, Eglot provides
its own facility for producing the buffer's index based on the
@ -1501,6 +1512,7 @@ Global ElDoc mode, which is turned on by default, and turns on the
ElDoc mode in buffers whose major mode sets the variables described
below. Use @w{@kbd{M-x global-eldoc-mode}} to turn it off globally.
@cindex eglot, using with ElDoc
Various major modes configure the Global ElDoc mode to use their
documentation functions. Examples include Emacs Lisp mode, Python
mode, and Cfengine mode. In addition, Emacs features that provide
@ -1686,6 +1698,7 @@ but you can also complete symbol names in ordinary Emacs buffers.
@findex completion-at-point@r{, in programming language modes}
@cindex Lisp symbol completion
@cindex completion (Lisp symbols)
@cindex code completion
In most programming language modes, @kbd{C-M-i} (or
@kbd{M-@key{TAB}}@footnote{
On graphical displays, the @kbd{M-@key{TAB}} key is usually reserved
@ -1697,6 +1710,7 @@ uses the available support facilities to come up with the completion
candidates:
@itemize @bullet
@cindex eglot, using to complete symbol at point
@item
If Eglot is activated for the current buffer's project
(@pxref{Projects}) and the current buffer's major mode, the command

View file

@ -97,7 +97,7 @@ As Emacs Lisp programmers have grown in number, and the applications
they write have grown more ambitious, it has become clear that Emacs
Lisp could benefit from many of the conveniences of Common Lisp.
The @dfn{CL} package adds a number of Common Lisp functions and
The @dfn{CL-Lib} package adds a number of Common Lisp functions and
control structures to Emacs Lisp. While not a 100% complete
implementation of Common Lisp, it adds enough functionality
to make Emacs Lisp programming significantly more convenient.

View file

@ -1653,7 +1653,7 @@ This should create an unqualified method to access a slot, but
instead pre-builds a method that gets the slot's value.
@item :type
Specifier uses the @code{typep} function from the @file{cl}
Specifier uses the @code{cl-typep} function from the @file{cl-lib}
package. @xref{Type Predicates,,,cl,Common Lisp Extensions}.
It therefore has the same issues as that package. Extensions include
the ability to provide object names.
@ -1702,7 +1702,7 @@ Some important compatibility features that would be good to add are:
@item
Support for metaclasses.
@item
Improve integration with the @file{cl} package.
Improve integration with the @file{cl-lib} package.
@end enumerate
There are also improvements to be made to allow @eieio{} to operate

View file

@ -49,19 +49,18 @@ modify this GNU manual.''
@node Top
@top use-package User Manual
The @code{use-package} macro allows you to set up package
customization in your init file in a declarative way. It takes care
of many things for you that would otherwise require a lot of
repetitive boilerplate code. It can help with common customization,
such as binding keys, setting up hooks, customizing user options and
faces, autoloading, and more. It also helps you keep Emacs startup
fast, even when you use many (even hundreds) of packages.
The @code{use-package} macro allows you to set up package customization
in your init file in a declarative way. It reduces the need for
repetitive boilerplate code by handling many common customization tasks
for you. These include binding keys, setting hooks, customizing user
options and faces, setting up autoloading, and more. It also helps you
keep Emacs startup fast, even when you use many (even hundreds) of
packages.
Note that use-package is not a package manager. Although use-package
does have the useful capability to interface with the Emacs package
manager, its primary purpose is help with the configuration and
loading of packages, not with managing their download, upgrades, and
installation.
Note that use-package is not a package manager. While it provides
convenient integration with Emacs's built-in package manager, its
primary purpose is to help with configuring and loading packages, not
with downloading, upgrading, or installing them.
@insertcopying

View file

@ -251,8 +251,12 @@ STATES should be an object returned by `buffer-local-set-state'."
(defmacro push (newelt place)
"Add NEWELT to the list stored in the generalized variable PLACE.
This is morally equivalent to (setf PLACE (cons NEWELT PLACE)),
except that PLACE is evaluated only once (after NEWELT)."
except that PLACE is evaluated only once (after NEWELT).
For more information about generalized variables, see Info node
`(elisp) Generalized Variables'."
(declare (debug (form gv-place)))
(if (symbolp place)
;; Important special case, to avoid triggering GV too early in
@ -266,9 +270,13 @@ except that PLACE is evaluated only once (after NEWELT)."
(defmacro pop (place)
"Return the first element of PLACE's value, and remove it from the list.
PLACE must be a generalized variable whose value is a list.
If the value is nil, `pop' returns nil but does not actually
change the list."
change the list.
For more information about generalized variables, see Info node
`(elisp) Generalized Variables'."
(declare (debug (gv-place)))
;; We use `car-safe' here instead of `car' because the behavior is the same
;; (if it's not a cons cell, the `cdr' would have signaled an error already),