diff --git a/Makefile.in b/Makefile.in index 0ba11c9aa5b..505eddd1abb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -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 diff --git a/admin/notes/spelling b/admin/notes/spelling index e0cf3998ace..37a0ada9923 100644 --- a/admin/notes/spelling +++ b/admin/notes/spelling @@ -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". diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index f233b118976..6e9653dcdc8 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -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 diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi index 0585c38e3db..c34aeac0d24 100644 --- a/doc/emacs/programs.texi +++ b/doc/emacs/programs.texi @@ -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 diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 12a6c45b78c..9a69168a452 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -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. diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index 9182af41333..39225535089 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi @@ -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 diff --git a/doc/misc/use-package.texi b/doc/misc/use-package.texi index e9fdbff5a45..c8630cee1c9 100644 --- a/doc/misc/use-package.texi +++ b/doc/misc/use-package.texi @@ -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 diff --git a/lisp/subr.el b/lisp/subr.el index 10b7da3535b..cb4d3b7c938 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -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),