1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-17 11:20:39 -08:00
Commit graph

8099 commits

Author SHA1 Message Date
Andrea Corallo
5be335e6b5 Merge remote-tracking branch 'savahnna/master' into HEAD 2020-07-13 15:13:46 +02:00
Eli Zaretskii
0339325d53 ;* lisp/progmodes/project.el (project-current): Doc fix. 2020-07-12 21:48:39 +03:00
Dmitry Gutov
96173fbfab ; Roll back certain doc changes; clarify what "transient" is 2020-07-12 20:55:23 +03:00
Eli Zaretskii
f5bc508be5 Fix last doc changes in project.el
* lisp/progmodes/project.el (project-find-functions)
(project-current): Add back information which was recently
removed.
2020-07-12 16:57:40 +03:00
Dmitry Gutov
4a467f7591 project-kill-buffers: Update the docstring too
* lisp/progmodes/project.el (project-kill-buffers):
Copy a sentence over from project-switch-to-buffer.
2020-07-12 03:46:37 +03:00
Dmitry Gutov
ebcbd50c53 More docstring updates in project.el
* lisp/progmodes/project.el (project-find-functions)
(project-current, project-switch-to-buffer):
More docstring updates.
2020-07-12 03:39:16 +03:00
Glenn Morris
398a268061 Merge from origin/emacs-27
c04b92104c Add commentary in gtkutil.c
6290850dac Consistently stylize eldoc as ElDoc in prose
136e931189 Improve documentation of "C-u C-x ="
1f52771fd3 Mention floating rounding issues
c892ae65b4 Repair global-auto-revert-ignore-modes (bug#42271)
3a446a02fb ; * src/xdisp.c (decode_mode_spec): Fix commentary.
79f381b4a6 One more improvement of left/right-fringe display spec docs
1279bdb072 Another clarification of left/right-fringe display spec

# Conflicts:
#	doc/emacs/programs.texi
2020-07-11 09:25:04 -07:00
Eli Zaretskii
d8e17a4c4e Another minor improvement of project.el doc strings
* lisp/progmodes/project.el (project-find-functions)
(project-current, project-switch-to-buffer): Doc fix.
(project-current): Rename the argument DIR to DIRECTORY.
2020-07-11 15:33:51 +03:00
Dmitry Gutov
86c860f1a1 project-switch-to-buffer: Reword the docstring
* lisp/progmodes/project.el (project-switch-to-buffer):
Reword the docstring, copying the style from project-kill-buffers.
2020-07-11 04:39:58 +03:00
Basil L. Contovounesios
6290850dac Consistently stylize eldoc as ElDoc in prose
* doc/emacs/custom.texi (Specifying File Variables):
* doc/emacs/modes.texi (Major Modes):
* doc/emacs/programs.texi (Lisp Doc):
* etc/NEWS.22:
* etc/NEWS.23:
* lisp/progmodes/python.el:
(python-eldoc-function):
* test/lisp/progmodes/python-tests.el: Consistently capitalize eldoc
as ElDoc rather than Eldoc.
2020-07-10 15:22:27 +01:00
Andrea Corallo
5f13016ced Merge remote-tracking branch 'savannah/master' into wip2 2020-07-09 16:42:16 +01:00
João Távora
19cf8e5be7 Bump Flymake version
* lisp/progmodes/flymake.el (Version): Bump to 1.0.9.
2020-07-09 11:14:34 +01:00
Glenn Morris
fcc04678b9 * lisp/progmodes/cc-engine.el (c-at-expression-start-p): Fix message. 2020-07-08 17:23:36 -07:00
João Távora
6063b542f7 Shoosh warnings about obsolete eldoc-documentation-function
* lisp/progmodes/cfengine.el (cfengine3-mode): Remove mention to
obsolete eldoc-documentation-function.

* lisp/progmodes/python.el (python-mode): Use with-no-warnings.
2020-07-08 20:20:19 +01:00
João Távora
1203626f47 Make more parts of Emacs use new Eldoc capabilities
Elisp-mode was doing a lot of work that can now be delegated to Eldoc.
Flymake uses the new Eldoc functionality, too, installing a global
documentation function that may report on diagnostics under point.

CEDET's grammar.el was left as the only user of an Eldoc-internal
function.  That function was moved to grammar.el.  That file is still,
somewhat reprehensibly, using an internal function of elisp-mode.el,
but this was left unchanged.

In other situations, eldoc-documentation-functions is used or
recommended.

The only other places where the obsolete eldoc-documentation-function
is still used is in libraries which are presumably meant to remain
compatible with previous Emacs versions.

* lisp/progmodes/elisp-mode.el (elisp-eldoc-funcall)
(elisp-eldoc-var-docstring): New functions.
(emacs-lisp-mode): Put two elements in
eldoc-documentation-functions.

* lisp/emacs-lisp/eldoc.el (eldoc--eval-expression-setup): Setup
new Elisp eldoc-documentation-functions.

* lisp/progmodes/flymake.el (flymake-mode): Use
flymake-eldoc-function.
(flymake-eldoc-function): New function.
(Package-Requires): Require eldoc 1.1.0

* lisp/descr-text.el (describe-char-eldoc): Recommend
eldoc-documentation-functions.

* lisp/progmodes/cfengine.el (cfengine3-documentation-function):
Recommend eldoc-documentation-functions

* lisp/progmodes/octave.el (inferior-octave-mode): Use
eldoc-documentation-functions.

* lisp/cedet/semantic/grammar.el (semantic--docstring-format-sym-doc):
New function.
(semantic-grammar-eldoc-get-macro-docstring): Adjust.
2020-07-08 11:25:33 +01:00
João Távora
a7a53f0d79 Better handle asynchronous Eldoc sources
This is a backward compatible redesign of significant parts of the
eldoc.el library.

Previously, Eldoc clients (major/minor modes setting its documentation
gathering variables) needed to directly call eldoc-message, an
internal function, to display the docstring to the user.  When more
asynchronous sources are involved, this is hard to do or even breaks
down.

Now, an Eldoc backend may return any non-nil, non-string value and
call a callback afterwards.  This restores power to Eldoc over how
(and crucially also when) to display the docstrings to the user.

Among other things, this fixes so called "doc blinking", or the very
short-lived display of a lower priority Eldoc message.  This would
happen if a particular producer of documentation finishes shortly
before a higher priority one, like in the LSP engine Eglot as reported
by Andrii Kolomoiets <andreyk.mad@gmail.com> and Dmitry Gutov
<dgutov@yandex.ru>.

Gathering docstrings is now delegated to the variable
eldoc-documentation-strategy, which is the new name for the
now-obsolete eldoc-documentation-function, and still accepts the
so-called "old protocol".  Examples of the new strategies enabled are
codified in functions such as eldoc-documentation-enthusiast,
eldoc-documentation-compose-eagerly, along with the existing
eldoc-documentation-compose and eldoc-documentation-default.

The work of displaying and formatting docstrings is shifted almost
fully to Eldoc itself and is delegated to the internal function
eldoc--handle-docs.  Among other improvements, it handles most of
eldoc-echo-area-use-multiline-p and outputs documentation to a
temporary *eldoc* buffer.

The manual and NEWS are updated to mention the new Eldoc features.

* lisp/emacs-lisp/eldoc.el (eldoc-documentation-functions):
Overhaul docstring.
(eldoc-documentation-compose, eldoc-documentation-default): Handle
non-nil, non-string values of elements of
eldoc-documentation-functions.  Use eldoc--handle-multiline.
(eldoc-print-current-symbol-info): Honour non-nil, non-string
values returned by eldoc-documentation-callback.
(eldoc--make-callback): Now also a function.
(eldoc-documentation-default, eldoc-documentation-compose): Tweak docstring.
(eldoc-documentation-enthusiast, eldoc-documentation-compose-eagerly):
New functions.
(eldoc-echo-area-use-multiline-p): Add new semantics.
(eldoc--handle-docs): Handle some of eldoc-echo-area-use-multiline-p.
(eldoc-doc-buffer): New command.
(eldoc-prefer-doc-buffer): New defcustom.
(eldoc--enthusiasm-curbing-timer): New variable.
(eldoc-documentation-strategy): Rename from eldoc-documentation-function.
(eldoc--supported-p): Use eldoc-documentation-strategy
(eldoc-highlight-function-argument)
(eldoc-argument-case, global-eldoc-mode)
(turn-on-eldoc-mode): Mention eldoc-documentation-strategy.
(eldoc-message-function): Mention eldoc--message.
(eldoc-message): Made obsolete.
(eldoc--message): New helper.

* lisp/hexl.el (hexl-print-current-point-info): Adjust to new
eldoc-documentation-functions protocol.

* lisp/progmodes/cfengine.el (cfengine3-documentation-function):
Adjust to new eldoc-documentation-functions protocol.

* lisp/progmodes/elisp-mode.el
(elisp-eldoc-documentation-function): Adjust to new
eldoc-documentation-functions protocol.

* lisp/progmodes/octave.el (octave-eldoc-function): Adjust to new
eldoc-documentation-functions protocol.

* lisp/progmodes/python.el (python-eldoc-function): Adjust to new
eldoc-documentation-functions protocol.

(eldoc-print-current-symbol-info): Rework with cl-labels.

* doc/emacs/programs.texi (Lisp Doc): Mention
eldoc-documentation-strategy.

* doc/lispref/modes.texi (Major Mode Conventions): Mention
eldoc-documentation-functions.

* etc/NEWS: Mention eldoc-documentation-strategy.
2020-07-08 11:25:33 +01:00
Andrea Corallo
3d43d45755 Merge remote-tracking branch 'savannah/master' into HEAD 2020-07-07 20:44:39 +01:00
Glenn Morris
3b36b38713 Merge from origin/emacs-27
59e768d64a Fix undefined behavior in json.c (Bug#42113)
cce00bef03 Fix ACTION argument of 'display-buffer' call in gud.el
0121db2702 * src/keyboard.c (Fclear_this_command_keys): Doc fix.
b9abf5ceb2 Improve do string of 'man'
b87fc938a0 ; * src/xdisp.c (pos_visible_p): Yet another minor fix for...
2020-07-07 07:50:39 -07:00
Dmitry Gutov
10a0941f4d ; Revert "; Add a note about a bottleneck"
This reverts commit 9f9ce631a2.

It's still a bottleneck, but so are mapcar (with its effect on GC) and
concat. So our limits show in several places at once.
2020-07-06 04:29:52 +03:00
Dmitry Gutov
9f9ce631a2 ; Add a note about a bottleneck 2020-07-06 03:50:59 +03:00
Dmitry Gutov
3c7bae2337 * lisp/progmodes/project.el: Bump the version. 2020-07-06 00:51:24 +03:00
Dmitry Gutov
bcde7952b3 ; Add a couple of FIXMEs 2020-07-06 00:51:24 +03:00
Dmitry Gutov
4ca13d98c9 project-switch-to-buffer: Don't filter based on default-directory
* lisp/progmodes/project.el (project-switch-to-buffer):
Don't filter based on default-directory
(https://lists.gnu.org/archive/html/emacs-devel/2020-07/msg00075.html).
(project-switch-to-buffer): Ditto.
2020-07-06 00:51:24 +03:00
Wilson Snyder
e3ada2063a Verilog-Mode collected updates.
* lisp/progmodes/verilog-mode.el (verilog-auto-inst): Support regexp of
what AUTOINST I/O to include, issue #1682.  Reported by Mrainy.
(verilog-font-lock-keywords-1): Fix highlighting module names with no
following (, issue #1679.  Reported by Vinam Arora.
(verilog-font-lock-keywords) Adds syntax highlighting for identifiers in
declaration statements, #1678.
(verilog-calculate-indent, verilog-inject-arg)
(verilog-keywords, verilog-showscopes): Support AMS
connectmodule/endconnectmodule, #1665. Reported by Dan McMahill.
2020-07-05 13:31:39 -04:00
Alan Mackenzie
1560c92c9c Remove long obsolete c-looking-at-bos. Make c-at-expression-start-p obsolete
* lisp/progmodes/cc-engine.el (c-looking-at-bos): Remove.
(c-at-expression-start-p): Make obsolete, with no alternative function.
2020-07-04 16:35:47 +00:00
Alan Mackenzie
eae028b9e2 Fix filling in js-mode and mhtml-mode (js-mode parts), fixing bug #41897
* lisp/progmodes/js.el (js-mode): Use "\\(?:" in the value of
comment-start-skip rather than "\\(", fixing the second half of bug #41952.
Call c-foreign-init-lit-pos-cache and install c-foreign-truncate-lit-pos-cache
on before-change-functions, to connect up correctly with CC Mode's filling
mechanism.

* lisp/textmodes/mhtml-mode.el (mhtml--crucial-variable-prefix): Add prefixes
"adaptive-fill-", "fill-", "normal-auto-fill-function" and "paragraph-" to
pull in variables crucial to filling.
(mhtml-syntax-propertize): Read the current submode from the piece of text
being propertized rather than one character before it, and do so before
erasing the submode text-property.
(mhtml-mode): Set the js-mode value of auto-fill-function to js-do-auto-fill.
Correctly initialize and use CC Mode's filling facilities, as above.
2020-07-04 12:55:49 +00:00
Alan Mackenzie
697942f9a0 CC Mode: Fix wrong value of comment-start-skip, fixing half of bug #41952
Also add functions to enable correct use of CC Mode's filling functionality
from major modes which don't initialize CC Mode fully.  These modes are
currently js-mode and mhtml-mode.

* lisp/progmodes/cc-langs.el (comment-start-skip): Replace "\\(" by "\\(?:" so
that (match-end 1) isn't falsely taken to be the start of the comment.

* lisp/progmodes/cc-engine.el (c-foreign-truncate-lit-pos-cache)
(c-foreign-init-lit-pos-cache): New functions.
2020-07-04 11:56:18 +00:00
Andrea Corallo
25bdf99713 Merge remote-tracking branch 'savahnna/master' into HEAD 2020-07-02 22:30:37 +02:00
Alan Mackenzie
5d1bac0ac9 * lisp/progmodes/cc-mode.el (c-or-c++-mode--regexp): Change WS to [ \t] in it 2020-07-02 18:14:30 +00:00
Alan Mackenzie
519e64f981 CC Mode: optimize for repeated simple operations.
Do this by recognising that unterminated strings in a buffer are typically
going to be few and close together.  Also optimize code for C++ attributes.

* lisp/progmodes/cc-defs.el (c-previous-single-property-change): New macro.
(c-put-syn-tab, c-clear-syn-tab): Turned from macros into functions, and moved
to cc-mode.el.
(c-clear-syn-tab-properties): Amended to use c-min/max-syn-tab-mkr.
(c-with-extended-string-fences): Removed.

* lisp/progmodes/cc-engine-el (c-enclosing-c++-attribute): Rewritten for
speed.
(c-slow-enclosing-c++-attribute): Removed.
(c-semi-pp-to-literal): Remove a superfluous call to
c-with-extended-string-fences.

* lisp/progmodes/cc-mode.el (c-min-syn-tab-mkr, c-max-syn-tab-mkr): two new
marker variables which bound the region occupied by positions with
c-fl-syn-tab text properties.
(c-basic-common-init): Initialize these two variables.
(c-fl-syn-tab-region): Removed.
(c-put-syn-tab, c-clear-syn-tab): Functions moved from cc-defs.el.
(c-clear-string-fences): Amended to use the new scheme.
(c-restore-string-fences): Now takes no arguments; amended to use the new
scheme.
(c-font-lock-fontify-region): Amended to use the new scheme.
2020-06-29 19:10:09 +00:00
Richard Kim
cce00bef03 Fix ACTION argument of 'display-buffer' call in gud.el
* lisp/progmodes/gud.el (gud-common-init): The ACTION argument of
'display-buffer' should be a list of list of functions.  (Bug#41888)
2020-06-28 17:02:17 +03:00
Andrea Corallo
0eedb5af0b Merge remote-tracking branch 'savannah/master' into HEAD 2020-06-27 21:42:16 +01:00
Basil L. Contovounesios
89c744c380 ; Fix recent indentation in project.el
* lisp/progmodes/project.el (project-ignores, project-find-file-in)
(project-eshell, project--read-project-list): Fix indentation.
2020-06-26 09:37:52 +01:00
Dmitry Gutov
96ff641cd9 project--read-project-list: Add structure verification
* lisp/progmodes/project.el (project--list): Update docstring.
(project--read-project-list): Add structure verification.
2020-06-26 03:43:14 +03:00
Dmitry Gutov
733921edfe project-known-roots: Rename and improve
* lisp/progmodes/project.el (project-known-project-roots):
Rename from 'project-known-roots'.  Update the docstring.  Make
sure the returned value is a list of strings.  Update the caller
(bug#41821).
2020-06-26 03:43:14 +03:00
Dmitry Gutov
beaff813e1 Rename project-kill-buffers-{skip-conditions,ignores}
* lisp/progmodes/project.el (project-kill-buffers-ignores):
Rename from project-kill-buffers-skip-conditions (bug#41868).
Update both references.
Add a :package-version attribute.
2020-06-26 03:43:14 +03:00
Alan Mackenzie
7574390099 CC Mode. Fix an off by one error. Fixes bug #41809
* lisp/progmodes/cc-engine.el (c-full-pp-to-literal): Change > to >= (twice).
2020-06-25 17:07:16 +00:00
Alan Mackenzie
b6ea0e0834 Make switch work in AWK Mode. Fixes bug #41923
lisp/progmodes/cc-langs.el (c-block-stmt-2-kwds): Insert "switch" into the AWK
Mode entry.
(c-case-kwds): Remove the special entry for AWK Mode.
2020-06-24 19:45:30 +00:00
Juri Linkov
bfd96e995d M-n in read-directory-name of vc commands gets project dirs (bug#41821)
* lisp/progmodes/project.el (project-known-roots): New autoloaded function.

* lisp/vc/vc-hooks.el (vc-known-roots): New function.

* lisp/vc/vc.el (vc-root-diff, vc-print-root-log):
* lisp/vc/vc-dir.el (vc-dir): Use 'vc-known-roots' for default
values for read-directory-name.
2020-06-24 02:59:31 +03:00
Dmitry Gutov
bea5eb77b3 project-switch-to-buffer: Improve Ido compatibility
* lisp/progmodes/project.el (project-switch-to-buffer):
Check that the entry contains a non-nil CDR.
2020-06-22 16:58:02 +03:00
Dmitry Gutov
2be719827f project-switch-to-buffer: Do not require matching input
* lisp/progmodes/project.el (project-switch-to-buffer):
Do not require matching input, to allow creating buffers as well
(bug#41879).
2020-06-22 16:48:43 +03:00
Mattias Engdegård
6242605731 Fix spurious error in beginning-of-defun in pascal-mode (bug#41740)
* lisp/progmodes/pascal.el (pascal-beg-of-defun):
Ignore errors in forward-sexp.
* test/lisp/progmodes/pascal-tests.el (pascal-beg-of-defun): New test.
2020-06-22 09:51:17 +02:00
Mattias Engdegård
73daab9991 Preserve point in pascal-mode completion (bug#41740)
Failure to do so caused errors in several cases.
Reported by Shinichi Sakata.

* lisp/progmodes/pascal.el (pascal-type-completion)
(pascal-completion): Wrap code that may move point in save-excursion.
* test/lisp/progmodes/pascal-tests.el: New file.
2020-06-22 09:51:11 +02:00
Theodor Thornhill
a1686c00d0 Forward declare eshell-buffer-name in project-eshell
* lisp/progmodes/project.el: Forward declare 'eshell-buffer-name' so
that 'project-eshell' can use dynamically scoping with it.
2020-06-22 01:49:20 +03:00
Dmitry Gutov
7221d844b1 ; project-shell, project-eshell: Doc fixes 2020-06-22 01:47:55 +03:00
Andrea Corallo
c324e02f75 Merge remote-tracking branch 'savahnna/master' into dev 2020-06-22 00:20:03 +02:00
Andrea Corallo
51df0ab6f6 Do not native compile two functions to allow cc-mode hack
* lisp/progmodes/cc-langs.el (c-populate-syntax-table): Declare
	with speed -1.

	* lisp/progmodes/cc-bytecomp.el
	(cc-bytecomp-compiling-or-loading): Declare with speed -1.
2020-06-22 00:12:32 +02:00
Eli Zaretskii
8df2957df1 Improve doc strings of 'project-shell' and 'project-eshell'
* lisp/progmodes/project.el (project-shell, project-eshell): Doc
fixes.
2020-06-21 19:20:37 +03:00
Basil L. Contovounesios
a4d3897d8f Replace some uses of cl-mapcan with mapcan
* lisp/progmodes/project.el (project-files, project-files):
* lisp/progmodes/xref.el (xref-backend-references)
(xref--convert-hits):
* test/lisp/emacs-lisp/package-tests.el
(package-test-strip-version): Replace cl-mapcan with equivalent
calls to mapcan.
2020-06-21 14:33:16 +01:00
Basil L. Contovounesios
1ecd350f38 Evaluate some unnecessarily quoted lambdas
* lisp/cedet/semantic/complete.el
(semantic-displayer-tooltip-max-tags):
* lisp/emacs-lisp/benchmark.el (benchmark-run-compiled):
* lisp/emacs-lisp/package.el (package--default-summary)
(package-menu-filter-by-version):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/progmodes/verilog-mode.el (verilog-auto-lineup)
(verilog-auto-reset-widths, verilog-auto-arg-format)
(verilog-auto-inst-vector, verilog-auto-inst-template-numbers):
* lisp/textmodes/bibtex.el (bibtex-dialect):
* test/lisp/autoinsert-tests.el
(autoinsert-tests-define-auto-insert-before)
(autoinsert-tests-define-auto-insert-after): Remove some unnecessary
quoting around anonymous functions.
2020-06-21 13:42:14 +01:00