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

12061 commits

Author SHA1 Message Date
Vincenzo Pupillo
736b7cad40 Add jsdoc support to php-ts-mode in <script> element
In the <script> element, enable jsdoc embedding in JavaScript.
* lisp/progmodes/php-ts-mode.el
(php-ts-mode--language-source-alist): Add jsdoc to parser recipe.
(php-ts-mode): Add jsdoc parser check and a new rule for
'treesit-range-settings'.  Update the commentary section.
(Bug#71771)
2024-06-29 15:06:59 +03:00
john muhl
c477443ab8 ; Fix typo in lua-ts-mode.el
* lisp/progmodes/lua-ts-mode.el: Fix typo.  (Bug#71736)
2024-06-28 01:01:38 +02:00
john muhl
6e5e4d6193 ; Add 'eglot-ensure' option to 'lua-ts-mode-hook'
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode-hook): Add an option to
enable Eglot from the lua-ts-mode-hook.  (Bug#71736)
2024-06-28 00:59:36 +02:00
Stefan Monnier
bf8c9f702b (eval-last-sexp): Fix bug#71774
* lisp/progmodes/elisp-mode.el (eval-last-sexp): Set `values` only
when `eval-expression-debug-on-error` is nil.
2024-06-27 14:43:32 -04:00
James Thomas
6ec77f580d Do not prematurely truncate python eldoc string
'eldoc-echo-area-use-multiline-p' is there for that.
* lisp/progmodes/python.el (python-eldoc-setup-code):
Make the change.  (Bug#71720)

* etc/NEWS: Announce the change in behavior.
2024-06-27 11:53:29 +03:00
Juri Linkov
d6afb017de * lisp/progmodes/xref.el (xref-revert-buffer-restore-point): New function.
(xref--xref-buffer-mode): Add xref-revert-buffer-restore-point
to revert-buffer-restore-functions (bug#71466).
2024-06-27 09:42:34 +03:00
Eshel Yaron
82125b1a66
Use 'revert-function' in *xref* buffer
* lisp/progmodes/xref.el (xref--xref-buffer-mode-map): Cease
binding 'g' to 'xref-revert-buffer'.
(xref--xref-buffer-mode): Set 'revert-buffer-function' to...
(xref--revert-buffer): ...this.  New function, renamed from...
(xref-revert-buffer): ...this.  Make it an alias of
'revert-buffer'.
* etc/NEWS: Announce it.
* doc/emacs/maintaining.texi (Xref Commands): Update docs.
2024-06-26 22:59:42 +02:00
Vincenzo Pupillo
d5c6eb1f96 Doc fix in 'php-ts-mode'
* lisp/progmodes/php-ts-mode.el
(php-ts-mode--custom-html-font-lock-settings): Doc fix.  (Bug#71759)
2024-06-27 01:47:27 +02:00
Damien Cassou
0edacf2aa7 Add jsdoc support to js-ts-mode
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Add jsdoc
font-lock settings.
(js--treesit-jsdoc-beginning-regexp): New variable to match the
beginning of a jsdoc block.
(js-ts-mode): Add jsdoc support. Save the 'javascript parser to
`treesit-primary-parser'. Configure `treesit-range-settings' to
use a jsdoc parser within a JavaScript file.
(js-ts-language-at-point): New function to return either 'jsdoc or
'javascript depending on where the point is.
2024-06-24 01:31:03 +03:00
Stefan Kangas
fb11294d41 ; Fix typos 2024-06-23 16:40:06 +02:00
Eli Zaretskii
6f2036243f ; Doc fix in 'php-ts-mode'.
* lisp/progmodes/php-ts-mode.el (php-ts-mode-css-fontify-colors):
Doc fix.
2024-06-23 08:01:28 +03:00
Vincenzo Pupillo
2f1c882a16 Colorize CSS property value like `css--fontify-region'
If the value of a property is text representing a CSS color,
it will be fontified such that its background is the color
itself. 'php-ts-mode-css-fontify-colors' can be used to
disable this behaviour.
* lisp/progmodes/php-ts-mode.el (php-ts-mode-css-fontify-colors):
New custom var.
* lisp/progmodes/php-ts-mode.el (php-ts-mode--colorize-css-value):
New function.
* lisp/progmodes/php-ts-mode.el (php-ts-mode): Use the new
function.  (Bug#71724)
2024-06-23 07:57:52 +03:00
Vincenzo Pupillo
737fa7c529 Fix 'Customize' menu entry for 'php-ts-mode'
* lisp/progmodes/php-ts-mode.el (php-ts-mode-menu):
Replace menu entry with 'php-ts-mode' group.  (Bug#71723)
2024-06-23 07:50:55 +03:00
Vincenzo Pupillo
014aab9847 Fix for grammar change of keyword "virtual" in tree-sitter-cpp
The new rule works with both the new (>= 0.22.1) and the
old (<= 0.22.0) grammar libraries.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Removed
the keyword "virtual".
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
New font lock rule. (Bug#71518)
2024-06-22 21:13:43 +03:00
Eli Zaretskii
75fdeef7b4 Allow to expand truncated long lines in *Compilation* buffers
* lisp/progmodes/compile.el (compilation-button-map): Bind keys
in 'compilation-button-map' to allow expanding the truncated
text.  (Bug#71683)
2024-06-22 13:40:11 +03:00
Troy Brown
fb1b188e1a Eglot: Fix command execution (bug#71642)
* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Add
ExecuteCommandParams interface.
(eglot--execute): Fix handling of Command and CodeAction and add
ExecuteCommandParams.

Copyright-paperwork-exempt: yes
2024-06-22 12:46:36 +03:00
Vincenzo Pupillo
155cc89de0 Support for indentation of PHP alternative syntax control structures
For some control structures, PHP provides an alternative syntax.
A new rule has been added to handle this syntax.
* lisp/progmodes/php-ts-mode.el (php-ts-mode--indent-styles):
New rule for PHP alternative syntax.  (Bug#71710)
2024-06-22 12:42:10 +03:00
Vincenzo Pupillo
a4fe4ca93c Fix font lock regex for user defined constant in PHP
The old regex also captured functions with two or more
uppercase characters.  This new regex fixes that issue.
* lisp/progmodes/php-ts-mode.el (php-ts-mode--font-lock-settings):
New regex that match only user-defined constants.  (Bug#71593)
2024-06-22 11:48:50 +03:00
Rudolf Adamkovič
e1ba4ebb49 Make Compilation mode recognize non-legacy Kotlin/Gradle errors
The Compilation mode recognizes Kotlin/Gradle errors but only in
the now legacy format.  The current format, which has been in wide
use for about a year, is not supported.  This change adds support
for the current format.
* etc/compilation.txt: (symbols): Add examples of non-legacy
Kotlin/Gradle warnings and errors.
* lisp/progmodes/compile.el: (compilation-error-regexp-alist-alist):
Rename 'gradle-kotlin' to 'gradle-kotlin-legacy' and add
'grade-kotlin' that matches the errors and warnings outputted by
the current (non-legacy) Kotlin/Gradle.  (Bug#70797)
* test/lisp/progmodes/compile-tests.el
(compile-tests--test-regexps-data): Rename 'gradle-kotlin' to
'gradle-kotlin-legacy' and add two test cases for the newly added,
non-legacy Kotlin/Gradle warnings and errors.
2024-06-22 11:30:51 +03:00
Stefan Kangas
f18a915690 ; Translate comment to English
* lisp/progmodes/php-ts-mode.el
(php-ts-mode--parent-html-heuristic): Translate comment to English.
2024-06-16 22:38:26 +02:00
Stefan Kangas
c0eefebabf ; Fix typos 2024-06-16 22:38:26 +02:00
Vincenzo Pupillo
13c4fc3dc7 Fix 'wrong-type-argument' in 'php-ts-mode--webserver-read-args'
Prevents php-ts-mode--webserver-read-args from throwing an
error if the current buffer is not associated with a file.
* lisp/progmodes/php-ts-mode.el (php-ts-mode--webserver-read-args):
Use 'default-directory if' the current buffer is not associated
with a file.  (Bug#71574)
(php-ts-mode-run-php-webserver): Fix doc string.
2024-06-15 21:52:45 +03:00
Eli Zaretskii
9b2e1b5e16 Avoid byte-compilation warnings in php-ts-mode
* lisp/progmodes/php-ts-mode.el (treesit-search-forward)
(treesit-node-prev-sibling, treesit-node-first-child-for-pos):
Declare.
2024-06-15 20:03:39 +03:00
Eli Zaretskii
9e8c0ec991 Fix problem with recently-added defcustom's
* lisp/progmodes/php-ts-mode.el (php-ts-mode-php-config)
(php-ts-mode-ws-port, php-ts-mode-ws-document-root)
(php-ts-mode-ws-workers): Fix :type and :safe attributes.
(Bug#71566)
2024-06-15 16:20:01 +03:00
kobarity
af6e7ed4c1 Allow escape sequences in Python prompts
* lisp/progmodes/python.el (python-shell-prompt-detect): Use
Python's json package if available, and remove escape sequences
in prompts.
* test/lisp/progmodes/python-tests.el
(python-tests-interpreter-2-6-higher-p): New predicate
function.
(python-shell-prompt-detect-7): New test.  (Bug#71440)
2024-06-15 13:46:29 +03:00
Arsen Arsenović
1079d333ab typescript/tsx-ts-mode: Indentation for type parameters
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add rule for type_parameters.
2024-06-15 02:18:56 +03:00
Dmitry Gutov
08e38818f6 * lisp/progmodes/project.el: Bump the version 2024-06-14 18:27:48 +03:00
Pär Bohrarper
2dae603c41 Fix file listing in submodules with project-files-relative-names=t
* lisp/progmodes/project.el (project--vc-list-files):
Prepend module names to files when project-files-relative-names is
non-nil (bug#71538).
2024-06-14 04:05:46 +03:00
Harald Jörg
39e3c30b51 ;cperl-mode.el: Avoid false positives when parsing new Perl syntax
* lisp/progmodes/cperl-mode.el (cperl--package-for-imenu-rx)
(cperl--class-for-imenu-rx): avoid false positives when collecting
imenu entries
* lisp/progmodes/cperl-mode.el (cperl-init-faces): avoid false
positives when detecting package names

* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-imenu-index): Add test verifying that $class_false is
not shown as a class _false

* test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add a line
containing a false positive "$class_false"
2024-06-13 14:37:13 +02:00
Mattias Engdegård
59367f6a3a php-ts-mode: minor fixes
* lisp/progmodes/php-ts-mode.el (php-ts-mode-flymake-php):
Don't use `any` to mean `not-newline`; it's misleading.
(php-ts-mode--predefined-constant): Remove duplicate "E_USER_NOTICE".
2024-06-13 10:49:28 +02:00
Vincenzo Pupillo
e37754fc59 Add php-ts-mode
* etc/NEWS: Mention the new mode.
* lisp/progmodes/php-ts-mode.el: New file.  (Bug#71380)
2024-06-12 21:22:29 +03:00
Andrea Corallo
e6b771570e ; Silence a byte-compiler warning in typescript-ts-mode.el
* lisp/progmodes/typescript-ts-mode.el (treesit-node-child): Declare.
2024-06-10 18:03:32 +02:00
Mattias Engdegård
087b842eed cperl-mode: fix doc string escaping
* lisp/progmodes/cperl-mode.el (cperl--extra-paired-delimiters):
Fix broken escaping.
2024-06-10 14:08:02 +02:00
Eli Zaretskii
bb7b406adb ; Avoid byte-compilation warning in cperl-mode.el
* lisp/progmodes/cperl-mode.el (cperl--extra-paired-delimiters):
Avoid byte-compiler warning about curved quotes.
2024-06-10 14:21:48 +03:00
Harald Jörg
060c48435f cperl-mode.el: Update for the current Perl version 5.040
* etc/NEWS: Announce new features of cperl-mode.

* lisp/progmodes/cperl-mode.el (cperl-menu): Add toggle for extra
paired delimiters.
(defconst): new rx expressions `cperl--sub-name-generated-rx' and
`cperl--field-declaration-rx'
(cperl--imenu-entries-rx): Use the new expressions
(cperl--extra-paired-delimiters): New variable holding the paired
delimiters for Perl 5.36 and newer
(cperl-imenu-sub-keywords): Add autogenerated methods to imenu
(cperl-init-faces): Add the __CLASS__ token, builtin constants,
and attributes for field declarations.
(cperl-short-docs): Add __CLASS__ to one-line docs.
(cperl-extra-paired-delimiters-mode): new minor mode to handle
non-ASCII paired delimiters.

* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-fontify-builtin-constants): new test.
(cperl-test-fontify-class): New test clauses for attributes.
(cperl-test-field-declaration-rx): new test.
(cperl-test-autogenerated-reader-rx): new unit test for the rx
expression.
(cperl-test-extra-delimiters): new test.
(cperl-test-imenu-index): new clauses for imenu capture of
autogenerated methods.

* test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add
examples for Perl 5.40 syntax.

* test/lisp/progmodes/cperl-mode-resources/extra-delimiters.pl:
New resource for non-ASCII paired delimiters.
2024-06-10 12:22:13 +02:00
kobarity
25ab3e7be8 Fix hiding a Python block ending with a comment
* lisp/progmodes/python.el (python-hideshow-forward-sexp-function): Move
point to the end of the line.
* test/lisp/progmodes/python-tests.el (python-hideshow-hide-block-2):
New test.  (Bug#71170)
2024-06-09 16:49:05 +03:00
Noah Peart
ce5d004b5b Add typescript-ts-mode indentation for multi-assignment decls
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add indentation rules for
lexical and variable declarations with multiple assignments.
* test/lisp/progmodes/typescript-ts-mode-resources/indent.erts:
Add indent test for variable declarations (bug#68054).
2024-06-09 05:47:50 +03:00
Dmitry Gutov
a486782f5e project-list-buffers-ibuffer: Handle the FILES-ONLY argument
* lisp/progmodes/project.el (project-list-buffers-ibuffer):
Handle the FILES-ONLY argument (bug71290).
(project-list-buffers-buffer-menu): Expand docstring.
2024-06-09 05:37:42 +03:00
mikpom
c0480e2211 Support Ibuffer in project-list-buffers
* lisp/progmodes/project.el (project-buffers-viewer): New option.
(project-list-buffers): Dispatch using it.
(project-list-buffers-buffer-menu, project-list-buffers-ibuffer):
New functions (bug#71290).
2024-06-09 05:37:42 +03:00
kobarity
c03cafba39 Fix Python mode error caused by incorrect indentation
* lisp/progmodes/python.el (python-indent--calculate-indentation):
Guard against negative indentation.  (Bug #65870)

* test/lisp/progmodes/python-tests.el
(python-indent-badly-indented-block-end): New test.
2024-06-08 15:27:47 +03:00
João Távora
6906ed28f1 Eglot: better fix for bug#70724
If the project's root is or destroyed , this may happen for a
variety of reasons, including reasons affecting non-reconnection
scenarios, so better to check in eglot--connect.

An Eglot "reconnection" has always created as accurate a copy of
the previous server object as possible, down to the 'eq'ness or
the saved initargs, language ids, etc.  So re-querying for
projects is not the thing to do here.

A new different server can be created with `M-x eglot` which will
ask about shutting down the existing one.

* lisp/progmodes/eglot.el (eglot-reconnect):  Revert previous change.
(eglot--connect):  Do sanity check here
2024-06-06 17:13:57 -05:00
Dmitry Gutov
b571c6571c eglot-reconnect: Re-fetch the current project
* lisp/progmodes/eglot.el (eglot-reconnect): Retrieve the current
project just in case something changed (bug#70724).
2024-06-06 23:35:20 +03:00
Juri Linkov
a2b6e18d60 Use revert-buffer-restore-functions in xref-revert-buffer (bug#49731)
* lisp/progmodes/xref.el (xref-revert-buffer):
When 'revert-buffer-restore-functions' is bound,
use it in the same way as in 'revert-buffer'.
2024-06-05 09:35:50 +03:00
Paul Eggert
3dcac22dd4 Spelling fixes 2024-06-04 22:16:28 -07:00
Troy Brown
58a26db626 Support ada-ts-mode, gpr-mode and gpr-ts-mode in Eglot
* lisp/progmodes/eglot.el (eglot-server-programs): Add
ada-ts-mode, gpr-mode and gpr-ts-mode.

Copyright-paperwork-exempt: yes
2024-06-03 17:55:16 +02:00
Mattias Engdegård
876bd6506d ; compilation-error-regexp-alist-alist order comment 2024-06-03 16:53:29 +02:00
Mattias Engdegård
bf6c3892de Revert "Add support for Rust compilation messages"
This reverts commit 2e862f81a3.
It had serveral problems; see bug#70794.
2024-06-03 16:31:02 +02:00
Spencer Baugh
b71fa27987 In rgrep, check matching files before excluding files
There are a lot of excluding globs, and checking them all is expensive.
The files glob (i.e. the glob for files we actually want) is usually
just one or two entries, so it's quite fast to check.

If find checks the files glob first and then the excluding glob, it has
to do much less checking (since the files glob will substantially narrow
down the set of files on its own), and find performance is much better.

In my benchmarking, this takes (rgrep "foo" "*.el" "~/src/emacs/trunk/")
from ~410ms to ~130ms.

Further optimizations are possible now that the ignores and matched
files are in the same <F> argument which can be rearranged more easily
without compatibility issues; I'll do those optimizations in later
commits.

* lisp/progmodes/grep.el (rgrep-find-ignores-in-<f>): Add.
* lisp/progmodes/grep.el (rgrep-default-command): Check
rgrep-find-ignores-in-<f> and move the excluded files glob to part of
the "files" argument.  (Bug#71179)
2024-06-02 12:43:09 +02:00
Vincenzo Pupillo
1ea398e8f1
Make comment-indent-new-line conform better to CC Mode (bug#71225)
* lisp/progmodes/c-ts-common.el: (c-ts-common-comment-indent-new-line):
Single line comment and block comment now behave more like the
c-indent-new-comment-line.
2024-06-02 10:08:05 +02:00
Gerd Möllmann
9a2088bdd9 Fix LLDB frame-format for optional column number info
* lisp/progmodes/gud.el (gud--lldb-python-init-string): In the !gud
part, make column number info optional by putting it in a scope.
2024-06-01 21:05:50 +02:00