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

8968 commits

Author SHA1 Message Date
Lars Ingebrigtsen
80736aef90 Fix which-func-update doc string
* lisp/progmodes/which-func.el (which-func-update): Make the doc
string match the code (bug#54288).
2022-03-07 16:19:27 +01:00
Dmitry Gutov
558b03a958 Add explicit '--no-heading' for ripgrep
* lisp/progmodes/xref.el (xref-search-program-alist):
Add explicit '--no-heading' for ripgrep (bug#54177).
2022-02-27 15:28:04 +02:00
Eli Zaretskii
9fd396e4d0 * lisp/progmodes/subword.el (superword-mode): Doc fix. (Bug#54045) 2022-02-18 09:01:06 +02:00
Robert Pluim
31af9bca99 Mark flymake as compatible with emacs-26.1
* lisp/progmodes/flymake.el: Bump package version and set
emacs version in Package-Requires to 26.1 (Bug#53853).
2022-02-08 16:04:15 +01:00
Brian Leung
82e74e4559 flymake: Ensure compatibility with older Emacsen
* lisp/progmodes/flymake.el (flymake--log-1): Use
replace-regexp-in-string instead of Emacs 28's
string-replace (bug#53853).
2022-02-08 07:16:55 +01:00
Philipp Stephani
ac2cdb8a46 * lisp/progmodes/xref.el (xref-file-name-display): Fix docstring. 2022-01-14 22:01:06 +01:00
Dmitry Gutov
e7aa3ece52 Fix vc-git with old Git over Tramp and cygwin-mount.el
* lisp/vc/vc-git.el (vc-git-use-literal-pathspecs): New variable.
(vc-git-command, vc-git--call): Use it to determine whether to set
GIT_LITERAL_PATHSPECS=1 (bug#51497).
(vc-git--literal-pathspec, vc-git--literal-pathspecs): Remove.
Update all callers.  This reverts the previous solution for bug#39452.

* lisp/progmodes/project.el (project--vc-list-files):
Use the new variable.
2022-01-05 04:08:10 +02:00
Eli Zaretskii
19dcb237b5 ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
Alan Mackenzie
06545bc0cc CC Mode: c-update-brace-stack: After struct foo *, do not expect a brace.
This fixes bug #52796.

* lisp/progmodes/cc-engine.el (c-update-brace-stack): Handle a "*" like a
semicolon, cancelling the expectation of a brace.

* lisp/progmodes/cc-langs.el (c-brace-stack-thing-key): Add a "*" into the
sets of significant characters.
2021-12-29 19:05:11 +00:00
Dmitry Gutov
c09ad0cabd Fix the bug with duplicate entries in xref output
* lisp/progmodes/etags.el (xref-backend-definitions): Make sure to
save the changed intermediate value of the list (bug#52734).
2021-12-24 15:27:00 +02:00
Dmitry Gutov
04be23f19f Improve Xref documentation
* lisp/progmodes/xref.el (xref-item): Add docstring for 'summary'.
Fix typo in the header Commentary.
2021-12-24 03:25:22 +02:00
Kévin Le Gouguec
9bd3f78645 Make `M-x run-python' select the window again
Interactively, we want M-x run-python to focus the interpreter buffer.
The previous code failed in two ways:

- the call to 'display-buffer' was not reached if an interpreter
  was already running,

- set-buffer is ineffectual if the interpreter's window is not
  selected: once Emacs returns to the command loop, the current buffer
  will revert back to what the selected window contains.

* lisp/progmodes/python.el (python-shell-make-comint): Handle the SHOW
argument regardless of whether an interpreter buffer exists, and use
pop-to-buffer to select the window.
(run-python): Delegate buffer management to
'python-shell-make-comint'.

* test/lisp/progmodes/python-tests.el
(python-tests--run-python-selects-window): Rename from
'python-tests--bug31398', and adjust assertions (bug#52380).
2021-12-13 05:17:00 +01:00
Lars Ingebrigtsen
5708da48d1 Revert "Make `M-x run-python' select the window again"
This reverts commit aa2872a127.

This led to a test failure.
2021-12-10 13:07:24 +01:00
Kévin Le Gouguec
aa2872a127 Make `M-x run-python' select the window again
* lisp/progmodes/python.el (python-shell-make-comint): Make `M-x
run-python' select the window again like in 27.2 (bug#52380).
2021-12-10 13:05:49 +01:00
Eli Zaretskii
6b89578524 ; * lisp/progmodes/flymake.el: Update the minimum Emacs version. 2021-12-09 17:01:57 +02:00
Óscar Fuentes
6ba2f028cf Revert "Grep alias `all' shall not match parent directory"
This reverts commit 856cd948d1.

Emacs got better at quoting shell arguments and the original value
works correctly for vc-git-grep. At the same time, the value
introduced on that commit caused a regression on lgrep.

* lisp/progmodes/grep.el (grep-files-aliases): Use previous value for
`all'. Fixes bug#52367
2021-12-08 23:52:39 +01:00
Juri Linkov
da23e607d3 Select the right buffer for event in context-menu functions (bug#9923)
* lisp/mouse.el (context-menu-region):
* lisp/progmodes/prog-mode.el (prog-context-menu):
Switch to the buffer displayed by the window of the event
before using syntax-ppss, char-after.
2021-12-06 19:24:09 +02:00
Alan Mackenzie
84166ea2e6 CC Mode: Recognise "struct foo {" as introducing a type declaration
This fixes bug #52157.

* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): If such a construct
is parsed, set the flag at-type-decl which is part of the function's return
value.
2021-12-01 15:41:09 +00:00
Lars Ingebrigtsen
70c229b1fc Fix regression in gdb-frame-handler
* lisp/progmodes/gdb-mi.el (gdb-frame-handler): Protect against
nil fullnames (bug#52196).
2021-11-30 14:09:19 +01:00
Stefan Kangas
42d4e24ff3 ; Fix typos 2021-11-12 13:59:58 +01:00
Juri Linkov
a83ccc46fa * lisp/progmodes/prog-mode.el (prog-context-menu): Use "Go Back" (bug#38797)
; Do not merge to master.
2021-11-09 10:29:37 +02:00
Stefan Kangas
d85cf33e49 Escape '%' in filenames to fix flymake warnings
* lisp/progmodes/flymake.el (flymake--log-1): Escape '%' in filenames
for 'warning-type-format' so they are not interpreted as a %-sequence
by 'format' later.  (Bug#51549)
2021-11-06 20:59:28 +01:00
Juri Linkov
bc58bea371 * lisp/progmodes/prog-mode.el (prog-context-menu): Use text-mode-context-menu. 2021-11-01 22:08:36 +02:00
Carlos Pita
4a96f32def Avoid replacing common prefix with ellipsis
* lisp/progmodes/python.el
(python-shell-completion-native-setup): Configure readline not to
suppress common prefixes.  (Bug#51218)
2021-10-30 17:51:27 +02:00
Lars Ingebrigtsen
9b6b5e37ef Regexp-quote github domains in bug-reference
* lisp/progmodes/bug-reference.el
(bug-reference--build-forge-setup-entry): Regexp-quote the domain
(bug#51316).
2021-10-22 16:57:04 +02:00
Tassilo Horn
380981ddb5 Adjust bug-reference-bug-regexp default values to match only at beg of word
Previously, the "bug 1" in "(debug 1)" has also been highlighted.

* lisp/progmodes/bug-reference.el (bug-reference-bug-regexp)
(bug-reference--setup-from-vc-alist,bug-reference-setup-from-mail-alist)
(bug-reference-setup-from-irc-alist): Adjust bug-reference-bug-regexp
default values to match only at the beginning of a word.
2021-10-19 07:05:18 +02:00
Alan Mackenzie
8e8a920246 * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): check type-start
Check type-start is non-nil at L659 of the function.
2021-10-18 16:53:19 +00:00
Mattias Engdegård
bb4209a5a5 Fix xref elisp identifier namespace mistake
Pressing `M-.` on ALPHA in

  (let ((ALPHA BETA)) ...)

would incorrectly search for ALPHA as a function rather than a variable.

* lisp/progmodes/elisp-mode.el (elisp--xref-infer-namespace): Fix logic.
* test/lisp/progmodes/elisp-mode-tests.el
(elisp-mode-infer-namespace): Add test case.
2021-10-18 17:26:45 +02:00
Philipp Stephani
21397cce51 Improve documentation string for 'compilation-error-regexp-alist'.
* lisp/progmodes/compile.el (compilation-error-regexp-alist): Clarify
behavior when TYPE is a cons cell.
2021-10-16 12:54:39 +02:00
Lars Ingebrigtsen
a338d46060 Make emacs-lisp-byte-compile-and-load load the .elc file again
* lisp/progmodes/elisp-mode.el (emacs-lisp-byte-compile-and-load):
Load the compiled file instead of the source (bug#51180).
2021-10-13 13:41:32 +02:00
Stefan Kangas
b3d0f53b29 * lisp/progmodes/python.el: Bump package version to 0.28. 2021-10-11 21:24:38 +02:00
Stefan Kangas
392d6708a5 Fontify "print" and "exec" as functions in python-mode
This change was first made on master, but on closer consideration it
is better to fix this bug already in Emacs 28.1.

* lisp/progmodes/python.el (python-font-lock-keywords-level-2):
Fontify "print" and "exec" as functions, which is the case in
Python 3.  (Bug#43298)  Do not merge to master.
2021-10-11 21:24:38 +02:00
Dmitry Gutov
6bf29072e9 Avoid mapping file names through 'substring'
* lisp/progmodes/project.el (project--files-in-directory):
Avoid mapping file names through 'substring'.  Reducing the amount
of garbage generated.  Better perf by up to 20%.
Bump the package version.
2021-10-10 04:15:42 +03:00
Dmitry Gutov
35a752863a * lisp/progmodes/xref.el: Bump the version. 2021-10-09 04:38:11 +03:00
Dmitry Gutov
bbcd8cc1a9 Slight simplificaiton
* lisp/progmodes/xref.el (xref--insert-xrefs):
Compute log only once.  Use 'dolist'.
2021-10-09 04:33:02 +03:00
Dmitry Gutov
59782839cb (xref--collect-matches-1): Remove some intermediate allocations
* lisp/progmodes/xref.el: (xref--collect-matches-1):
Rewrite to remove some intermediate allocations.
Modest performance improvement.
2021-10-08 18:44:54 +03:00
Dmitry Gutov
9d8202b45e Add Emacs 27 compatibility hack
* lisp/progmodes/xref.el: Add Emacs 27 compatibility hack, for the
standalone version of this package.
2021-10-08 05:23:19 +03:00
Dmitry Gutov
9f041cdfac Bump project.el version
* lisp/progmodes/project.el: Bump the version.
2021-10-05 19:58:26 +03:00
Dmitry Gutov
ad2287e659 Retain compatibility with older project.el projects
* lisp/progmodes/xref.el (xref--analyze):
Retain compatibility with older project.el and its compatible
project definitions (for standalone Xref from ELPA).
2021-10-05 19:50:55 +03:00
Stefan Kangas
0a7bab689c ; Minor stylistic fixes found by checkdoc 2021-10-05 02:06:57 +02:00
Stefan Kangas
c0793cd9de Don't use some obsolete names in documentation
* admin/notes/bugtracker: Use non-obsolete name
'mail-dont-reply-to-names'.
* admin/notes/multi-tty: Mention new variable name
'x-selection-value'.
* doc/lispintro/emacs-lisp-intro.texi (Point and mark)
(Point and mark, Design @value{COUNT-WORDS}): Avoid using obsolete
name 'count-lines-region'.
* doc/lispref/hooks.texi (Standard Hooks): Remove reference to
obsolete abnormal hook 'completion-annotate-function'.
* doc/misc/efaq.texi (SPC no longer completes file names): Remove
reference to obsolete 'minibuffer-local-filename-must-match-map';
setting it has no effect.
* doc/misc/gnus.texi (NNTP): Remove reference to obsolete variable
'nntp-authinfo-file'.
* doc/misc/reftex.texi (Table of Contents, Creating Citations)
(Options - Table of Contents, Options - Referencing Labels)
(Options - Creating Citations, Options - Index Support)
(Options - Index Support, Changes): Don't use obsolete names.
* doc/misc/speedbar.texi (Minor Display Modes)
(Major Display Modes): Make variable name suggestions more in line
with existing non-obsolete variable.
* lisp/textmodes/reftex-cite.el (reftex-select-bib-mode-map):
* lisp/textmodes/reftex-ref.el (reftex-offer-label-menu): Don't use
obsolete variable names.
* lisp/progmodes/which-func.el (which-func-mode): Doc fix.
2021-10-04 03:26:11 +02:00
Juri Linkov
121a5abeae Move context-menu selection items Defun/List/Symbol to prog-mode (bug#9054)
* lisp/mouse.el (context-menu-functions):
Add context-menu-middle-separator to choices.
(context-menu-region): Move Defun/List/Symbol selection items
to prog-context-menu.

* lisp/progmodes/prog-mode.el (prog-context-menu):
Move Defun/List/Symbol selection items from context-menu-region.
Include text-mode select menu only in strings and comments.

* lisp/textmodes/text-mode.el (text-mode-menu): New function.
(text-mode): Add text-mode-menu to context-menu-functions.
2021-10-03 20:35:49 +03:00
João Távora
137fa2d716 Rename elisp-shorthands to read-symbol-shorthands
The new name fits better in the family of variables that affect
the Lisp reader.

Suggested-by: Po Lu <luangruo@yahoo.com>

* doc/lispref/symbols.texi (Shorthands): Mention read-symbol-shorthands

* lisp/shorthands.el (hack-read-symbol-shorthands)
(hack-read-symbol-shorthands)
(shorthands-font-lock-shorthands): Use read-symbol-shorthands

* lisp/progmodes/elisp-mode.el (elisp--completion-local-symbols)
(elisp--completion-local-symbols)
(elisp-shorthands): Use read-symbol-shorthands

* src/lread.c:
(syms_of_lread): Define Vread_symbol_shorthands
(oblookup_considering_shorthand): Use Vread_symbol_shorthands.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer):
(elisp-shorthand-read-from-string): Use read-symbol-shorthands

* test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el
Use new symbol name read-symbol-shorthands.
2021-10-03 16:18:40 +01:00
Dmitry Gutov
205eb7f801 ; s/class/type 2021-10-01 03:05:56 +03:00
Dmitry Gutov
86da812afb Migrate Xref off EIEIO
To improve performance and flexibility (bug#50777).

* lisp/progmodes/xref.el (xref-location): Remove.
(xref-file-location): Change to cl-struct.
(xref-buffer-location, xref-bogus-location): Ditto.
(xref-item, xref-match-item): Same.
And update all method definitions accordingly.
(xref--insert-xrefs): Don't use 'oref', use 'xref-item-location'.
(xref--insert-xrefs, xref-show-definitions-completing-read):
Insetad of 'with-slots', use 'xref-item-summary' and
'xref-item-location'.

* lisp/progmodes/etags.el (xref-etags-location):
Change from EIEIO class into a cl-struct.
(xref-etags-apropos-location): Ditto.
Update all method definitions.

* test/lisp/progmodes/elisp-mode-tests.el (xref-elisp-test-run):
Avoid using 'oref'.
2021-10-01 00:02:21 +03:00
Mattias Engdegård
79b5d66bd6 * lisp/progmodes/flymake.el (flymake-menu): Don't use obsolete name. 2021-09-27 16:00:32 +02:00
Eli Zaretskii
d45b3e03c9 Minor fixes of Lisp doc strings for shorthands feature
* lisp/progmodes/elisp-mode.el (obarray-cache)
(elisp--completion-local-symbols):
* lisp/international/mule.el (hack-elisp-shorthands)
(load-with-shorthands-and-code-conversion): Doc string fixes.
2021-09-27 09:49:28 +03:00
João Távora
90cbf0cb8d Consider shorthands in Elisp's elisp-completion-at-point
Instead of referencing obarray directly, that function has to consider
a collection of completions which includes the shorthand versions of
some of the symbols.  That collection changes from buffer to buffer,
depending on the choice of elisp-shorthands.

To make this process efficient, and avoid needless recalculation of
the above collection, a new obarray-specific cache was invented.  The
Elisp variable obarray-cache is immediately nullified if something
touches the obarray.

* lisp/progmodes/elisp-mode.el : New helper.
(elisp-completion-at-point): Use new helpers.
(elisp--completion-local-symbols)
(elisp--fboundp-considering-shorthands)
(elisp--bboundp-considering-shorthands): New helpers

* src/lread.c (intern_driver): Nullify Qobarray_cache.
(syms_of_lread): Add Qobarray_cache.

* test/lisp/progmodes/elisp-mode-tests.el
(elisp-shorthand-completion-at-point): New test.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el
(f-test-complete-me): New fixture.
2021-09-27 01:07:11 +01:00
João Távora
71857d4106 Move most of the shorthand implementation to C code
It passes the tests designed for the previous Elisp implementation.

Likely, this isn't the final form of the implementation.  For one, the
reader is much slower and allocates a Lisp string for every atom read,
regardless if its already interned or not.  This has the potential to
be catastrophic in terms of GC.

Also rename the main variable to elisp-shorthands, from the
repetitive shorthand-shorthands.

For some reason, I had to put 'hack-elisp-shorthands' and
'load-with-shorthands-and-code-conversion', the new source-file
loading functions, in lisp/international/mule.el.

Otherwise, lisp/loadup.el wouldn't see them, for some reason that I
didn't investigate.  This should probably be fixed.

* lisp/shorthand.el: Remove.

* test/lisp/shorthand-tests.el: Remove.

* src/lread.c:
(read1, Fintern, Fintern_soft, Funintern): Use
oblookup_considering_shorthand.
(oblookup_considering_shorthand): New helper.
(syms_of_lread): Declare elisp-shorthands.

* lisp/progmodes/elisp-mode.el (elisp-shorthands):
Put a safe-local-variable spec.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer)
(elisp-shorthand-read-from-string)
(elisp-shorthand-byte-compile-a-file)
(elisp-shorthand-load-a-file): New tests.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el: New file

* lisp/loadup.el (load-source-file-function): Set to
load-with-shorthands-and-code-conversion.

* lisp/international/mule.el (hack-elisp-shorthands): Move here.
(load-with-shorthands-and-code-conversion): And here.
2021-09-27 01:07:11 +01:00
Stefan Kangas
c78e16962e ; Adjust overly long docstrings to fit 80 characters 2021-09-26 13:23:57 +02:00