1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 16:51:46 -07:00
Commit graph

12314 commits

Author SHA1 Message Date
Eli Zaretskii
6f6b641975 Merge from origin/emacs-30
4f2a21cc2a Don't restrict 'lua-ts-send-file' to 'lua-ts-mode'
2024-12-07 09:16:18 -05:00
Eli Zaretskii
284b6647d2 Merge from origin/emacs-30
3cf177442c ; * lisp/help-at-pt.el (display-local-help): Fix last cha...
02c53b9aab ; * lisp/help-at-pt.el (display-local-help): Doc fix.
130c2a13dc ; * doc/emacs/building.texi (Compilation Mode): Fix last ...
df7f02a795 Add tags to 'compilation-transform-file-match-alist' cust...
7c50e4cc8c Improve 'compilation-transform-file-match-alist' document...
a73d08bb67 Improve 'compilation-hidden-output' docstring
d50293b0f1 ; Improve documentation of 'epa-mail-verify'
2024-12-07 09:16:18 -05:00
john muhl
4f2a21cc2a Don't restrict 'lua-ts-send-file' to 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts-send-file): Remove
restriction on interactive use.  Unlike related send-* commands
it can be useful to send a file to the Lua interpreter outside of
a 'lua-ts-mode' buffer.  (Bug#74705)
2024-12-07 15:28:14 +02:00
Vincenzo Pupillo
84fc77f34f Remove unnecessary function call from 'php-ts-mode'
* lisp/progmodes/php-ts-mode.el (php-ts-mode): Remove
unnecessary function call 'treesit-font-lock-recompute-features'.
(Bug#74688)

(cherry picked from commit c87c5b95e1)
2024-12-07 15:17:35 +02:00
Vincenzo Pupillo
c87c5b95e1 Remove unnecessary function call from 'php-ts-mode'
* lisp/progmodes/php-ts-mode.el (php-ts-mode): Remove
unnecessary function call 'treesit-font-lock-recompute-features'.
(Bug#74688)
2024-12-07 15:15:41 +02:00
Daniel Mendler
e7fdf6b68c progmodes/js: Use 'completing-read' instead of 'ido-completing-read'
* lisp/progmodes/js.el (js--read-symbol): Don't use Ido.
(Bug#74615)
2024-12-07 14:51:36 +02:00
Eli Zaretskii
8c3e10b575 ; Fix last change
* lisp/progmodes/flymake-cc.el (flymake-cc-command): Fix doc
string and customization tags.  (Bug#74378)
2024-12-07 14:43:34 +02:00
Pengji Zhang
bf976ca743 Allow lambdas for 'flymake-cc-command'
* lisp/progmodes/flymake-cc.el (flymake-cc-command): Use
customization type 'function' instead of 'symbol' to allow
other callable objects in addition to named functions, and
update the doc string accordingly.
(flymake-cc): Use 'functionp' to check if 'flymake-cc-command'
is callable.  (Bug#74378)
2024-12-07 14:37:36 +02:00
Yuan Fu
5d535334f3
; Use cpp instead of c++ for c-ts-mode--simple-indent-rules
* lisp/progmodes/c-ts-mode.el (c-ts-mode--simple-indent-rules):
Use cpp to be more inline with other functions in c-ts-mode.el.
2024-12-04 22:39:28 -08:00
Robert Pluim
df7f02a795 Add tags to 'compilation-transform-file-match-alist' custom type
* lisp/progmodes/compile.el (compilation-filter-start): Add some
more meaningful tags, and switch to using 'radio' instead of
'choice'.
2024-12-04 17:00:16 +01:00
Robert Pluim
7c50e4cc8c Improve 'compilation-transform-file-match-alist' documentation
* doc/emacs/building.texi (Compilation Mode): Document
'compilation-transform-file-match-alist'.
* lisp/progmodes/compile.el
(compilation-transform-file-match-alist):
Expand docstring and add some examples.
2024-12-04 14:55:27 +01:00
Robert Pluim
a73d08bb67 Improve 'compilation-hidden-output' docstring
* lisp/progmodes/compile.el (compilation-hidden-output): Escape
the newline so the example value is more suitable for copying.
2024-12-04 14:50:41 +01:00
Juri Linkov
d706be4b34 Remove obsolete 'display-comint-buffer-action' (bug#74361)
* lisp/window.el (display-comint-buffer-action):
(display-tex-shell-buffer-action):
Remove obsolete defcustoms.

* lisp/cmuscheme.el (run-scheme, switch-to-scheme):
* lisp/shell.el (shell):
* lisp/eshell/eshell.el (eshell):
* lisp/progmodes/inf-lisp.el (inferior-lisp):
* lisp/progmodes/project.el (project-shell, project-eshell):
* lisp/progmodes/sh-script.el (sh-show-shell):
Replace 'display-comint-buffer-action' with a list of
'display-buffer--same-window-action' and '(category . comint)'.

* lisp/org/ol-eshell.el (org-eshell-open): Add '(category . comint)'.

* lisp/textmodes/tex-mode.el (tex-display-shell)
(tex-recenter-output-buffer):
Replace 'display-tex-shell-buffer-action' with a list of
'display-buffer-in-previous-window' and '(category . tex-shell)'.
2024-12-04 09:40:33 +02:00
Andrea Corallo
04d035acd7 * lisp/progmodes/c-ts-mode.el (treesit-node-match-p): Declare. 2024-12-03 09:25:51 +01:00
Dmitry Gutov
8534bb2d6b project-try-vc--search: Fix inside recursive submodule setup
* lisp/progmodes/project.el (project-try-vc--search): Loop when
looking for submodule parent repository (bug#74614).
2024-12-03 04:31:25 +02:00
Andrea Corallo
f9e7f57f57 * Declare few treesit-* function to clean-up wanrnings
* lisp/progmodes/c-ts-common.el (treesit-parser-language)
(treesit-node-match-p, treesit-node-child, treesit-node-eq)
(treesit-parser-root-node, treesit-node-parser): Declare.
2024-12-02 21:53:47 +01:00
Yuan Fu
9acf6eff01
Standardize and promote c-ts-mode's custom matcher and anchor
Specifically, standalone-parent and prev-sibling.  The c-ts-mode
custom version skips labels and proproc directives.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--standalone-parent-skip-preproc): Rename to
c-ts-mode--standalone-parent, and make it skip labels too.
(c-ts-mode--preproc-indent-rules): Rename standalone-parent and
prev-sibling.
(c-ts-mode--label-indent-rules): Use custom standalone-parent
and prev-sibling.
2024-12-01 17:53:23 -08:00
Yuan Fu
994258f556
Remove unused functions in c-ts-mode
Remove functions that became unused due to the previous change.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--standalone-grandparent):
(c-ts-mode--else-heuristic):
(c-ts-mode--first-sibling):
(c-ts-mode--parent-is-not-top-compound):
(c-ts-mode--indent-styles):
(c-ts-mode--top-level-label-matcher): Remove functions.
(c-ts-mode--simple-indent-rules): Move two label rules into
c-ts-mode--label-indent-rules.
(c-ts-mode--label-indent-rules): Add rules
2024-12-01 17:53:23 -08:00
Yuan Fu
63d69bd154
Use new baseline indent rule in c-ts-mode
Rework the indent rules in c-ts-mode using
c-ts-common-baseline-indent-rule.  Also reworked internal
functions for setting indent styles to make it simpler and (more
importantly) more readable.  Now there's a single function,
c-ts-mode--simple-indent-rules, that returns a value that can go
straight to treesit-simple-indent-rules.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-style-setter): Simplify.
(c-ts-mode--get-indent-style): Remove function.
(c-ts-mode--prompt-for-style): Use a hard-coded list of styles.
This is a tiny downgrade from the computed lists but is
acceptable.
(c-ts-mode-set-style): Use c-ts-mode--simple-indent-rules.
(c-ts-mode--standalone-grandparent): Docstring change.
(c-ts-mode--for-loop-indent-rule): New function.
(c-ts-mode--preproc-indent-rules): New variable.  Copied from
old indent rules and added some new rule.
(c-ts-mode--macro-heuristic-rules):
(c-ts-mode--simple-indent-rules):
(c-ts-mode--parenthesized-expression-indent-rule):
(c-ts-mode--label-indent-rules): New functions.
(c-ts-mode):
(c++-ts-mode): Use c-ts-mode--simple-indent-rules.
2024-12-01 17:53:22 -08:00
Yuan Fu
e37cd4fa59
Add baseline tree-sitter indent rule for C-like languages
I found a really good baseline indent rule that handles a wide
range of situations very well.  Now major modes can just start
with this rule and add exceptions on top.

This is worth mentioning in the manual, but that'll be a large
change, and doesn't have to be included in this commit.

* lisp/progmodes/c-ts-common.el:

(c-ts-common-list-indent-style): New variable.
(c-ts-common--standalone-parent):
(c-ts-common--prev-standalone-sibling):
(c-ts-common-parent-ignore-preproc):
(c-ts-common-baseline-indent-rule): New function.

* lisp/treesit.el (treesit--indent-prev-line-node): New function.
(treesit-simple-indent-presets): Add new preset.
2024-12-01 17:53:22 -08:00
Jørgen Kvalsvik
c65c5d0222
Improve c-ts-mode compound indents (bug#74507)
Properly indent the body of compound expressions, even when then
compound expression is not at the beginning of line and the
parent is not an if/for/while/etc., and matches the behavior of
c-mode.

This fixes a problem that is common with macros and in testing
frameworks. For example, you expect this to indent:

TEST_CASE(1) {
    assert (...);
}

If the compound statement is the function body itself, don't
apply this new rule and instead guide by the parent and first
sibling.

I'm sure there are subtle interactions that aren't handled
properly by checking for "function_definition" rather than
something more general, but it does fix the test case and the
check can be improved as more cases are found.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--parent-is-not-top-compound): New function.
(c-ts-mode--indent-styles): Use it.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New
compound statement test.
2024-12-01 17:53:21 -08:00
Stefan Monnier
676ff9fd7c (asm-mode): Support file-local asm-comment-char (bug#74447)
* lisp/progmodes/asm-mode.el (asm-mode): Move comment settings
to `:after-hook`.
2024-12-01 18:58:04 -05:00
Alan Mackenzie
b5f1a9e6d3 CC Mode: Optimize scanning of heavily nested brace blocks
This should have fixed bug#74357.

* lisp/progmodes/cc-engine.el (c-laomib-cache): Change the
size of this cache from 4 to 50.
(c-laomib-get-cache, c-laomib-put-cache): Use assq, memq, and
ntake or butlast, rather than looping through the cache with a
cdr loop.  No longer attempt to preserve the "largest" cache
element.
(c-looking-at-or-maybe-in-bracelist): Extend the range covered
by a c-laomib-cache element, rather than adding a second
element to the cache.
(c-no-bracelist-cache): A new cache for the use of
c-inside-bracelist-p, based on the c-parse-state cache.
(c-inside-bracelist-p): Use the new cache to call
c-looking-at-or-maybe-in-bracelist less often.

* lisp/progmodes/cc-mode.el (c-basic-common-init): Initialize
c-no-bracelist-cache.
(c-before-change): Invalidate c-no-bracelist-cache.
2024-12-01 17:30:40 +00:00
Eli Zaretskii
88f6b045f4 Merge from origin/emacs-30
afb34a3b23 ; Improve documentation of ':box' face attribute
b38eb6da1d Fix docstring of c-ts-mode-indent-style
9fdb764898 Support PHP 8.4 and more reliable indentation (bug#74525)
bda0bce9e4 Don't inadvertently reset frame scroll bar sizes (Bug#74435)
3f99cdaf26 Mention special variables in lexical binding documentation
0ef0f18f16 Allow to go back to using 'ruby-mode' after loading 'ruby...
fc17e8727d Delete obsolete section in admin/notes/repo
3e396b2c5b Improve documentation for 'while-let'
50b91ed458 Remove mention of treesit-defun-prefer-top-level (bug#74474)
03ae07291e Fix NS non-native fullscreen on initial frame load (bug#5...
8261d7224d Fix user options for listing and marking diary files

# Conflicts:
#	lisp/progmodes/c-ts-mode.el
2024-11-30 06:44:06 -05:00
Eli Zaretskii
8ef44ca64e ; Improve commentary of last change. 2024-11-30 12:34:40 +02:00
James Cherti
2ea0919550 Support hyphen in Bash function names
* lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Add
hyphen to function-name regexp.

Copyright-paperwork-exempt: yes
2024-11-30 12:31:56 +02:00
Yuan Fu
b38eb6da1d
Fix docstring of c-ts-mode-indent-style
* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-style): Make the
docstring reflect what's expected by the code.
2024-11-29 21:13:31 -08:00
Juri Linkov
a52ad71cc5 * lisp/progmodes/c-ts-mode.el: Improve logic of outlines (bug#74448).
(c-ts-mode--outline-predicate): Instead of checking only for
function_declarator nodes at the beginning of line (like in
GNU coding style) handle other coding styles that start the
function line with either storage class (e.g. static) or type.
Suggested by Filippo Argiolas <filippo.argiolas@gmail.com>
2024-11-29 09:35:13 +02:00
Vincenzo Pupillo
9fdb764898
Support PHP 8.4 and more reliable indentation (bug#74525)
Added support for PHP 8.4 property hook. More reliable CSS and
Javascript syntax indentation when there are attributes in
<script> and <style>.

* lisp/progmodes/php-ts-mode.el:
(php-ts-mode--language-source-alist): Switch to the latest php
grammar.
(php-ts-mode--js-css-tag-bol): CSS and Javascript indentation is
now more more reliable in different formatting styles.
(php-ts-mode--test-property-hook-clause-p): New function that
tests property_hook support.
(php-ts-mode--font-lock-settings): Use the new function.
(php-ts-mode--colorize-css-value): The function now behaves
exactly like the one in css-ts-mode.
(php-ts-mode--feature-list): Changed the list to match
css-ts-mode.
2024-11-28 20:47:22 -08:00
Eli Zaretskii
0ef0f18f16 Allow to go back to using 'ruby-mode' after loading 'ruby-ts-mode'
* lisp/progmodes/ruby-ts-mode.el (major-mode-remap-defaults):
Remap 'ruby-mode' to 'ruby-ts-mode'.  Add commentary.
* lisp/progmodes/ruby-mode.el (major-mode-remap-defaults): Remove
any remappings of ruby-mode'.
* lisp/progmodes/c-ts-mode.el: Fix a typo in a comment.  (Bug#74339)
2024-11-28 16:55:26 +02:00
Dmitry Gutov
0624fe6f84 Make Xref commands follow 'display-buffer' customizations
* lisp/progmodes/xref.el (xref--show-pos-in-buf): Append
'(category . xref-jump)' to display-buffer action argument, when
the target window or frame is not made explicit by the command.
(xref--switch-to-buffer): New function (bug#74361).
Do the switch through 'pop-to-buffer' and use the new category.
(xref-go-back, xref-go-forward, xref-pop-to-location): Use it.
* etc/NEWS: Describe the change.
2024-11-27 03:43:22 +02:00
Yuan Fu
50b91ed458
Remove mention of treesit-defun-prefer-top-level (bug#74474)
treesit-defun-prefer-top-level is removed before Emacs 29
released and was replaced by treesit-defun-tactic.  These
statements that set it doesn't do anything other than introduce
confusion, so we should remove them.

* lisp/progmodes/c-ts-mode.el (c-ts-base-mode):
* lisp/progmodes/js.el (js-ts-mode):
* lisp/progmodes/php-ts-mode.el (php-ts-mode):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-base-mode):
Remove statements setting treesit-defun-prefer-top-level.
2024-11-24 17:07:37 -08:00
john muhl
6f6a92624e Avoid loading 'rx' at runtime in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua):
Replace 'rx-to-string' and substitution with 'rx' and 'literal'.
(Bug#74499)

(cherry picked from commit e71d714a81)
2024-11-24 10:37:22 +02:00
john muhl
e71d714a81 Avoid loading 'rx' at runtime in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua):
Replace 'rx-to-string' and substitution with 'rx' and 'literal'.
(Bug#74499)
2024-11-24 02:21:08 +01:00
Stefan Kangas
d4cb3b30f1 ; Fix bootstrap (Bug#74490)
* lisp/progmodes/python.el (python--auto-mode-alist-regexp): Don't use
rx in autoloaded variable, since it breaks bootstrap when copied to
ldefs-boot.el.
* lisp/ldefs-boot.el: Update.
2024-11-23 16:46:30 +01:00
Christophe Troestler
902696c3ae Rust ts: fontify as type the possible suffix of number literals
* lisp/progmodes/rust-ts-mode.el
(rust-ts-mode--fontify-number-literal): Perform the improved
fontification of numbers.  (Bug#73877)
* test/lisp/progmodes/rust-ts-mode-tests.el:
* test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs:
* test/lisp/progmodes/rust-ts-mode-resources/font-lock-number.rs:
Add tests for the new optional fontification of the possible type
suffix of numbers.
2024-11-23 14:56:38 +02:00
Eli Zaretskii
db7b3f6b95 Merge from origin/emacs-30
74a972cace Skip proced refine tests on Darwin
c50ce03afc ; Fix recent additions to the manuals
c818c5bbaf ; * lisp/term/w32-win.el (tree-sitter--library-abi): Decl...
b71d3b2f52 ; Better clarify function types in C-h f (bug#73626)
59b3eae481 ; Introduce type specifiers to the elisp manual (bug#73626)
83fc3cf53a Future-proof loading tree-sitter library on MS-Windows
3eb3018682 ; Improve documentation of 'category' in display-buffer a...
4d80c4f485 ; More accurate documentation of 'set-mark-command'
70dd5705e1 Fix overriding 'c-ts-mode' by 'c-mode'
331610aef0 ; Improve vc-dir help-echo
9c484d5101 ; Avoid assertion violations in "temacs -Q"
8dc9dfdc38 lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as ...
426bce8a67 ; In PROBLEMS mention issue with .Xresources on Gnome des...
2024-11-23 04:46:10 -05:00
Stefan Kangas
7cb77385d3 ; Fix typos 2024-11-21 10:06:19 +01:00
Eli Zaretskii
70dd5705e1 Fix overriding 'c-ts-mode' by 'c-mode'
* lisp/progmodes/c-ts-mode.el: Remove all c- and c++-mode
associations from 'major-mode-remap-defaults' before installing
entries that remap to 'c-ts-mode' and 'c++-ts-mode'.  (Bug#74339)
2024-11-21 09:43:34 +02:00
Stefan Monnier
8dc9dfdc38 lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as a configuration
See bug#74367.
2024-11-18 10:10:00 -05:00
Michael Albinus
3e86231b54 Merge from origin/emacs-30
f69f54c454 Improve font-locking and indentation in 'php-ts-mode'
27aacbd172 Fix some 'lua-ts-mode' options (Bug#74235)
a0613372a7 ; Update the xwidgets-on-NS text due to fixing bug#60703
d592832504 Improve comment indenting in 'lua-ts-mode'
6bc44ccf28 Update 'xref-num-matches-found' when reverting *xref* buffer
8afcfed825 * lisp/files.el (require-with-check): Fix last fix (bug#7...
3496234c8e lisp/files.el (require-with-check): Fix bug#74091.
90c97d3fac Fix handling of permanent-local variables in 'kill-all-lo...
c96e576090 Precise password cache in Tramp
3954e8d9bb Fix picture-mode with full-width characters
7dabfe9465 Fix movement to the left in picture-mode

# Conflicts:
#	lisp/net/tramp.el
2024-11-14 16:51:20 +01:00
Vincenzo Pupillo
f69f54c454 Improve font-locking and indentation in 'php-ts-mode'
* lisp/progmodes/php-ts-mode.el (php-ts-mode--language-source-alist):
Updated to latest version of PHP grammar.
(php-ts-mode--indent-styles): 'namespace_use_declaration' is now
correctly indented.
(php-ts-mode--operators): Support of the "argument unpacking
operator".
(php-ts-mode--font-lock-settings): 'nullsafe_member_call_expression'
is now highlighted correctly.
(php-ts-mode--comment-indent-new-line): Delete trailing whitespace
before inserting newline (see bug#73900 for more information).
Bug#74239
2024-11-14 10:47:51 +02:00
john muhl
27aacbd172 Fix some 'lua-ts-mode' options (Bug#74235)
* lisp/progmodes/lua-ts-mode.el (lua-ts-luacheck-program):
(lua-ts-inferior-program): Switch to 'file' type and remove 'nil'
as a choice.
(lua-ts-inferior-lua): Ensure 'lua-ts-inferior-program' is set.
2024-11-14 10:23:49 +02:00
john muhl
d592832504 Improve comment indenting in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts--simple-indent-rules):
Align single line comments with the surrounding context.
(lua-ts--comment-first-sibling-matcher): Check that comment is
the first sibling.
(lua-ts--multi-line-comment-start): New function.
* test/lisp/progmodes/lua-ts-mode-resources/indent.erts:
Add tests.  (Bug#74298)
2024-11-14 10:14:46 +02:00
Eshel Yaron
6bc44ccf28 Update 'xref-num-matches-found' when reverting *xref* buffer
* lisp/progmodes/xref.el (xref--insert-xrefs):
Update 'xref-num-matches-found' here...
(xref--show-xref-buffer): ...instead of here (bug#74313).
2024-11-14 04:26:54 +02:00
Stefan Monnier
986621ae1f (with-peg-rules): Build proper peg-functions
* lisp/progmodes/peg.el (with-peg-rules): Use the new (FUNC EXP)
feature in `cl-labels`.
2024-11-12 23:12:07 -05:00
Ola Nilsson
0642d5f7da Add functions supported by GNU Make 4.3.
* lisp/progmodes/make-mode.el (makefile-gnumake-functions-alist):
Add missing GNU Make functions, according to The GNU Make Manual
0.75 for GNU Make, and reorder the list of functions.  (Bug#74207)
2024-11-09 13:07:26 +02:00
Stefan Kangas
11954a3a0a Update special attributes for Python 3.13
* lisp/progmodes/python.el (python-font-lock-keywords-level-2)
(python--treesit-special-attributes): Update special attributes,
making it current for Python 3.13.
2024-11-08 14:21:12 +01:00
Stefan Kangas
75c5aaae89 Move IDLWAVE to lisp/obsolete
* lisp/progmodes/idlw-complete-structtag.el:
* lisp/progmodes/idlw-help.el:
* lisp/progmodes/idlw-shell.el:
* lisp/progmodes/idlw-toolbar.el:
* lisp/progmodes/idlwave.el: Move from here...
* lisp/obsolete/idlw-complete-structtag.el
* lisp/obsolete/idlw-help.el
* lisp/obsolete/idlw-shell.el
* lisp/obsolete/idlw-toolbar.el
* lisp/obsolete/idlwave.el: ...to here.  (Bug#71157)
2024-11-03 16:29:36 +01:00
Stefan Kangas
378661dcd6 ; Whitespace fix in idlwave.el 2024-11-03 16:27:16 +01:00