1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-11 14:01:43 -08:00
emacs/admin
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
..
charsets ; Whitespace fixes to silence git hooks 2025-02-26 18:11:22 +01:00
coccinelle Prefer 'list (...)' to 'listn (N, ...)' 2025-01-19 04:42:37 +01:00
codespell ; Fix typos 2025-02-22 14:48:29 +01:00
grammars Update copyright year to 2025 2025-01-02 18:39:42 +01:00
notes * admin/notes/jargon: Add TIL. 2025-07-10 17:25:11 +02:00
nt ; windows installer: set x64 registry keys (tiny change) 2025-08-04 21:55:29 -05:00
tree-sitter 'php-ts-mode' depends on 'mhtml-ts-mode' instead of JS,CSS and HTML 2025-08-10 18:30:03 +03:00
unidata Prefer incf to cl-incf in remaining files 2025-02-26 02:57:03 +01:00
admin.el Merge from savannah/emacs-30 2025-03-05 15:00:22 +08:00
alloc-colors.c Update copyright year to 2025 2025-01-02 18:39:42 +01:00
authors.el ; * admin/authors.el (authors-aliases): Update. 2025-08-07 17:39:52 +03:00
automerge Update copyright year to 2025 2025-01-02 18:39:42 +01:00
build-configs Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ChangeLog.1 ; Delete troff markers from ChangeLog files 2025-02-20 02:46:43 +01:00
check-doc-strings Merge from origin/emacs-30 2025-03-01 09:59:08 -05:00
check-man-pages Remove ctags program 2025-03-22 11:57:29 -07:00
CPP-DEFINES ; * admin/CPP-DEFINES: Fix typos. 2024-02-22 10:21:12 +08:00
cus-test.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
diff-tar-files Update copyright year to 2025 2025-01-02 18:39:42 +01:00
download-android-deps.sh ; Add a utility script for retrieving Android port dependencies 2025-02-12 11:14:37 +08:00
emacs-shell-lib Update copyright year to 2025 2025-01-02 18:39:42 +01:00
emake Update copyright year to 2025 2025-01-02 18:39:42 +01:00
find-gc.el Merge branch 'scratch/no-purespace' into 'master' 2025-02-01 04:56:52 +01:00
git-bisect-start Update copyright year to 2025 2025-01-02 18:39:42 +01:00
gitmerge.el Revert "admin/gitmerge.el (gitmerge-resolve): Use replace-region-contents" 2025-07-01 09:24:19 -04:00
last-chance.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
MAINTAINERS ; * admin/MAINTAINERS: Fix whitespace. 2025-06-19 08:02:15 +03:00
make-emacs Update copyright year to 2025 2025-01-02 18:39:42 +01:00
make-manuals Update copyright year to 2025 2025-01-02 18:39:42 +01:00
make-tarball.txt ; * admin/make-tarball.txt: Copy edits. 2025-02-23 20:47:34 +01:00
merge-gnulib Disable Gnulib’s non-Gregorian calendars 2025-07-29 15:06:13 -07:00
merge-pkg-config Update copyright year to 2025 2025-01-02 18:39:42 +01:00
quick-install-emacs Remove ctags program 2025-03-22 11:57:29 -07:00
README Update copyright year to 2025 2025-01-02 18:39:42 +01:00
release-branch.txt ; * admin/release-branch.txt: Update and fix typo. 2024-06-23 20:57:26 +03:00
release-process Update Makefile and docs for new Spanish refcards 2025-03-04 03:02:16 +01:00
run-codespell ; Simplify admin/run-codespell 2025-01-11 07:14:35 +01:00
syncdoc-type-hierarchy.el Prefer incf to cl-incf in remaining files 2025-02-26 02:57:03 +01:00
update-copyright Update copyright year to 2025 2025-01-02 18:39:42 +01:00
update_autogen Update copyright year to 2025 2025-01-02 18:39:42 +01:00
upload-manuals Update copyright year to 2025 2025-01-02 18:39:42 +01:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2025 Free Software Foundation, Inc.
See the end of the file for license conditions.


			 The admin directory

This directory contains scripts and other things useful for developing
and maintaining Emacs.  These files are not part of Emacs releases
because they are not deemed generally useful, and you have to know
what you do when using them.


* Instructions and scripts used to prepare an Emacs release.

** release-process

The release process used by GNU Emacs.

** make-tarball.txt

Instructions to create pretest or release tarballs, announcements, etc.

** admin.el

Utilities for setting version numbers and alike.


* Scripts that can be used to build and test Emacs.

** build-configs

Build Emacs in various configurations.

** make-emacs

Build Emacs in various ways.

** quick-install-emacs

Install emacs quickly ("incrementally").

** run-codespell

Run the codespell tool on the Emacs sources.  Requires codespell to be
installed first.

** alloc-colors.c

A utility program that allocates a given number of colors on X.  Can
be used to debug Emacs with dense colormaps (PseudoColor).

** check-doc-strings

Check doc strings against documentation.

** cus-test.el

Tests for custom types and load problems.

** diff-tar-files

Show files added/removed between two tar files.


* Brief description of sub-directories.

charsets		scripts for generating charset map files
			in ../etc/charsets
coccinelle		semantic patches for use with the static code
			analyzer coccinelle.  Since they apply a few
			minor changes in Emacs internals in multiple
			places, they are trivial for copyright
			purposes.
codespell		supporting files for the run-codespell script.
grammars		wisent and bovine grammars, used to produce
			files in lisp/cedet/.
notes			miscellaneous notes related to administrative
			tasks.
nt			support files for administrative tasks related
			to building MS-Windows distributions.
unidata			scripts for generating character property files
			in ../lisp/international/.


This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.

Local variables:
mode: outline
paragraph-separate: "[ 	]*$"
end: