Commit graph

98406 commits

Author SHA1 Message Date
Philip Kaludercic
055ee29eb4 Merge remote-tracking branch 'origin/feature/package-autosuggest' into scratch/split-package.el 2025-09-02 14:51:09 +02:00
Philip Kaludercic
218eab3f99 Remove package-core runtime dependency on cl-lib
* lisp/package/package-core.el (package--reload-previously-loaded):
Rewrite expression using 'cl-remove-if-not' with handwritten loop.
2025-09-02 12:25:13 +02:00
Philip Kaludercic
7035b923bc Merge remote-tracking branch 'origin/master' into scratch/split-package.el 2025-08-16 16:22:24 +02:00
Philip Kaludercic
65000280ac Move 'package-installed-p' to package-core
* lisp/package/package-install.el (package-installed-p): Remove
function from here...
* lisp/package/package-core.el (package-installed-p): ...to
here.  This check can be done without using any functionality
needed to actually install a package.
2025-08-16 16:20:47 +02:00
Sean Whitton
78d569e524 * lisp/vc/vc-hg.el (vc-hg-checkin): Fix on MS-Windows (bug#79024). 2025-08-16 14:12:04 +01:00
Sean Whitton
18b87fab35 ; vc-git-command, vc-hg-command: Comments about MS-Windows encoding. 2025-08-16 12:58:22 +01:00
Eli Zaretskii
eb8d0d7afe Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2025-08-16 14:41:41 +03:00
Eli Zaretskii
4983985b80 ; Fix last change (bug#77544)
* lisp/whitespace.el (whitespace-style): Bump :version.  Doc fix.
(whitespace-page-delimiter): Add :version.
(whitespace-page-delimiters-mode): Doc fix.
2025-08-16 14:40:39 +03:00
Michael Albinus
3516479b58 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2025-08-16 13:37:04 +02:00
Michael Albinus
25380c8e14 Merge from origin/emacs-30
964741d40e * lisp/net/tramp-sh.el (tramp-get-remote-touch): Simplify.
6a018a2d7e Improve use of "touch" in Tramp
2025-08-16 13:35:53 +02:00
Michael Albinus
4cb84d3a78 Merge from origin/emacs-30
f8a206937c executable-interpret: Handle remote file names
c17168ebed ; * admin/make-tarball.txt: Fix typo and add details.
2025-08-16 13:35:50 +02:00
Michael Albinus
839f416de7 Merge from origin/emacs-30
49d64bfb1a ; * etc/NEWS: Update for Emacs 30.2.
4b90b6e7ce ; * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Doc fi...
2025-08-16 13:35:00 +02:00
Elías Gabriel Pérez
997461f484 whitespace-mode: New style to prettify page delimiters characters.
This new style for 'whitespace-style' displays the page
delimiter characters "^L" as pretty horizontal lines.  (Bug#77544)

This also add a new minor mode to toggle these visualization.

* lisp/whitespace.el (whitespace-style): Add page-delimiters
option.
(whitespace-page-delimiter): New face.
(whitespace--page-delimiters-keyword): New variable.
(whitespace-page-delimiters-mode): New minor mode.
(whitespace-style-face-p, whitespace-color-on): Rework for
display the page-delimiters.
2025-08-16 14:34:10 +03:00
Eli Zaretskii
5124157263 ; * lisp/minibuffer.el (completion-eager-update): Doc fix. 2025-08-16 14:28:42 +03:00
Spencer Baugh
4d90bdb385 Add support for updating *Completions* as you type
Add support for updating the *Completions* buffer as you type,
controlled by a new completion metadata symbol 'eager-update'
and a new defcustom 'completion-eager-update'.

You can configure a completion category to update *Completions*
as you type by setting 'completion-category-overrides'
appropriately; or set 'completion-eager-update' to t to always
update *Completions* as you type.

This is similar to the recently added 'completion-eager-display'.

* lisp/minibuffer.el (completion-eager-update): Add new
defcustom defaulting to 'auto.  (Bug#77649)
(completion--eager-update-p, completions--background-update)
(completions--post-command-update): Add.
(completions--after-change): Call
'completions--post-command-update' via 'post-command-hook'.
(minibuffer-completion-help): Check 'completion-eager-update'
and install 'completions--after-change'.
(completion-help-at-point): Call 'completion--eager-update-p'
if ONLY-IF-EAGER is non-nil.
* etc/NEWS: Announce completion-eager-update.  Reword the
announcement of 'completion-eager-display' for consistency.
2025-08-16 14:23:26 +03:00
Michael Albinus
964741d40e * lisp/net/tramp-sh.el (tramp-get-remote-touch): Simplify. 2025-08-16 12:59:06 +02:00
Toru TSUNEYOSHI
6a018a2d7e Improve use of "touch" in Tramp
* lisp/net/tramp-sh.el (tramp-get-remote-touch): Set connection
property "touch-h".
(tramp-sh-handle-set-file-times): Use it.
2025-08-16 12:56:09 +02:00
Manuel Giraud
cc37d199b0 Handle 'lexical-binding' cookie in nnrss output
* lisp/gnus/nnrss.el (nnrss-save-server-data)
(nnrss-save-group-data): Add a 'lexical-binding' cookie.
* lisp/gnus/nnrss.el (nnrss-read-server-data)
(nnrss-read-group-data): Allow missing 'lexical-binding' cookie.
(Bug#79199)
2025-08-16 13:49:19 +03:00
Michael Albinus
4a3b6daf76 Sync with Tramp 2.7.4-pre
* doc/misc/trampver.texi:
* lisp/net/trampver.el (tramp-version): Adapt Tramp versions.

* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
Use read syntax #' for `tramp-timeout-session',

* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
Set "connected" property in time.

* lisp/net/tramp-sh.el (tramp-timeout-session):
Add ;;;###tramp-autoload cookie.

* lisp/net/tramp.el (tramp-barf-if-file-missing): Do not raise an
error when not connected.  (Bug#78572)
(tramp-file-name-handler): Do not force the backtrace.
(tramp-connectable-p): Check also, whether initial handshake is finished.
(tramp-skeleton-directory-files)
(tramp-skeleton-directory-files-and-attributes)
(tramp-skeleton-set-file-modes-times-uid-gid): Rearrange sending
`file-missing' error.
(tramp-handle-access-file, tramp-handle-unlock-file):
Use `tramp-connectable-p'.
(tramp-skeleton-file-name-all-completions): Filter out "" hits.
(Bug#79173)

* test/lisp/net/tramp-tests.el (project-mode-line-format)
(project-mode-line): Declare.
(tramp-test48-session-timeout): New test.
(tramp-test49-auto-load, tramp-test49-delay-load)
(tramp-test49-recursive-load, tramp-test49-remote-load-path)
(tramp-test50-without-remote-files, tramp-test51-unload): Rename.
2025-08-16 12:26:19 +02:00
john muhl
ff05a689e3 (diff--font-lock-prettify): Fix fringe width test
* lisp/vc/diff-mode.el (diff--font-lock-prettify):
Use 'window-fringes' instead of the 'left-fringe' frame parameter
since the former returns an integer on both GUI and TTY frames.
2025-08-16 04:59:49 -04:00
Philip Kaludercic
1becd0e95d Move 'pacakge-get-version' to package-core
* lisp/package/package-core.el (package-get-version): Remove the
function.
* lisp/package/package-menu.el (package-get-version): Add the
function to this file, as it doesn't actually depend on any
package-menu state.  It is also useful to have the function
here, as it allows the compiler to only have to (auto-)load this
file when the function is expanded as compile-time.
2025-08-16 10:40:21 +02:00
Eli Zaretskii
01e351de60 Reject non-nil non-number REPEAT in 'run-with-timer'
* lisp/emacs-lisp/timer.el (run-at-time, run-with-timer): Reject
non-nil REPEAT if it is not a non-negative number.  (Bug#79227)
Doc fixes.

* test/lisp/emacs-lisp/timer-tests.el (timer-test-repeat-arg): New
test.
2025-08-16 10:53:12 +03:00
Matthew Tromp
2987022976 Delete overlays from Flymake backends that no longer exist
Fix for bug#78862: previously, when starting eglot, existing flymake
diagnostics in the buffer would persist until flymake was completely
restarted (like by running 'flymake-mode' twice).  This change adds
logic to 'flymake-start' to delete all diagnostics and their overlays
from any backend that is no longer in 'flymake-diagnostic-functions'.
* lisp/progmodes/flymake.el (flymake-start): Remove overlays from
backends that no longer exist.
2025-08-15 17:46:42 +03:00
Eli Zaretskii
764999bd8d ; * lisp/register.el (register-alist, jump-to-register): Doc fix (bug#79243). 2025-08-15 17:40:46 +03:00
Juri Linkov
0ac3a1f26c New user option 'treesit-enabled-modes' (bug#79180)
* lisp/treesit.el (treesit-enabled-modes): New user option.
* src/treesit.c (treesit-major-mode-remap-alist): New variable.

* lisp/progmodes/c-ts-mode.el:
* lisp/progmodes/csharp-mode.el:
* lisp/progmodes/java-ts-mode.el:
* lisp/progmodes/js.el:
* lisp/progmodes/json-ts-mode.el:
* lisp/progmodes/ruby-ts-mode.el:
* lisp/progmodes/sh-script.el:
* lisp/textmodes/css-mode.el:
* lisp/textmodes/mhtml-ts-mode.el:
* lisp/textmodes/toml-ts-mode.el:
Add ts-mode mapping to 'treesit-major-mode-remap-alist'
for ts-modes that already have the corresponding non-ts mode
association in 'auto-mode-alist'.

* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode-maybe):
* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode-maybe):
* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode-maybe):
* lisp/progmodes/go-ts-mode.el (go-ts-mode-maybe)
(go-mod-ts-mode-maybe, go-work-ts-mode-maybe):
* lisp/progmodes/heex-ts-mode.el (heex-ts-mode-maybe):
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode-maybe):
* lisp/progmodes/php-ts-mode.el (php-ts-mode-maybe):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode-maybe):
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode-maybe)
(tsx-ts-mode-maybe):
* lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode-maybe):
* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode-maybe):
Add a wrapper function to 'auto-mode-alist'
for ts-modes that have no corresponding non-ts mode.
Also add a mapping to 'treesit-major-mode-remap-alist'
for the case when a non-ts mode is installed from an external
source to be able to customize it with 'treesit-enabled-modes'.
2025-08-14 19:40:08 +03:00
Zhengyi Fu
f8a206937c executable-interpret: Handle remote file names
* lisp/progmodes/executable.el (executable-interpret): Use
`file-local-name' to get the local file name component from
`buffer-file-name'.  (Bug#79233)

Copyright-paperwork-exempt: yes
2025-08-14 17:08:36 +02:00
Sean Whitton
fb5e6c6bb7 vc-git-modify-change-comment: Bind c-s-f-w for command arguments too
* lisp/vc/vc-git.el (vc-git-modify-change-comment): Bind
coding-system-for-write to locale-coding-system around the call
to vc-git-command on MS-Windows.  The temporary file name could
contain non-ASCII, e.g. the user's username.
2025-08-14 14:56:07 +01:00
Sean Whitton
ea7aee894d vc-buffer-sync-fileset: Reorder some checks for speed (bug#79137)
* lisp/vc/vc.el (vc-buffer-sync-fileset): Check whether a
buffer's file is in one of our directories before checking
whether it exists on disk.  This should mean far fewer system
calls overall (bug#79137).
2025-08-14 14:50:09 +01:00
Po Lu
e9800cabff Fix generation of defvars defined by easy-mmode and company in loaddefs.el
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--make-autoload): Restore previously existing
conditions for recursing on macroexpansions when processing
easy-mmode and related macros.
2025-08-14 19:34:28 +08:00
Sean Whitton
02f5a075dc vc-hg-checkin-patch: Fix several issues
* lisp/vc/vc-hg.el (vc-hg-checkin-patch): Use
make-nearby-temp-file.  Protect the async process with
vc-wait-for-process-before-save.  Don't call vc-checkin-hook
here, instead return a (async . #<process>) list so that
vc-finish-logentry does it.
2025-08-14 11:54:33 +01:00
Eli Zaretskii
1514695b7d ; Update lisp/ldefs-boot.el. Do not merge to master. 2025-08-14 04:24:11 -04:00
Eshel Yaron
9351fad650
; * lisp/completion-preview.el: Fix race condition.
* lisp/completion-preview.el (completion-preview--update):
Bind 'inhibit-quit' to non-nil around completion preview
overlay initialization.  This binding prevents the
surrounding 'while-no-input' from interrupting the overlay
initialization, which yields an inconsistent state wherein
the overlay is visible but completion-preview-active-mode
wasn't enabled.
2025-08-13 21:48:18 +02:00
Michael Albinus
7856dd557a Limit size of Tramp debug buffer
* doc/misc/tramp.texi (Traces and Profiles): Add
tramp-debug-buffer-limit to index.  Describe it.

* lisp/net/tramp-message.el (tramp-debug-buffer-limit): New defcustom.
(tramp-debug-message): Use it.  (Bug#79182)
2025-08-13 17:33:37 +02:00
Sean Whitton
e48592ef3b * lisp/vc/vc-hg.el (vc-hg-checkin): Pass '-A' to 'hg commit'. 2025-08-12 20:27:09 +01:00
Eli Zaretskii
56bfd63bb8 ; Fix documentation of a recent commit
* lisp/tab-line.el (tab-line-tabs-window-buffers-filter-function):
Fix wording of option value :tags.
(tab-line-tabs-non-excluded): Doc fix.  (Bug#79159)
2025-08-12 21:25:56 +03:00
Juri Linkov
d487591edb * lisp/tab-bar.el: Revert caching in 'tab-bar-format-align-right'.
(tab-bar--align-right-cache): Remove variable.
(tab-bar-format-align-right): Remove uses of
'tab-bar--align-right-cache' (bug#79141).
2025-08-12 20:49:02 +03:00
Elías Gabriel Pérez
8f08cb386e tab-line: Allow to hide excluded buffers in the tab line. (Bug#79159)
* etc/NEWS: Announce changes.
* lisp/tab-line.el (tab-line-tabs-window-buffers-filter-function):
New user option.
(tab-line-tabs-non-excluded): New function.
(tab-line-tabs-window-buffers): Update.
2025-08-12 20:30:37 +03:00
Sean Whitton
c75c95ad58 vc-buffer-sync-fileset: Optimization when NOT-ESSENTIAL is non-nil
* lisp/vc/vc.el (vc-buffer-sync-fileset): When NOT-ESSENTIAL is
non-nil, use string-prefix-p instead of file-in-directory-p
(bug#79137).
2025-08-12 16:01:12 +01:00
Sean Whitton
81aa814e59 vc-do-command: In batch mode, print the output of failed commands
* lisp/vc/vc-dispatcher.el (vc-do-command): In batch mode, when
the command fails, print its output.
2025-08-12 14:34:45 +01:00
Eshel Yaron
ae5287c37b
; Fix bug#79212.
* lisp/help-fns.el (describe-mode): Fix output when we do not find
the definition source.
2025-08-12 13:31:12 +02:00
Po Lu
498b2b6d2a Fix build without tree-sitter
* lisp/textmodes/mhtml-ts-mode.el
(mhtml-ts-mode--range-settings): Don't invoke
`treesit-language-available-p' unless bound.
2025-08-12 09:34:57 +08:00
Eli Zaretskii
4293a7678b ; Fix last change in mhtml-ts-mode.el
* lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--range-settings):
Avoid asking about grammar installation when loading.  (Bug#79215)
2025-08-11 21:44:26 +03:00
JD Smith
a15a4fa94b Do not include interactive args in autoload files
(Bug#78995)

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
Do not include `interactive' ARG-DESCRIPTOR in generated autoload forms
for function-defining macros, but only modes.
2025-08-10 18:14:43 -04:00
JD Smith
7486e5c368 Implement new autoload macro expansion declare form
Currently, a hard-coded set of macros is automatically expanded
during generation of autoloads.  To allow user macros to request
such expansion, this implements a new declare form
`autoload-macro' (Bug#78995), with supported value `expand'.
For example, macros which wrap `define-minor-mode', can declare
`(autoload-macro expand)' to request that ;;;###autoload-adorned
calls to the macro are expanded during generation, such that an
autoload for the resulting function is created.

* lisp/emacs-lisp/byte-run.el (byte-run--set-autoload-macro):
Handle autoload-macro declare forms.
(macro-declarations-alist) Add handler for 'autoload-macro
declare forms.
(defmacro, defun):
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric, cl-defun)
(cl-iter-defun, cl-defmacro, cl-defstruct):
* lisp/emacs-lisp/easy-mmode.el
(define-minor-mode, define-globalized-minor-mode, iter-defun):
* lisp/emacs-lisp/inline.el (define-inline):
* lisp/emacs-lisp/pcase.el (pcase-defmacro):
Declare (autoload-macro expand) to request expansion of the
macro during autoload generation.

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
Handle the `autoload-macro=expand' property for macros.  Load
the ;;;###autoload-containing file if an unknown symbol is
encountered in the car of the following form, to give packages a
chance to define their macros and request expansion.  Factor
list of special function-defining macros out as a constant
variable: `loaddefs--defining-macros'.

* doc/lispref/functions.texi (Declare Form):
* doc/lispref/loading.texi (Autoload): Document `autoload-macro'.
2025-08-10 18:14:23 -04:00
Juri Linkov
3d7f51d872 * lisp/man.el (man): Use active region for the default value.
While reading a manual name, provide text from the selected region
as another default value for the second 'M-n' in the minibuffer.
Also replace spaces with dashes in the name.
2025-08-10 21:08:29 +03:00
Juri Linkov
e28ac4eca6 Allow code outside Isearch delete overlays in 'isearch-opened-overlays'
* lisp/isearch.el (isearch-open-necessary-overlays)
(isearch-close-unnecessary-overlays): Use 'overlay-buffer'
to check if overlays in 'isearch-opened-overlays' are still
not deleted (bug#79115).
(with-isearch-suspended): Call 'isearch-clean-overlays'
after 'isearch-done'.  Otherwise 'isearch-mode' called later
just resets 'isearch-opened-overlays' to nil, causing "overlay leak".
2025-08-10 20:50:05 +03:00
Vincenzo Pupillo
bd62f57efd 'php-ts-mode' depends on 'mhtml-ts-mode' instead of JS,CSS and HTML
The direct dependence on 'js-ts-mode', 'css-ts-mode' and
html-ts-mode has now been replaced by 'mhtml-ts-mode'.
Additional benefits are:
1. Imenu now exposes symbols for all of all languages,
2. navigation now works correctly for all languages,
3. outline works for all languages.

Additional new features are:
1. indentation of PHP in mixed buffers with HTML now works much
better and allows three different behaviors, an option allows you to
choose the behavior.
2. a new feature shows where PHP ini files are both locally and
remotely, if the buffer is associated with a remote PHP file.

* etc/NEWS: Mention the rationale for those changes, the new command,
and the new options.
* admin/tree-sitter/treesit-admin.el (treesit-admin--builtin-modes):
Added 'mhtml-ts-mode'.
(treesit-admin--builtin-features): Added 'mhtml-ts-mode'.
* lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--range-settings):
New variable that store range settings.
(mhtml-ts-mode--treesit-aggregated-outline-predicate): New variable
that stores outline predicates.
(mhtml-ts-mode): Use those two new variables.
* lisp/progmodes/php-ts-mode.el: Update doc string.  Removed old
dependecies.
(php-ts-mode--language-source-alist): Updated parsers version.
(php-ts-mode-install-parsers): Removed old dependencies, now relies
on mhtml-ts-mode-install-parsers'.  Update doc string.
(php-ts-mode-js-css-indent-offset): Update doc string.
(php-ts-mode-css-fontify-colors): Removed option, now relies on
'php-ts-mode-css-fontify-colors'.
(php-ts-mode-html-indent-offset): New user option.
(php-ts-mode-html-relative-indent): New user option.
(php-ts-mode-php-default-executable): Assume "php" instead of
"/usr/bin/php" if 'executable-find' fails.
(php-ts-mode-php-config): Fix tag.
(php-ts-mode-find-sibling-rules): New user option with the rules
for finding siblings of a file.
(php-ts-mode-phpdoc-highlight-errors): New user option, if non-nil
highlight unkown PHPDOC nodes.
(php-ts-mode--indent-style-setter): Indentation fix.
(php-ts-mode-indent-style): Indentation fix.
(php-ts-mode-flymake-php): Indentation fix.
(php-ts-mode--executable): Indentation fix.
(php-ts-mode-show-ini): New command that show the locations of PHP
ini files.
(php-ts-mode--get-indent-style): Indentation fix.
(php-ts-mode--set-indent-property): Indentation fix.
(php-ts-mode-set-style): Indentation fix.
(php-ts-mode--get-parser-ranges): Indentation fix.
(php-ts-mode--possibly-braceless-keyword-re): Removed no longer used
constant.
(php-ts-mode--open-statement-group-heuristic): Removed no longer used
function.
(php-ts-mode--else-heuristic): Indentation fix.
(php-ts-mode--first-sibling): Indentation fix.
(php-ts-mode--js-css-tag-bol): Function removed, now using
'mhtml-ts-mode--js-css-tag-bol'.
(php-ts-mode--parent-html-bol): Removed no longer used
function.
(php-ts-mode--parent-html-heuristic): Now more reliably handles the
mixed indentation of PHP and HTML. The new option
'php-ts-mode-html-relative-indent' changes the behavior of the
function. When 'php-ts-mode-html-relative-indent' is 't' the new
option 'php-ts-mode-html-indent-offset' controls the offset of PHP
code relative to HTML tags.
(php-ts-mode--array-element-heuristic): Indentation fix.
(php-ts-mode--anchor-prev-sibling): Indentation fix..
(php-ts-mode--indent-styles): The indentation rules for 'program' and
text_interpolation' are now common to all indentation styles, thanks
to the new version of 'php-ts-mode-arent-html-heuristic'.  New rules
for 'namespace_use_clause', 'use_declaration', 'use_list',
'attribute_group' and 'string_content'.
(php-ts-mode--prettify-symbols-alist): New variable to support
'prettify-symbols-alist'.
(php-ts-mode--test-visibility-modifier-operation-clause-p): Rename ...
(php-ts-mode--test-visibility-modifier-operation-p): ... to this more
correct name.
(php-ts-mode--test-property-hook-clause-p): Rename ...
(php-ts-mode--test-property-hook-p): ... to this more correct name.
(php-ts-mode--test-relative-name-p): New function to test if
'relative_name' is supported by the PHP parser.
(php-ts-mode--font-lock-settings): Use the new function for highlight
'relative_name'.  Highlight 'error_suppression_expression'.
Refactoring using the renamed functions.  Indentation fix.
(php-ts-mode--custom-html-font-lock-settings): Replace the rules with
'mhtml-ts-mode--treesit-font-lock-settings'.  Fix docs string.
(php-ts-mode--phpdoc-font-lock-settings): Added support for "array" and
"list" array_type.  New "phpdoc-error" feature to highlight unknown
nodes via new 'php-ts-mode--phpdoc-fontify-error' function.
(php-ts-mode--colorize-css-value): Removed function no longer used, now
highlighting is handled directly by 'mhtml-ts-mode'.
(php-ts-mode--phpdoc-fontify-error): New function used by
'php-ts-mode--phpdoc-font-lock-settings'.
(php-ts-mode--parent-object): Indentation fix.
(php-ts-mode--defun-name-separator): Indentation fix.
(php-ts-mode--defun-object-name): Indentation fix.
(php-ts-mode--defun-name): The function now also returns the defun name
of 'mhtml-ts-mode'.
(php-ts-mode--treesit-defun-type-regexp): New regexp for
'treesit-defun-type-regexp' support.
(php-ts-mode--indent-defun): Indentation fix.
(php-ts-mode--defun-valid-p): Fix indentation
(php-ts-mode--comment-indent-new-line): Indentation fix.
(php-ts-mode--comment-current-plist): New local variable that stores
the state of the PHP comment style.
(php-ts-mode--comment-setup): The function now handles changing, for
different languages, comment styles, using
"php-ts-mode--comment-current-plist" to store and retrieve the comment
style for the PHP language.
(php-ts-mode-comment-setup): Now store the PHP comment style in
'php-ts-mode--comment-current-plist'.
(php-ts-mode-menu): Indentation fix.
(php-ts-mode): Replace dependency from JS, CSS and HTML width
'mhtml-ts-mode'.  Navigation, Imenu and Outline now support PHP, HTML,
Javascript and CSS.  Added support for 'prettify-symbol-mode'.
Added support for 'electric-layout-rules'.
(php-ts-mode-run-php-webserver, php-ts-mode--webserver-read-args)
(php-ts-mode--webserver-read-args, inferior-php-ts-mode, run-php)
(inferior-php-ts-mode-startup, php-ts-mode-inferior--write-history)
(php-ts-mode-send-region): Indentation fixes.
* lisp/treesit.el (treesit-range-rules): Check if treesit is available
before compiling a query.
(treesit-ensure-installed): Check if treesit is available before trying
to ensure if a grammar library is installed.

(Bug#78994)
2025-08-10 18:30:03 +03:00
Sean Whitton
66eead6fd0 Fix some 'git worktree' compatibility issues
* lisp/vc/vc-git.el (vc-git-delete-working-tree): Reimplement to
avoid requiring 'git worktree remove'.
(vc-git-move-working-tree): Use 'git worktree move' if 'git
worktree repair' is not available.  Give a more informative
error message if we don't even have that.
* test/lisp/vc/vc-tests/vc-tests.el (vc-git--program-version):
Declare.
(vc-test--other-working-trees): Skip vc-move-working-tree tests
with Git old enough to lack 'git worktree move'.
2025-08-10 13:25:41 +01:00
Sean Whitton
11d521e6e4 ; Fix capitalization of VC-Dir. 2025-08-10 12:20:42 +01:00
Sean Whitton
38c5742cba New command vc-working-tree-switch-project (bug#79024)
* lisp/vc/vc.el (vc-working-tree-switch-project): New command.
* lisp/vc/vc-hooks.el (vc-prefix-map): Bind it to C-x v w s.
* doc/emacs/vc1-xtra.texi (Other Working Trees):
* etc/NEWS: Document it.
2025-08-10 12:20:42 +01:00