aboutsummaryrefslogtreecommitdiffstats
path: root/test/lisp/progmodes (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ; * test/lisp/progmodes/eglot-tests.el (eglot--wait-for): escape $Mattias Engdegård3 days1-1/+1
|
* Fix recent test suite regression (bug#80177)Stefan Monnier6 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-generic.el (cl--generic-make-function): Preserve advertised-calling-convention info. * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-quote-optimization): Require `byte-opt` to fix the test when the compiler is not loaded yet. * lisp/progmodes/elisp-mode.el: Fix some >80column problems. (elisp--xref-format-extra) (elisp--xref-format): Make them constant, now that we don't have the purespace. Also, use %S since some of the elements don't necessarily have names and even if they do, we'd want to escape any funny characters in them to avoid ambiguities. (elisp--xref-find-definitions): Fix uses of `elisp--xref-format-extra` accordingly. Improve heuristic to distinguish proper `cl-defgeneric` from implicit ones. (elisp-eldoc-docstring-length-limit) (elisp-eldoc-funcall-with-docstring-length): Remove redundant `:group`. * lisp/cedet/mode-local.el (xref-mode-local-overload): Pass the override symbol rather than its name through `elisp--xref-format-extra`. * test/lisp/progmodes/elisp-mode-tests.el (find-defs-constructor): Adjust test to new text.
* Eglot: solve misc Elisp compatibility problems on Emacs 26.3João Távora7 days1-2/+2
| | | | | | | | | * lisp/progmodes/eglot.el (eglot--semtok-request) (eglot--semtok-after-send-changes): Unbreak for 26.3. * test/lisp/progmodes/eglot-tests.el (eglot--tests-connect): Use split-string. (eglot-test-rust-completion-exit-function): Use skip-unless.
* Eglot: don't use text-property-search-forward unavailable on 26.3João Távora7 days1-1/+8
| | | | | | | * lisp/progmodes/eglot.el (eglot--format-markup) (eglot--semtok-font-lock-2): Rewrite. * test/lisp/progmodes/eglot-tests.el (eglot--semtok-wait): Rewrite.
* Eglot: improve diagnostics testsJoão Távora7 days1-2/+56
| | | | | | | * test/lisp/progmodes/eglot-tests.el (eglot-test-basic-diagnostics): Robustify. (eglot-test-basic-pull-diagnostics) (eglot-test-basic-stream-diagnostics): New tests.
* Eglot: improve automated test machineryJoão Távora7 days1-35/+46
| | | | | | | | | | * test/lisp/progmodes/eglot-tests.el (eglot--wait-for): Fix thinkos and improve. (eglot--tests-connect): Take TIMEOUT and SERVER kwargs. (eglot-test-eclipse-connect) (eglot-test-slow-sync-connection-wait) (eglot-test-slow-sync-connection-intime): Update eglot--tests-connect call.
* ; Eglot: unbreak tests after semtok face renameJoão Távora2026-01-021-4/+4
| | | | | * test/lisp/progmodes/eglot-tests.el (eglot-test-semtok-basic) (eglot-test-semtok-refontify): Fix tests.
* ; Add 2026 to copyright years.Sean Whitton2026-01-0146-46/+46
|
* Allow project-vc-ignores to be applied in more casesDmitry Gutov2026-01-011-2/+22
| | | | | | | | | | | | | | | | | | | | Discussed in https://lists.gnu.org/archive/html/emacs-devel/2025-12/msg00903.html. * lisp/progmodes/project.el (project-files) <vc>: Look up the value of 'project-vc-ignores' inside DIR rather than project root. This allows this variable to be applied in external dirs as well. (project-ignores) <vc>: Do likewise. (project--value-in-dir): Ensure that DIR has a trailing slash. The caller might pass the value without slash if produced differently. * test/lisp/progmodes/project-tests.el (project-vc-ignores-in-external-directory): New test. (project-vc-supports-files-in-subdirectory): Update the test, considering the subtle change in behavior: the directory DIR directly includes a .dir-locals.el which sets project-vc-ignores, which wasn't previously applied because it wasn't set in the root.
* December 2025 spelling fixesPaul Eggert2025-12-262-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the fixes are to continue to use American rather than British spelling. * doc/misc/modus-themes.org (my-modus-themes-engraved-faces): Fix misspelled ‘:foreground’s. * etc/themes/modus-themes.el (modus-themes-faces): Fix misspelled ‘modus-themes-bold’. * lisp/emacs-lisp/rx.el (rx--normalize-char-pattern): Rename from rx--normalise-char-pattern. (rx--optimize-or-args): Rename from rx--optimise-or-args. * lisp/frame.el (frame--special-parameters): Fix misspelled "right-divider-width". * lisp/net/tramp.el (tramp-fingerprint-prompt-regexp): Use American spelling “centered”, to match current libfprintf. * lisp/org/org-fold-core.el (org-fold-core--optimize-for-huge-buffers): Rename from org-fold-core--optimise-for-huge-buffers. (org-fold-core-update-optimization): Rename from org-fold-core-update-optimisation, leaving an alias behind. (org-fold-core-remove-optimization): Rename from org-fold-core-remove-optimisation, leaving an alias behind. * lisp/org/org.el (org-advertized-archive-subtree): This alias is now obsolete. * lisp/play/zone.el (zone-ignored-buffers): Fix misspelling of ‘zone--buffer-encrypted-p’. * lisp/progmodes/csharp-mode.el (csharp-ts-mode-faces): Fix misspelling of ‘csharp’ group. * lisp/vc/vc.el (vc-clonable-backends-custom-type): Rename from vc-cloneable-backends-custom-type, leaving an alias behind. * test/lisp/emacs-lisp/bytecomp-tests.el: (bytecomp-tests--warn-arity-non-compiled-callee): Rename from bytecomp-tests--warn-arity-noncompiled-callee. (bytecomp-test-defface-spec): Reword a deliberate misspelling of “default” that is so common I don’t want it to pollute the spelling dictionary. * test/lisp/emacs-lisp/package-vc-tests.el: (package-vc-tests-preserve-artifacts): Rename from package-vc-tests-preserve-artifacts. * test/lisp/eshell/em-prompt-tests.el: (em-prompt-test/forward-backward-paragraph-1): Reword a deliberate misspelling of “goodbye” that is so common I don’t want it to pollute the spelling dictionary.
* ; Fix a typo in a project.el test (bug#79809)Eli Zaretskii2025-12-211-1/+1
| | | | | * test/lisp/progmodes/project-tests.el (project-vc-supports-project-in-different-dir): Fix typo in version.
* project-vc-supports-project-in-different-dir: Tune the expectation for 'find'Dmitry Gutov2025-12-211-1/+5
| | | | | | | * 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).
* hideshow: Support nested comment block in 'hs-hide-level-recursive'Elías Gabriel Pérez2025-12-201-0/+49
| | | | | | | | | | | | 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.
* Relax the condition on the values of DIRS in project-filesDmitry Gutov2025-12-141-0/+14
| | | | | | * lisp/progmodes/project.el (project-files): Use 'file-in-directory-p' to dispatch to 'project--vc-list-files' when listing subdirectory files too (bug#79809).
* ; * lisp/progmodes/hideshow.el (hs-cycle): Fix regression. (Bug#79983)Elías Gabriel Pérez2025-12-121-0/+84
| | | | | | | * test/lisp/progmodes/hideshow-tests.el (hideshow-cycle-with-delimiters) (hideshow-cycle-without-delimiters) (hideshow-check-unbalanced-parens): Add new tests.
* hideshow: Deep cleaning. (Bug#79934)Elías Gabriel Pérez2025-12-082-38/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is just a refactoring change, simplifying most of the code and commentaries and removing/deprecating redundant code. * etc/NEWS: Announce changes. * lisp/progmodes/hideshow.el (hs-hide-hook, hs-show-hook): Use 'defcustom' instead of 'defvar'. (hs-block-end-regexp, hs-forward-sexp-function) (hs-adjust-block-beginning-function) (hs-adjust-block-end-function, hs-find-block-beginning-function) (hs-find-next-block-function) (hs-looking-at-block-start-predicate) (hs-inside-comment-predicate): Update docstring. (hs-discard-overlays): Simplify. (hs-life-goes-on): Update docstring. (hs-hideable-region-p): Revert previous changes. (hs-overlay-at): Simplify. (hs-make-overlay): Fix performance. (hs-block-positions): Rework. (hs--add-indicators): Fix performance. (hs-isearch-show-temporary): Simplify. (hs-looking-at-block-start-p): Rename ... (hs-looking-at-block-start-p--default): ... to this. (hs-forward-sexp, hs-hide-comment-region): Mark as obsolete. (hs-hide-block-at-point): Rework. (hs-get-first-block): Rename ... (hs-get-first-block-on-line): ... to this. (hs-inside-comment-p--default): Rework. (hs-find-block-beginning): Rename ... (hs-find-block-beg-fn--default): ... to this. (hs-find-next-block): Rename ... (hs-find-next-block-fn--default): ... to this. (hs-hide-level-recursive): Rework. (hs-find-block-beginning-match): Remove function. (hs-already-hidden-p): Simplify. (hs-c-like-adjust-block-beginning): Mark as obsolete. (hs-hide-all, hs-show-all, hs-hide-block, hs-show-block) (hs-hide-level, hs-hide-initial-comment-block, hs-cycle): Simplify. * test/lisp/progmodes/hideshow-tests.el (hideshow-hide-level-1) (hideshow-hide-level-2): * test/lisp/progmodes/python-tests.el (python-hideshow-hide-levels-3, python-hideshow-hide-levels-4): * test/lisp/progmodes/hideshow-tests.el (hideshow-hide-level-1) (hideshow-hide-level-2): * test/lisp/progmodes/python-tests.el (python-hideshow-hide-levels-3, python-hideshow-hide-levels-4): Update tests.
* Fix indentation of keyword argument arrays/hashes in ruby-modeAaron Jensen2025-11-261-0/+18
| | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Check for ':' and '=>' as previous tokens, and handle symbols ending with ':' to properly indent keyword argument arrays and hashes when ruby-bracketed-args-indent is nil. * lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol): Handle arrays/hashes that are children of 'pair' nodes (keyword arguments) to ensure consistent indentation. * test/lisp/progmodes/ruby-mode-resources/ruby-bracketed-args-indent.rb: Add test cases for keyword argument arrays and hashes with both symbol-colon and hash-rocket syntax. When ruby-bracketed-args-indent is nil, arrays and hashes used as keyword argument values now indent by ruby-indent-level from the line start, matching the documented behavior and fixing inconsistent indentation (bug#74517). (https://lists.gnu.org/archive/html/emacs-devel/2025-11/msg00939.html)
* hideshow: Fix regressions. (Bug#79857)Elías Gabriel Pérez2025-11-191-0/+8
| | | | | | | | * lisp/progmodes/hideshow.el (hs-block-positions): Exit the function if 'hs-forward-sexp' fails. (hs-hide-level-recursive): Fix infloop. * test/lisp/progmodes/hideshow-tests.el (hideshow-hide-level-1): (hideshow-hide-level-2): Update tests.
* Eglot: add two semtok testsJoão Távora2025-11-131-0/+52
| | | | | | | | | The tests are pretty basic, I don't expect them to catch anything else than giant bugs. * test/lisp/progmodes/eglot-tests.el (eglot-test-semtok-basic) (eglot-test-semtok-refontify): New tests. (eglot--semtok-faces, eglot--semtok-wait): New helpers.
* ; Eglot: unbreak "lsp-abiding-column" test for newer clangdJoão Távora2025-11-101-7/+12
| | | | | | | | Newer/newest clangd support more encodings and actually negotiate with us, so test shouldn't assume UTF-16.. * test/lisp/progmodes/eglot-tests.el (eglot-tests--lsp-abiding-column-1): Tweak.
* ; elisp-scope.el: Improve face specification handling.Eshel Yaron2025-10-291-0/+11
| | | | | | | | | | | | | | | | | | Replace the use of 'elisp-scope-face(-1)' for analyzing face specifications with 'elisp-scope-1' calls with an appropriate OUTSPEC argument. This allows us to analyze face specifications even when they are not passed directly to relevant functions, but rather appear in a tail position of a form that evaluates to a face specification. * lisp/emacs-lisp/elisp-scope.el (elisp-scope--match-spec-to-arg): Add new 'face' spec. Use it instead of... (elisp-scope-face, elisp-scope-face-1): ...these functions. Remove them, no longer used. * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: Add test.
* ; elisp-scope.el: Simplify 'custom-declare-face' analyzer.Eshel Yaron2025-10-291-0/+10
|
* ; elisp-scope.el: Fix error during widget args analysisEshel Yaron2025-10-211-0/+7
| | | | | | | | * lisp/emacs-lisp/elisp-scope.el (elisp-scope--match-spec-to-arg): Simplify and fix handling of empty list. * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: Add test.
* ; Fix semantic highlighting in presence of shorthandsEshel Yaron2025-10-212-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So far, 'scope-elisp-analyze-form' would disable 'read-symbol-shorthands' while reading a source form in order to obtain the "original" length of symbols and pass that length to the callback called for each analyzed symbol. However, 'scope-elisp-analyze-form' could report an incorrect length when a symbol was written with redundant escaping (e.g. 'f\oo'). Moreover, disabling 'read-symbol-shorthands' breaks macro-expansion during analysis, because macros may expect "expanded" symbols, without shorthands. In this commit we address these issues by leaving 'scope-elisp-analyze-form' enabled (so we get expended symbols for macro-expansion) and recovering the original length lazily in the callback, if needed, by going to the beginning of the symbol and searching forward for its end. * lisp/emacs-lisp/elisp-scope.el (elisp-scope--report): Replace LEN argument with SYM, the analyzed symbol itself. Adapt all callers. (elisp-scope-analyze-form): Cease let-binding 'read-symbol-shorthands' to nil while reading. Wrap analysis in 'save-excursion' when reading from current buffer. Update docstring. * lisp/progmodes/elisp-mode.el (elisp-local-references) (elisp-fontify-symbol): Obtain symbol length from buffer. * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: Add test that incorporates 'read-symbol-shorthands'. * test/lisp/progmodes/elisp-mode-tests.el (elisp-test-font-lock): Set up 'read-symbol-shorthands' in test file.
* ; elisp-scope.el: Improve widget-type handling.Eshel Yaron2025-10-121-0/+26
| | | | | | | | | | | | | | | | | Use argument specs to analyze complex widget types. * lisp/emacs-lisp/elisp-scope.el (elisp-scope-widget-type) (elisp-scope-widget-type-1) (elisp-scope-widget-type-keyword-arguments) (elisp-scope-widget-type-arguments) (elisp-scope-widget-type-arguments-1): Delete, no longer used. (custom-declare-variable, define-widget): Simplify analyzers. (elisp-scope--match-spec-to-arg): Add new 'list', 'and', and 'plist-and-then' parametric specs, and add 'widget-type' as a new recursive spec. * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el Add test.
* ; elisp-mode.el: Improve consistency among face names.feature/elisp-fontify-semanticallyEshel Yaron2025-10-121-34/+34
| | | | | | | | | | | | | | | | | Rename a couple of faces to solidify the convention that the face name 'elisp-foo' implies "references to foo", not "foo definitions". For definitions we use 'elisp-deffoo' if foo is only one word, or 'elisp-bar-baz-definition' otherwise. * lisp/progmodes/elisp-mode.el (elisp-function-reference): Rename to 'elisp-function'. (elisp-macro-call): Rename to 'elisp-macro'. (elisp-non-local-exit): (elisp-unknown-call): (elisp-special-form): * lisp/emacs-lisp/elisp-scope.el: * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: Update references to renamed faces.
* ; (elisp-scope-if-let): Fix case where bindings entry is a symbolEshel Yaron2025-10-081-1/+3
| | | | | | | | | * lisp/emacs-lisp/elisp-scope.el (elisp-scope-if-let): Fix handling of a plain symbol as one the bindings in an 'if-let*' form, as in (if-let* (foo) 'bar). * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: Test it.
* ; Add semantic highlighting test with 'when-let*'Eshel Yaron2025-10-082-4/+15
| | | | | | | * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: Add test form with 'when-let*'. * test/lisp/progmodes/elisp-mode-tests.el (elisp-test-font-lock): Trust temporary test buffer.
* ; Test semantic highlighting with 'cl-macrolet' and 'cl-flet'Eshel Yaron2025-10-061-0/+14
|
* ; Add another ELisp semantic highlighting testEshel Yaron2025-10-041-0/+68
| | | | | * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: Add test with code that uses 'cl-loop'.
* ; Add a couple of tests for ELisp semantic highlightingEshel Yaron2025-10-032-0/+37
| | | | | | | * test/lisp/progmodes/elisp-mode-tests.el (elisp-test-font-lock): New test. * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: New resource file.
* ruby-syntax-propertize: Add exception for /=Dmitry Gutov2025-09-161-0/+1
| | | | | | | | * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Create an exception for assign-division operator not to be recognized as regexp start (bug#79454). * test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add example.
* ; even less test log spam from loadMattias Engdegård2025-09-121-4/+4
|
* Eglot: escape literal % characters in URIsSteven Allen2025-08-301-0/+4
| | | | | | | | | | | | | | | Escape literal % characters in Eglot URIs Otherwise, a literal % in a file-name will be interpreted (by the language server) as if it were a part of a percent-encoded sequence. See Bug#78984 for context on why `url-path-allowed-chars' cannot be changed to escape literal % characters. * lisp/progmodes/eglot.el (eglot--uri-path-allowed-chars): Escape %, remove the redundant variable definition. * test/lisp/progmodes/eglot-tests.el (eglot-test-path-to-uri-escape): test it.
* Fontify all comment delimiters in 'lua-ts-mode'john muhl2025-08-301-0/+5
| | | | | | | | | * lisp/progmodes/lua-ts-mode.el (lua-ts--comment-font-lock): Apply 'font-lock-comment-delimiter-face' to the entire span of initial dashes. In particular, this improves the appearance of LuaCATS and EmmyLua style annotations which use "---". * test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua: Add tests. (Bug#79258)
* ; Add tests for 'lua-mode'john muhl2025-08-256-0/+1980
| | | | | | | | | * test/lisp/progmodes/lua-mode-resources/font-lock.lua: * test/lisp/progmodes/lua-mode-resources/hide-show.lua: * test/lisp/progmodes/lua-mode-resources/indent.erts: * test/lisp/progmodes/lua-mode-resources/movement.erts: * test/lisp/progmodes/lua-mode-resources/which-function.lua: * test/lisp/progmodes/lua-mode-tests.el: New file.
* Skip eglot-test-rust-completion-exit-function on embaMichael Albinus2025-08-221-0/+1
|
* ; cperl-mode.el: Indent labels only in code (Bug#79271)Harald Jörg2025-08-221-0/+22
| | | | | | | | | * lisp/progmodes/cperl-mode.el (cperl-indent-line): Make sure that labels are indented in code only * test/lisp/progmodes/cperl-mode-resources/cperl-indents.erts: Two new testcases for non-indentable "labels" in a regex pattern and a qw list
* ; cperl-mode.el: Fix fontification error with signaturesHarald Jörg2025-08-222-1/+8
| | | | | | | | | | | | | | | This fixes the second issue in Bug#79269. * lisp/progmodes/cperl-mode.el (cperl-init-faces): Move handling of signatures with initializers from the "anchor" to the "anchored" matcher * test/lisp/progmodes/cperl-mode-resources/proto-and-attrs.pl (sub_7): Test case for Bug#79269, wrong face report * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-fontify-attrs-and-signatures): Make sure that the test catches sub_7 for Bug#79269
* rust-ts-mode: handle invalid rust syntax without signalingSteven Allen2025-08-212-0/+14
| | | | | | | | | | | | | | Don't signal an error when encountering invalid rust syntax. Without this patch, invalid rust code would prevent a chunk of the buffer from being highlighted (bug#79272). * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-scope): (rust-ts-mode--fontify-pattern): Avoid calling `string-match-p' on nil when a node is missing a parent. * test/lisp/progmodes/rust-ts-mode-resources/font-lock-no-parent.rs: Rust file that reproduces the issue. * test/lisp/progmodes/rust-ts-mode-tests.el: Test case to reproduce the issue.
* ; cperl-mode.el: fix indentation for multiline signaturesHarald Jörg2025-08-212-0/+28
| | | | | | | | | | | | | | | | This fixes the first (and more important) part of Bug#79269. * lisp/progmodes/cperl-mode.el (cperl-get-state): Replace `beginning-of-defun' by `beginning-of-defun-raw'. Also fix a typo in the docstring. * test/lisp/progmodes/cperl-mode-tests.el (test-indentation): Skip tests unless in cperl-mode. The test file cperl-indents.erts explicitly invokes cperl-mode. Due to different indentation defaults the tests do not pass in perl-mode. * test/lisp/progmodes/cperl-mode-resources/cperl-indents.erts: Add test cperl-subroutine-signatures for Bug#79269
* Fix lua-ts-mode-tests.elElijah Gabe Pérez2025-08-141-0/+1
| | | | | * test/lisp/progmodes/lua-ts-mode-tests.el (lua-ts-test-auto-close-block-comments): Skip when needed.
* Add multi-character pairs to lua-ts-mode and texinfo-modeElías Gabriel Pérez2025-08-091-0/+33
| | | | | | | | | | | | | * etc/NEWS: Add entry for lua-ts-mode changes. * lisp/progmodes/lua-ts-mode.el (lua-ts-auto-close-block-comments): New user option. (lua-ts-mode): Add '--[[ ]]' pairs to 'electric-pair-pairs' only if 'lua-ts-auto-close-block-comments' is non-nil. * lisp/textmodes/texinfo.el (texinfo-mode): Add "`` ''" pairs to 'electric-pair-pairs'. * test/lisp/progmodes/lua-ts-mode-tests.el (lua-ts-test-auto-close-block-comments): Add new test. (Bug#79047)
* Fix Python PDB tracking for remote inferior Pythonkobarity2025-08-071-0/+26
| | | | | | | | | | | | | | * lisp/progmodes/python.el (python-shell-local-prefix): New constant. (python-shell--convert-file-name-to-send): New function to add/remove prefix. (python-shell-send-string, python-shell-send-file): Changed to use 'python-shell--convert-file-name-to-send'. (python-pdbtrack-set-tracked-buffer): Changed to add/remove prefix. * test/lisp/progmodes/python-tests.el (python-shell--convert-file-name-to-send-1): New test. (Bug#79036)
* Improve region deletion handling in python.elJakub Ječmínek2025-08-021-0/+18
| | | | | | | | | * lisp/progmodes/python.el (python-indent-dedent-line-backspace): Delete the text in the region if Transient Mark mode is enabled, the mark is active, and prefix arg is 1. (Bug#48695) * test/lisp/progmodes/python-tests.el (python-indent-dedent-line-backspace-4): Add new test.
* cperl-mode.el: Support syntax of Perl version 5.42Harald Jörg2025-07-282-7/+14
| | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/cperl-mode.el (cperl--sub-name-generated-rx): Simplify captures to account for the :writer attribute. Parsing is done later. (cperl-imenu-sub-keywords): Remove attributes which generate subs (cperl-imenu--create-perl-index): Analyze field declarations for autogenerated methods (cperl-init-faces): Add "all" and "any" to the list of functions (cperl-short-docs): Add short docs for "all" and "any" * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-autogenerated-reader-rx): Adjust for modified rx form due to ":writer" support (cperl-test-imenu-index): Add tests for autogenerated writer accessors (in grammar.pl) * test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add code samples for ":writer" * etc/NEWS: Announce that CPerl mode supports Perl 5.42.
* (peg-parse): Fix bug#78884Stefan Monnier2025-06-271-0/+7
| | | | | | | * lisp/progmodes/peg.el (peg-parse): Be more careful when testing if a symbol is the name of an existing rule. Improve docstring. test/lisp/progmodes/peg-tests.el (peg-tests--peg-parse): New test.
* Improve eglot tests on embaMichael Albinus2025-06-201-1/+3
| | | | | | | | * test/infra/gitlab-ci.yml (test-eglot): Use packages company and yasnippet. * test/lisp/progmodes/eglot-tests.el (eglot--call-with-timeout): Skip on emba in case of timeout. (Bug#78730)
* Fix typescript-ts-mode tenary indentation (bug#77901)Yuan Fu2025-06-011-0/+5
| | | | | | | | | | | | | | | | | | | | | Fixes indentation for nested ternary expressions: const a = cond1 ? 1 : cond2 ? 2 : cond3 ? 3 : cond 4: 5; instead of const a = cond1 ? 1 : cond2 ? 2 : cond3 ? 3 : cond 4: 5; * lisp/progmodes/typescript-ts-mode.el: (typescript-ts--standalone-parent-p): New function. (typescript-ts-mode): (tsx-ts-mode): Use new function.
* Merge from origin/emacs-30Eli Zaretskii2025-05-311-0/+25
|\ | | | | | | | | 1d2ae31b8bc typescript-ts-mode: Improve function body indentation (bu... 421ecbcf6b4 ; * CONTRIBUTE: Explain the line-width preferences.