1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-05-31 01:32:00 -07:00
Commit graph

181555 commits

Author SHA1 Message Date
Mattias Engdegård
f16006e52e Avoid mutating properties of string literals
* lisp/emacs-lisp/shortdoc.el (text-properties):
* lisp/progmodes/gdb-mi.el (gdb-put-breakpoint-icon):
* lisp/progmodes/gud.el (gud-speedbar-buttons):
Don't mutate literals in some obvious cases.
2025-12-21 21:08:01 +01:00
Sean Whitton
6539b7e8ac ; Annotate VC backend functions regarding vc-use-short-revision
* lisp/vc/vc.el (previous-revision, next-revision): Say that
implementations should respect the value of
vc-use-short-revision (bug#80033).
2025-12-21 18:10:49 +00:00
Paul Eggert
f98c3a940d Remove binary-as-unsigned (bug#79990)
This experimental variable caused more trouble than it cured:
it was rarely used, and when used it tended to be used incorrectly.
* src/editfns.c (binary-as-unsigned): Remove.  All uses removed.
2025-12-21 09:57:56 -08:00
Sean Whitton
59e3c27f37 diff-sanity-check-hunk: Better handle incomplete lines (bug#80040)
* lisp/vc/diff-mode.el (diff-sanity-check-hunk): Better handle
incomplete lines (bug#80040).
2025-12-21 17:56:10 +00:00
Juri Linkov
2e42cc4b30 Add text property 'imenu-region' for Eglot and 'M-x imenu' (bug#79980)
* lisp/imenu.el (imenu--flatten-index-alist)
(imenu--parentify-index-alist, imenu-choose-buffer-index):
Use the text property 'imenu-region' instead of 'breadcrumb-region'.

* lisp/progmodes/eglot.el (eglot--imenu-SymbolInformation)
(eglot--imenu-DocumentSymbol): Add new text properties 'imenu-region'
and 'imenu-kind' while keeping the old text properties 'breadcrumb-region'
and 'breadcrumb-kind' for backward-compatibility.
2025-12-21 19:49:23 +02:00
Stéphane Marks
864712f10b ; Minor updates to system-taskbar (bug#79859)
* lisp/system-taskbar.el (system-taskbar--set-back-end): Add
boundp condition for w32-initialized.
(system-taskbar--enable): Add success return value to all
methods.  Demote error to warning in the dbus method.
2025-12-21 16:45:33 +01:00
Eli Zaretskii
2fa1e80289 ; Fix system-taskbar-badges on MS-Windows
* src/w32fns.c (Fw32_badge): Fix typos in specifying color values.

* lisp/system-taskbar.el (system-taskbar-w32-badge-background)
(system-taskbar-w32-badge-foreground): Adjust to Windows
conventions.  (Bug#79859)
2025-12-21 16:04:04 +02:00
Philip Kaludercic
5744519ef4
List all packages in 'package-install' prompt
* lisp/emacs-lisp/package.el (package-install-upgrade-built-in):
Update documentation.
* lisp/emacs-lisp/package.el (package-install): Raise error when
re-installing an installed package.  (Bug#79881)
2025-12-21 13:28:25 +01:00
Michael Albinus
808d4a2133 ; Fix last commit
* doc/emacs/frames.texi:
* doc/lispref/os.texi:
* lisp/system-taskbar.el: Fix typos.
2025-12-21 13:20:06 +01:00
Stéphane Marks
f5f2306fc1 System GUI taskbar and progress reporter hooks (bug#79859)
Implement system GUI taskbar/dock/launcher icon badge, icon
progress indicator, icon attention alert features for D-Bus
platforms (tested on KDE and GNOME), NS (macOS/GNUstep),
MS-Windows.

Add 'progress-reporter-update-functions' abnormal hook to facilitate
taskbar progress display, and other custom progress reporters.
The default function list is 'progress-reporter-echo-area' which
is backward compatible.

* lisp/subr.el (progress-reporter-update-functions):
New defvar.
(progress-reporter-echo-area): New defun.
(progress-reporter-do-update): Run
progress-reporter-update-functions for both numerical and
pulsing reporters.
(progress-reporter-done): Run progress-reporter-done-functions.
* lisp/system-taskbar.el: New file.
* src/nsfns.m (Fns_badge, Fns_progress_indicator)
(Fns_request_user_attention): New function.
(syms_of_nsfns): Add defsubr Sns_badge,
Sns_request_user_attention, Sns_progress_indicator. Add DEFSYM
Qinformational, Qcritical.
* src/w32fns.c (rgb_list_to_colorref, Fw32_badge)
(Fw32_request_user_attention, Fw32_progress_indicator): New
function.
(syms_of_w32fns): Add defsubr Sw32_badge,
Sw32_progress_indicator, Sw32_request_user_attention. Add DEFSYM
Qinformational, Qcritical.
* doc/emacs/frames.texi: User documentation.
* doc/lispref/os.texi: Programmer documentation.
* etc/NEWS: Announce system-taskbar-mode.  Announce progress
reporter callback enhancements.
2025-12-21 12:55:10 +01:00
Eli Zaretskii
28a2a7d811 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2025-12-21 12:54:12 +02:00
Eli Zaretskii
33fab945d3 Fix VIQR decoding and encoding
* lisp/language/viet-util.el (viqr-regexp): Include escaped
punctuation characters, to handle escaped punctuation correctly.
(viqr-punctuation-regexp): New defconst.
(viet-encode-viqr-region): Backslash-escape punctuation characters
matching 'viqr-punctuation-regexp' before encoding Vietnamese
characters with diacritics.  (Bug#80039)

* test/lisp/language/viet-util-tests.el (viet-util-test-viqr): New
file with tests for VIQR encoding and decoding.
2025-12-21 12:52:17 +02:00
Michael Albinus
6d2914c0a4 * doc/misc/tramp.texi (FUSE setup): Extend rclone setup section. 2025-12-21 10:14:58 +01:00
Eli Zaretskii
1eb247af73 ; Improve documentation of Hide-ifdef mode
* lisp/progmodes/hideif.el (hide-ifdef-mode)
(hif-clear-all-ifdef-defined, hif-show-all, forward-ifdef)
(backward-ifdef, next-ifdef, previous-ifdef, hif-evaluate-macro)
(hif-find-define, hif-add-new-defines, hide-ifdef-define)
(hide-ifdefs): Doc fixes.
2025-12-21 09:23:26 +02:00
Eli Zaretskii
040374be2d ; Avoid compilation warnings in xwidget.c on macOS
* src/xwidget.c (Fxwidget_perform_lispy_event): Avoid compiler
warnings about set but not used variables.  (Bug#80044)
2025-12-21 08:15:55 +02:00
Eli Zaretskii
fd1b597781 ; 'standard-display-unicode-special-glyphs': Doc fix
* lisp/disp-table.el (standard-display-unicode-special-glyphs):
Describe in the doc string how to customize the glyphs.  (Bug#80043)
2025-12-21 07:53:51 +02:00
Eli Zaretskii
28a3e3d983 ; Fix a typo in a project.el test (bug#79809)
* test/lisp/progmodes/project-tests.el
(project-vc-supports-project-in-different-dir): Fix typo in version.
2025-12-21 07:37:41 +02:00
Dmitry Gutov
66069812be project-vc-supports-project-in-different-dir: Tune the expectation for 'find'
* test/lisp/progmodes/project-tests.el
(project-vc-supports-project-in-different-dir):
Account for difference in behavior when failing over to 'find'
(comments in bug#79809).
2025-12-21 04:05:06 +02:00
Jens Schmidt
bc30310f87 Add query-replace-read-transpose-from-to
Provide a command to easily swap FROM and TO arguments in a query
replace operation.

* lisp/replace.el (query-replace-read-transpose-from-to): New function.
(query-replace-read-map): New keymap.
(query-replace-read-from): Use new keymap to read from minibuffer.
(read-regexp-map): Inherit from 'query-replace-read-map'.
(query-replace-read-from, query-replace-read-to): Fix parameter
references in doc strings.
* etc/NEWS: Document the change.  (Bug#79835)
2025-12-20 21:10:06 +02:00
Juri Linkov
9ad5953dd3 Handle non-leaf nodes with Eglot text properties in 'M-x imenu'
* lisp/imenu.el (imenu--flatten-index-alist): Add special handling
of the text property 'breadcrumb-region' added by 'eglot-imenu'.
Add non-leaf nodes with these text properties to the flat index alist.
(imenu--parentify-index-alist): New function.
(imenu-choose-buffer-index): For the case when imenu-flatten is nil,
use 'imenu--parentify-index-alist' to add separate ".." to non-leaf nodes
when the first node of 'index-alist' has Eglot text properties (bug#79980).
2025-12-20 20:50:57 +02:00
Richard Lawrence
c685cf336a Add full support for iCalendar (RFC5545) data
This is a fix for Bug#74994 that replaces the existing support
in icalendar.el.  It implements a full parser, recurrence rule
and time zone calculations, diary import and export, and a
major mode with syntax highlighting for iCalendar data.  It
obsoletes most of the code in icalendar.el.

In addition to Bug#74994, the proposal to update Emacs' iCalendar
support was discussed on emacs-devel in this thread:
https://lists.gnu.org/archive/html/emacs-devel/2024-10/msg00425.html

icalendar.el pre-dates the current standard (RFC5545), contains numerous
bugs, is not well documented, and could not easily be updated or
extended; starting fresh was the simplest path to creating an iCalendar
library that other Emacs applications and packages can rely on.  It was
decided to leave icalendar.el's code in place for posterity, but declare
it obsolete.  Most of the changes in icalendar.el simply consist of such
declarations.  The old To Do list has also been deleted.

A few changes in icalendar.el, however, consist of new code for
library-wide functions and options, especially error handling.  In
particular:

* lisp/calendar/icalendar.el: Log iCalendar library errors in a single
buffer.
(icalendar-errors-mode): New mode for it.
(icalendar-uid-format): Change the default value to "%h", a hash
value (for privacy).
(icalendar-make-uid): New function, to replace 'icalendar--create-uid'.
(icalendar-debug-level, icalendar-vcalendar-prodid): New option.
(icalendar-vcalendar-version): New constant.
* lisp/calendar/icalendar.el (icalendar-import-format)
(icalendar-import-format-summary, icalendar-import-format-description)
(icalendar-import-format-location, icalendar-import-format-organizer)
(icalendar-import-format-url, icalendar-import-format-uid)
(icalendar-import-format-status, icalendar-import-format-class)
(icalendar-recurring-start-year, icalendar-export-hidden-diary-entries)
(icalendar-export-sexp-enumerate-all, icalendar-export-alarms,
icalendar-debug, icalendar--weekday-array, icalendar--dmsg)
(icalendar--get-unfolded-buffer icalendar--clean-up-line-endings)
(icalendar--rris, icalendar--read-element)
(icalendar--get-event-property, icalendar--get-event-properties)
(icalendar--get-event-property-attributes)
(icalendar--get-children, icalendar--all-events, icalendar--split-value)
(icalendar--convert-tz-offset, icalendar--parse-vtimezone)
(icalendar--get-most-recent-observance)
(icalendar--convert-all-timezones, icalendar--find-time-zone)
(icalendar--decode-isodatetime)
(icalendar--decode-isoduration, icalendar--add-decoded-times)
(icalendar--datetime-to-american-date)
(icalendar--datetime-to-european-date, icalendar--datetime-to-iso-date)
(icalendar--datetime-to-diary-date, icalendar--datetime-to-colontime)
(icalendar--get-month-number, icalendar--get-weekday-number)
(icalendar--get-weekday-numbers, icalendar--get-weekday-abbrev)
(icalendar--date-to-isodate, icalendar--datestring-to-isodate)
(icalendar--diarytime-to-isotime, icalendar--convert-string-for-export)
(icalendar--convert-string-for-import, icalendar-export-file)
(icalendar-export-region, icalendar--create-uid)
(icalendar--parse-summary-and-rest, icalendar--create-ical-alarm)
(icalendar--do-create-ical-alarm, icalendar--convert-ordinary-to-ical)
(icalendar-first-weekday-of-year, icalendar--convert-weekly-to-ical)
(icalendar--convert-yearly-to-ical, icalendar--convert-sexp-to-ical)
(icalendar--convert-block-to-ical, icalendar--convert-float-to-ical)
(icalendar--convert-date-to-ical, icalendar--convert-cyclic-to-ical)
(icalendar--convert-anniversary-to-ical, icalendar-import-file)
(icalendar-import-buffer, icalendar--format-ical-event)
(icalendar--convert-to-ical, icalendar--convert-ical-to-diary)
(icalendar--convert-recurring-to-diary)
(icalendar--convert-non-recurring-all-day-to-diary)
(icalendar--convert-non-recurring-not-all-day-to-diary)
(icalendar--add-diary-entry, icalendar-import-format-sample): Mark them
as obsolete.

In addition to the changes above, the new iCalendar library consists of
the following:

* lisp/calendar/diary-icalendar.el:
* lisp/calendar/icalendar-ast.el:
* lisp/calendar/icalendar-macs.el:
* lisp/calendar/icalendar-mode.el:
* lisp/calendar/icalendar-parser.el:
* lisp/calendar/icalendar-recur.el:
* lisp/calendar/icalendar-utils.el: New files

A few changes were made to existing files dealing with the calendar and
diary:

* lisp/calendar/calendar.el (calendar-date-from-day-of-year): New
function, extracted from calendar-goto-day-of-year.
* lisp/calendar/cal-move.el (calendar-goto-day-of-year): Use it.
* lisp/calendar/cal-dst.el (calendar-dst-find-data): Improve docstring.
* lisp/calendar/calendar.el (diary-date-insertion-form): New option.
(diary-american-date-insertion-form, diary-european-date-insertion-form)
(diary-iso-date-insertion-form): New constants.
* lisp/calendar/diary-lib.el (diary-insert-entry): Use the new
'diary-date-insertion-form' option.
(diary-time-regexp): Add FIXME to an existing comment.

The user-facing aspects of the above changes are documented in the Emacs
manual and the NEWS file:

* doc/emacs/calendar.texi (Diary Conversion): Update manual section to
describe the new importer and exporter.
* doc/emacs/emacs.texi (Detailed node listing): Update to include the
new nodes in docs/emacs/calendar.texi.
* etc/NEWS: Briefly describe the new library, major mode, and options.

The remainder of the changes apply to test files.

The following changes introduce new test files related to the new diary
importer and exporter:

* test/lisp/calendar/diary-icalendar-tests.el (Diary import and export):
Tests for diary-icalendar.  In addition to new tests for the exporter,
the existing import tests for icalendar.el have been ported here; these
use the existing iCalendar files in
test/lisp/calendar/icalendar-resources.  (A few new input .ics files
have also been added to this directory; see below.)
* test/lisp/calendar/diary-icalendar-resources: New directory containing
expected outputs for the import tests in diary-icalendar-tests.el.
(These have the same or similar names to the output files for the old
importer, in test/lisp/calendar/icalendar-resources, but different
contents.  Thus they live in a new directory.)
* test/lisp/calendar/icalendar-resources/import-legacy-function.ics: New
input file to test backward compatibility of the new importer with a
function as the value of 'icalendar-import-format', now obsolete.
* test/lisp/calendar/icalendar-resources/import-legacy-vars.ics: New
input file to test backward compatibility of the new importer with
values for options provided by icalendar.el which are now obsolete.
* test/lisp/calendar/icalendar-resources/import-with-attachment.ics: New
input file to test import of base64-encoded attachments.
* icalendar-resources/import-time-format-12hr-blank.ics: New input file
to test import with a custom value of 'diary-icalendar-time-format'.

Two other new test files provide unit tests for the main functions of
the library:

* test/lisp/calendar/icalendar-parser-tests.el (Parser): Tests for
icalendar-parser.  Most of these are derived from examples in RFC5545,
to ensure the parser implements the standard.
* test/lisp/calendar/icalendar-recur-tests.el (Recurrence rules): Tests
for icalendar-recur.  Most of these are derived from examples in RFC5545,
to ensure the recurrence rule interpreter implements the standard.

A few of the existing test files for icalendar.el have also been
modified.  Besides the specific changes mentioned below, the modified
.ics files also now use CR-LF line endings, as required by RFC5545:

* test/lisp/calendar/icalendar-tests.el (icalendar-deftest-obsolete):
New macro.
* test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.ics:
Correct a malformed VALUE parameter.
* test/lisp/calendar/icalendar-resources/import-rrule-anniversary.ics:
Correct representation of a recurring event.
*
test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.ics:
Add a required VALUE parameter.
* test/lisp/calendar/icalendar-resources/import-rrule-daily.ics:
* test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.ics:
* test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.ics:
* test/lisp/calendar/icalendar-resources/import-rrule-weekly.ics:
Correct a malformed RRULE property.
2025-12-20 13:38:02 -05:00
Jens Schmidt
0aabe62b64 Improve handling of non-ASCII characters in 'transpose-regions'
* src/editfns.c (Ftranspose_regions): Separate code related to character
semantics from that related to byte semantics and in that way leverage
optimizations for regions of equal length with respect to both
semantics.  Move and update comments dating back to the initial
implementation.
* test/src/editfns-tests.el (editfns-tests--transpose-regions-tests)
(editfns-tests--transpose-regions-markups)
(editfns-tests--transpose-regions): New test and accompanying variables.
2025-12-20 13:23:29 -05:00
Jens Schmidt
875e42d501 Fix byte-vs-char length issue in 'transpose-regions'
* src/editfns.c (Ftranspose_regions): Calculate length of range between
regions both in units of bytes and characters and use these values as
appropriate.
2025-12-20 13:23:21 -05:00
Elías Gabriel Pérez
e93a9a9057 hideshow: Support nested comment block in 'hs-hide-level-recursive'
bug#80009

* doc/emacs/programs.texi (Hideshow): Update documentation.
* lisp/progmodes/hideshow.el (hs-hide-level-recursive): Rework.
(hs-get-first-block-on-line): Minor changes.
(hs--add-indicators, hs-hide-comments-when-hiding-all)
(hs-minor-mode-menu, hs-hide-level, hs-cycle): Update code.
* test/lisp/progmodes/hideshow-tests.el
(hideshow-hide-levels-with-comments-1): New test.
2025-12-20 20:09:41 +02:00
Stéphane Marks
c989d096f1 Add vtable buffer slot (bug#79982)
This solves for background vtable mutations, i.e., updates
initiated from buffers other than the vtable buffer, and for
buffer-adjusted string-pixel-width computations.

* lisp/emacs-lisp/vtable.el (vtable): New '-buffer' slot.
(vtable-buffer, vtable-set-buffer): New function.
(vtable-update-object, vtable-remove-object)
(vtable-insert-object): Wrap operation with the vtable buffer.
(vtable--insert): Split from old 'vtable-insert'.
(vtable-insert): Insert table and record the buffer.
(vtable--insert-line, vtable--insert-header-line): Use
'vtable-buffer' for pixel-width computation.
(vtable--limit-string, vtable--char-width): Pass buffer to
'string-pixel-width'.
(vtable-revert): New optional table argument.
(vtable--alter-column-width, vtable-revert-command)
(vtable-sort-by-current-column): Call 'vtable-revert' with the
table.

* test/lisp/emacs-lisp/vtable-tests.el
(vtable-tests--make-no-header-2-object-table): New helper
function.
(test-vstable-compute-columns): Correct typo in test name.  Use
new helper function.
(test-vtable-unique-buffer)
(test-vtable-non-current-buffer-insert-object)
(test-vtable-non-current-buffer-remove-object)
(test-vtable-non-current-buffer-update-object)
(test-vtable--limit-string-with-face-remapped-buffer): New test.
2025-12-20 18:23:25 +02:00
Martin Rudalics
cf2e676eca Don't change visibility of tty root frames (Bug#80032)
* src/frame.c (Fmake_frame_visible, Fmake_frame_invisible):
* doc/lispref/frames.texi (Visibility of Frames): Don't change
visibility of tty root frames.  (Bug#80032)
2025-12-20 15:12:39 +01:00
Eli Zaretskii
69ca26996c ; Update lisp/ldefs-boot.el 2025-12-20 08:43:09 -05:00
Jostein Kjønigsen
e3883144ae csharp-mode: Fix fontification of catch-expressions
* lisp/progmodes/csharp-mode.el
(csharp-ts-mode--font-lock-settings): Improve specificity
of selectors.  Don't let type-selector bleed into
name-selector.  (Bug#80038)
2025-12-20 15:12:50 +02:00
Rudolf Adamkovič
985e942d1c hi-lock: Use active region for default values in more places
* lisp/hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer)
(hi-lock-face-phrase-buffer): Use the new function
`hi-lock-read-regexp' to read font-lock patterns, mirroring
`hi-lock-read-face-name' used to read face names.  For end users,
all three functions now get the default value from the active
region, rather than just `hi-lock-face-buffer'.
(hi-lock-read-regexp): Extract font-lock pattern reading
functionality from `hi-lock-face-buffer' into this function, to
mirror how faces are read with `hi-lock-read-face-name' and to
promote reuse.  (Bug#79976)
2025-12-20 14:21:42 +02:00
Michael Albinus
9e16010686 Fix problem in Tramp completion
* lisp/net/tramp.el (tramp-completion-handle-expand-file-name):
Expand FILENAME also when it is absolute.  (Bug#80031)
2025-12-20 08:58:26 +01:00
Eli Zaretskii
54eae320f5 ; * lisp/vc/vc-git.el (vc-git-registered): Fix remote files (bug#80035). 2025-12-20 09:47:39 +02:00
Paul Eggert
4d11449c96 Revert to simpler (and we hope faster) TAGGEDP
Suggested by Mattias Engdegård (bug#80021#17).
* src/lisp.h (lisp_h_FIXNUMP, lisp_h_TAGGEDP):
Go back to the simpler (X&7) == TAG approach for checking object tags.
This reverses my commit ccdb08ef4e
“Improve performance of CONSP, FIXNUMP, etc.”
dated 2018-08-25 13:39:18 -0700,
though it keeps the TAGGEDP function the older commit introduced.
Although the older commit improved performance on its circa 2010
platform, when I ran today’s ‘make -C lisp compile-always’
benchmark on Ubuntu 25.10 which uses gcc (Ubuntu 15.2.0-4ubuntu4)
on an circa-2021 Intel Xeon W-1350, this patch makes the
‘make -C lisp compile-always’ benchmark 3.1% faster.  Although the
patch unfortunately also makes the Emacs text segment 0.6% larger,
in this case speed and simplicity beat text size in importance.
2025-12-19 09:10:31 -08:00
Gerd Möllmann
a6c2ae3a3f Don't make tty child frames visible when selected (bug#80020)
* src/frame.c (do_switch_frame): Don't change visibility of tty
child frames.
(Fraise_frame): Doc string fix.
2025-12-19 14:12:33 +01:00
João Távora
cfb4bace26 ; Eglot: mention relativePatternSupport in /etc/EGLOT-NEWS
* etc/EGLOT-NEWS (Changes to upcoming Eglot): Mention
relativePatternSupport.
2025-12-19 09:43:53 +00:00
Eli Zaretskii
4fe28df3cd ; * lisp/progmodes/project.el (vc-git-project-list-files): Fix a typo. 2025-12-19 09:56:58 +02:00
Paul Eggert
5e6df127a9 Fix ‘make compile-always’ with native compilation
Without the fix, ‘make compile-always’ failed nearly immediately
in a native compilation build, with ‘ELC+ELN
emacs-lisp/loaddefs-gen.elc’ outputting “Error: file-missing
("Cannot open load file" "No such file or directory" "comp")...”.
* lisp/Makefile.in (compile-always):
Build ../src first, since the ‘find ... -delete’ removes files
needed by ‘make compile’.
2025-12-18 22:17:45 -08:00
Paul Eggert
f6f85dd3be Remove stray references to $(LOADDEFS)
They became obsolete some time ago.
* lisp/Makefile.in (compile, compile-one-process):
Don’t depend on $(LOADDEFS).
2025-12-18 22:17:45 -08:00
Dmitry Gutov
976e3d3d51 Merge remote-tracking branch 'origin/master' 2025-12-19 02:52:29 +02:00
João Távora
4cc4c9cffc ; Eglot: fix oversight and add back essential delete-dups
Else will make a number of file-notify descriptors proportional to
the number of files in a directory (though this doesn't apply to
out-of-root watchers).

* lisp/progmodes/eglot.el (eglot--watch-globs): Tweak.
2025-12-19 00:48:38 +00:00
João Távora
ee481d30f9 Eglot: remove "face" suffix for semtok-specific faces
* lisp/progmodes/eglot.el (eglot--semtok-define-things)
(eglot--semtok-decode-token): Remove "face" suffix for semtok faces.
2025-12-19 00:48:38 +00:00
Dmitry Gutov
500f1478f7 Re-introduce fallback to 'find' for extra ignores with older Git
* lisp/progmodes/project.el (vc-git-project-list-files):
Fall back to 'find' when Git is older than 1.13 and EXTRA-IGNORES
is non-nil (bug#79809).
2025-12-19 02:47:36 +02:00
Dmitry Gutov
de5b8c70fb Revert "vc-git-project-list-files: Restore support for Git < 2.13"
This reverts commit 821c0d36df.

Despite re-enacting what the modern Git versions seem to do under the
covers, the effect is not the same: filtering works differently.
2025-12-19 02:26:59 +02:00
Sean Whitton
83e8acf19a ; * etc/NEWS: Fix last change. 2025-12-18 21:51:15 +00:00
Sean Whitton
f9172be29a Make VC-Dir's 'd' able to delete unregistered files
* lisp/vc/vc.el (vc-delete-file): Simplify.
* lisp/vc/vc-dir.el (vc-dir-delete-file): Handle deleting
unregistered files, too.
(vc-dir-menu-map, vc-dir-mode-map): Replace bindings for
vc-dir-clean-files with ones for vc-dir-delete-file.
* doc/emacs/maintaining.texi (VC Directory Commands):
* etc/NEWS: Document the bindings change.
2025-12-18 21:46:49 +00:00
Sean Whitton
1cd6428bce ; * lisp/vc/vc-dir.el (vc-dir-menu-map): Delete obsolete comment. 2025-12-18 21:43:57 +00:00
João Távora
998584eaad Eglot: fallback to project-files if no 'find' available (bug#79809)
When find-based directory listing fails, fallback to project-files
strategy for robustness.

* lisp/progmodes/eglot.el (eglot--watch-globs): Inline directory
listing and add error handling with fallback.  Rename BASE-PATH to DIR,
add IN-ROOT parameter.
(eglot--list-directories): Delete
(eglot-register-capability): Adjust caller, group by both DIR and
IN-ROOT.
2025-12-18 17:04:01 +00:00
Sean Whitton
bd6bb96220 vc-diff-internal: Call into backend with old current buffer
* lisp/vc/vc.el (vc-diff-internal): Call into the backend with
the original current buffer, not BUFFER (see bug#80005).
2025-12-18 17:01:57 +00:00
Sean Whitton
94aab3b602 ; * lisp/vc/vc-git.el (vc-git-region-history): Fix backend name. 2025-12-18 13:06:19 +00:00
Sean Whitton
495843d9eb ; cond* docs: Update match* operator name to cdr-ignore (bug#79998). 2025-12-18 10:48:12 +00:00
Dmitry Gutov
75a1403ff3 Fix "No such file or directory" "vc-nil" in project-files
* lisp/progmodes/project.el (project-files):
Fix vc-nil backend error (bug#80013).
2025-12-18 03:48:58 +02:00