1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-16 10:50:49 -08:00
Commit graph

8115 commits

Author SHA1 Message Date
Lars Ingebrigtsen
d0ad630672 Fix fontification of %d in strings in cperl-mode
* lisp/progmodes/cperl-mode.el (cperl-init-faces): Don't fontify
directives like %d in strings as hashes (bug#22867).
2020-08-07 14:07:20 +02:00
Philip K
cc365ca6d8 Remove usages of assoc-delete-all in project.el
assoc-delete-all is not available for users who have installed
project.el via ELPA on older Emacs versions (bug#42668).

* lisp/progmodes/project.el
(project-remember-project, project--remove-from-project-list):
Replace assoc-delete-all with equivalent alternatives.
2020-08-06 17:49:53 +03:00
Harald Jörg
283fce4c3c cperl-mode.el: Correctly terminate HERE-docs
* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): cperl-mode
in the master branch wrongly uses the first occurrence of "HERE"
to terminate the string, resulting in badly fontified / indented
code which follows (bug#42251).
2020-08-05 17:19:06 +02:00
Harald Jörg
7389a9ef09 cperl-mode: Fix bad parameter construction in cperl-etags
* lisp/progmodes/cperl-mode.el (cperl-etags): This fails with
(wrong-type-argument stringp cperl-sub-regexp). The error came
with incorporating Jonathan Rockway's work (bug#42355).

Copyright-paperwork-exempt: yes
2020-08-05 15:55:00 +02:00
Harald Jörg
9d409746df cperl-mode: Workaround for failure of cperl-write-tags
* lisp/progmodes/cperl-mode.el (cperl-mode): Accomodate recent
changes in etags (bug#42356).
2020-08-05 15:37:13 +02:00
Lars Ingebrigtsen
c9d550a301 Fontize $(...) slightly better in bash mode
* lisp/progmodes/sh-script.el (sh-font-lock-keywords-var): Fontize
$(...) slightly better (bug#42417).  Instead of just fontizing the
first word in the expression, fontize until the closing
parenthesis.  This doesn't work well if you have nested $(...)
expressions.
2020-08-05 11:34:56 +02:00
Philip K
2ab66c9f9b Replace project-kill-buffers-ignores with project-kill-buffer-conditions
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Replace the project-kill-buffers-ignores user option.
(project--kill-buffer-check): New function.
(project--buffers-to-kill): New function.
(project-kill-buffers): Use them.  Add the NO-CONFIRM argument.
2020-07-29 01:21:56 +03:00
Dmitry Gutov
4d195bb7d0 Fix argument reference
* lisp/progmodes/project.el
(project-display-buffer-other-frame): Fix argument reference.
2020-07-27 03:05:16 +03:00
Dmitry Gutov
33667e02e6 Move project--value-in-dir to a different section
* lisp/progmodes/project.el (project--value-in-dir):
Move closer to its uses.
2020-07-27 03:04:09 +03:00
Dmitry Gutov
7551aff22c Bind switch-to-buffer-obey-display-actions to t
* lisp/progmodes/project.el (project--other-place-command):
Bind switch-to-buffer-obey-display-actions to t, so that
project-other-window-command and friends can affect
project-switch-to-buffer.
2020-07-27 02:57:06 +03:00
Sean Whitton
b63c5a7efc Add project other place commands
* lisp/progmodes/project.el (project-other-window-map,
project-other-frame-map, project--other-place-command,
project-other-window-command, project-other-frame-command,
project-other-tab-command): Add these functions and maps.
* lisp/progmodes/project.el: Bind project-other-window-command to C-x
4 p, project-other-frame-command to C-x 5 p and
project-other-tab-command to C-x t p (bug#42210).
2020-07-27 02:56:50 +03:00
Sean Whitton
e3614fcc62 Add project-display-buffer and project-display-buffer-other-frame
* lisp/progmodes/project.el (project-display-buffer,
project-display-buffer-other-frame): Add commands.
2020-07-27 02:52:10 +03:00
Sean Whitton
7479c11b4e Factor out project--read-project-buffer from project-switch-buffer
* lisp/progmodes/project.el (project--read-project-buffer): New
function extracted from project-switch-buffer.
* lisp/progmodes/project.el (project-switch-buffer): Instead of
unconditionally reading a project buffer from the user, add
buffer-or-name argument, and populate it using
project--read-project-buffer when called interactively.  Update
docstring.
2020-07-27 02:52:10 +03:00
João Távora
dae97708ea Correct order or eldoc-documentation-functions in Elisp mode
Fixes: bug#42531

* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Reverse order of
eldoc-documentation-functions.
2020-07-26 10:54:24 +01:00
Dmitry Gutov
19064761ad project-remember-project: New public function
* lisp/progmodes/project.el (project-remember-project):
Rename from project--add-to-project-list-front (bug#42332).
And autoload it.
2020-07-25 03:17:47 +03:00
Tassilo Horn
0d7d422b76 bug-reference auto-setup for IRC, implementation for ERC
* lisp/progmodes/bug-reference.el (bug-reference-setup-from-irc-alist):
Change SERVER-REGEXP to NETWORK-REGEXP in docstring.
* lisp/progmodes/bug-reference.el (bug-reference--maybe-setup-from-irc):
Change semantics from requiring a match of channel OR server to
requiring a match of both (if both are configured).
* lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-erc):
New defun doing the auto-setup for ERC.
(bug-reference--run-auto-setup): Run bug-reference-try-setup-from-erc.
* etc/NEWS: Extend entry describing bug-reference auto-setup.
2020-07-23 19:03:25 +02:00
Dmitry Gutov
4c08c2f45b ; project.el: Talk about equality 2020-07-20 04:07:11 +03:00
Dmitry Gutov
7259377d70 project.el: Add more docs and two new key bindings
* lisp/progmodes/project.el:
Add a longer description of the package and how to use it.
(project-prefix-map): Add entries for
'project-or-external-find-file' and
'project-or-external-find-regexp'.
2020-07-20 03:58:08 +03:00
Alan Mackenzie
1fc9d0a790 Remove redundant code from c-font-lock-fontify-region
* lisp/progmodes/cc-mode.el (c-font-lock-fontify-region): Remove variables
string-fence-beg and lim, and the code used to calculate them.
2020-07-19 10:55:48 +00:00
Philipp Stephani
f700fc1482 Add missing 'require'.
* lisp/progmodes/project.el: Require seq.el explicitly as
'seq-every-p' isn't autoloaded in Emacs 26.3.
2020-07-19 10:32:51 +02:00
Tassilo Horn
1cb14d0ce4 ; Add defvars for rcirc vars in order to silence the byte-compiler
* lisp/progmodes/bug-reference.el: Add rcirc defvars for silencing the
byte-compiler.
2020-07-17 21:05:32 +02:00
Tassilo Horn
beaad910c2 bug-reference auto-setup for IRC, implementation for rcirc
* lisp/progmodes/bug-reference.el (bug-reference-setup-from-irc-alist):
New defvar for configuring bug regexp and URL based on IRC channel and
server names.
(bug-reference--maybe-setup-from-irc): New defun doing the setup given
channel and server.
(bug-reference-try-setup-from-rcirc): New defun calling the above for
rcirc buffers.
(bug-reference--run-auto-setup): Enable the auto-setup for rcirc.
* etc/NEWS: Extend entry describing bug-reference auto-setup.
2020-07-17 20:59:04 +02:00
Tassilo Horn
a2a4588110 Add tramp and orgmode to bug-reference-setup-from-mail-alist.
Also add a TODO that I should implement something similar for
IRC (rcirc/ERC).

* lisp/progmodes/bug-reference.el (bug-reference-setup-from-mail-alist):
Auto-setup also with groups matching orgmode and tramp.
2020-07-16 18:38:59 +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
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
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
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