summaryrefslogtreecommitdiff
path: root/lisp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/master' into scratch/pkgscratch/pkgGerd Möllmann2022-12-31128-1602/+2280
|\
| * ; fix misplaced bracketing of `and` inside `when`Mattias Engdegård2022-12-301-2/+2
| |
| * ; remove incorrect quoting of condition namesMattias Engdegård2022-12-307-7/+7
| |
| * Fix reference-counting of Eshell I/O handlesJim Porter2022-12-292-59/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This ensures that output targets in Eshell are only closed when Eshell is actually done with them. In particular, this means that "{ echo foo; echo bar } | rev" prints "raboof" as expected (bug#59545). * lisp/eshell/esh-io.el (eshell-create-handles): Structure the handles differently so the targets and their ref-count can be shared. (eshell-duplicate-handles): Reimplement this to share targets between the original and new handle sets. Add STEAL-P argument. (eshell-protect-handles, eshell-copy-output-handle) (eshell-interactive-output-p, eshell-output-object): Account for changes to the handle structure. (eshell-close-handle): New function... (eshell-close-handles, eshell-set-output-handle): ... use it. (eshell-get-targets): Remove. This only existed to make the previous implementation of 'eshell-duplicate-handles' work. * lisp/eshell/esh-cmd.el (eshell-with-copied-handles): New argument STEAL-P. (eshell-do-pipelines): Use STEAL-P for the last item in the pipeline. (eshell-parse-command): Don't copy handles for the last command in the list; explain why we can't use STEAL-P here. (eshell-eval-command): When queuing input, set 'eshell-command-body' and 'eshell-test-body' for the 'if' conditional (see 'eshell-do-eval'). * test/lisp/eshell/esh-io-tests.el (esh-io-test/redirect-pipe): Split into... (esh-io-test/pipeline/default, esh-io-test/pipeline/all): ... these. (esh-io-test/pipeline/subcommands): New test. * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-pipe) (esh-cmd-test/while-loop-pipe, esh-cmd-test/if-statement-pipe) esh-cmd-test/if-else-statement-pipe): New tests. (esh-cmd-test/while-loop): Use 'pop' to simplify the test a bit. * test/lisp/eshell/eshell-test-helpers.el (eshell-test--max-subprocess-time): Rename to... (eshell-test--max-wait-time): ... this. (eshell-wait-for): New function... (eshell-wait-for-subprocess): ... use it. * test/lisp/eshell/eshell-tests.el (eshell-test/queue-input): Fix this test. Previously, it didn't correctly verify that the original command completed. * test/lisp/eshell/em-tramp-tests.el (em-tramp-test/should-replace-command): New macro... (em-tramp-test/su-default, em-tramp-test/su-user) (em-tramp-test/su-login, em-tramp-test/sudo-shell) (em-tramp-test/sudo-user-shell, em-tramp-test/doas-shell) (em-tramp-test/doas-user-shell): ... use it.
| * Merge from origin/emacs-29Stefan Kangas2022-12-309-44/+108
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 644c71d6788 lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (... ab38abfdf75 lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTe... d086cd6cf87 Clarify the documentation of 'set-face-attribute' dafa6d6badd Handle non-string values in pcomplete beed746f944 Fix completion when completion-auto-select is set 7ccb88486eb ; * etc/DEBUG: Update MS-Windows specifics for GDB 13 and... 558b59d81b9 Add color fontification in css-ts-mode (bug#60405) a96a7c81151 ; * lisp/textmodes/css-mode.el (css-ts-mode): Fix imenu s... 793641a3db5 ; * lisp/progmodes/js.el: Fix byte-compile warning. 0aea1cf8190 * lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (b... 60418e6f09c * src/keyboard.c (echo_add_key): Use recently rebound C-h... 706ed852855 Avoid assertion violations in treesit.c with --enable-che... 38c35bf0f6a Clean up treesit-default-defun-skipper and add comments 9371d488be6 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/... 9d814bea460 ; whitespace.el: Use the new 'ert-with-buffer-selected' i... 784e509bded Fix c-ts-mode bracket indentation (bug#60398)
| | * lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (bug#56636)Roland Winkler2022-12-291-4/+12
| | | | | | | | | | | | | | | lisp/textmodes/bibtex.el (bibtex-beginning-of-entry): use bibtex-any-entry-maybe-empty-head (bug#56636)
| | * lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTeX fields (bug#50202)Roland Winkler2022-12-291-4/+8
| | |
| | * Clarify the documentation of 'set-face-attribute'Gregory Heytings2022-12-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/faces.el (set-face-attribute): Mention the evaluation order of attribute-value pairs in the docstring. * doc/lispref/display.texi (Attribute Functions): Likewise, and explain with an example that a different argument order might give different results. Also align the documentation in the manual with that of the docstring, whose changes were discussed in bug#57499 but not included in the manual.
| | * Handle non-string values in pcompleteGregory Heytings2022-12-291-7/+20
| | | | | | | | | | | | | | | | | | | | | * lisp/pcomplete.el (pcomplete-arg): When pcomplete-parse-arguments-function returns a non-string value, return the string the user typed in, and attach the value as a text property to that string. Fixes bug#59956 and bug#60021.
| | * Fix completion when completion-auto-select is setGregory Heytings2022-12-291-1/+4
| | | | | | | | | | | | | | | | | | * lisp/minibuffer.el (completion--do-completion): Do not display "Complete, but not unique" messages when completion-auto-select is set. Fixes bug#60359.
| | * Add color fontification in css-ts-mode (bug#60405)Yuan Fu2022-12-291-1/+5
| | | | | | | | | | | | | | | * lisp/textmodes/css-mode.el (css-ts-mode): Add color fontification and syntax-propertize-function.
| | * ; * lisp/textmodes/css-mode.el (css-ts-mode): Fix imenu setup.Yuan Fu2022-12-291-2/+2
| | |
| | * ; * lisp/progmodes/js.el: Fix byte-compile warning.Yuan Fu2022-12-291-2/+5
| | |
| | * * lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (bug#60241).Juri Linkov2022-12-291-14/+19
| | | | | | | | | | | | Handle two cases: when a pattern is a regexp or a function.
| | * Clean up treesit-default-defun-skipper and add commentsYuan Fu2022-12-291-7/+11
| | | | | | | | | | | | | | | * lisp/treesit.el (treesit-default-defun-skipper): Clean up, fix some small issue, add comment.
| | * Fix c-ts-mode bracket indentation (bug#60398)Yuan Fu2022-12-291-2/+18
| | | | | | | | | | | | | | | | | | * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use new anchor. (c-ts-mode--bracket-children-anchor): New anchor function.
| * | Avoid some obsolescent tz abbrevs in doc.Paul Eggert2022-12-291-1/+1
| | |
| * | Use RFC 822 abbrevs in sunrise-sunset stringsPaul Eggert2022-12-291-6/+4
| | | | | | | | | | | | | | | | | | * lisp/calendar/solar.el (sunrise-sunset): Use RFC 822 time zone abbreviations like "+0530" instead of idiosyncratic abbreviations like "UTC+330min".
| * | Add nndiary-headers obsolescence commentPaul Eggert2022-12-291-0/+7
| | | | | | | | | | | | | | | * lisp/gnus/nndiary.el (nndiary-headers): Add comment about alphabetic time zone names being obsolescent.
| * | Default mbox "From " time zone to -0000Paul Eggert2022-12-291-3/+2
| | | | | | | | | | | | | | | | | | * lisp/mail/rmailout.el (rmail-nuke-pinhead-header): Default the time zone to "-0000" instead of "EST", as "-0000" is the RFC-2822-and-later standard for unknown time zones.
| * | In cal-dst, be consistent re default to UTCPaul Eggert2022-12-291-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/calendar/cal-dst.el (calendar-standard-time-zone-name) (calendar-daylight-time-zone-name): When using alphabetic time zone abbreviations, default to "UTC" rather than to "EST" or "EDT", to be consistent with the behavior when using numeric time zone abbreviations. Also, in the numeric time zone use "-0000" rather than "+0000" to show that the time zone is unknown; this is the RFC 5322 standard.
| * | Fix newsticker timezone decodeLdBeth2022-12-291-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | 'newsticker--decode-rfc822-date' has the regex pattern for North American timezones but the actual timezone conversion for them was not implmented. Now cond cases are added to handle them as specified in RFC822. Copyright-paperwork-exempt: yes
| * | Allow for indentation in prog-fill-reindent-defun (bug#60322)Theodor Thornhill2022-12-291-1/+1
| | | | | | | | | | | | | | | * lisp/progmodes/prog-mode.el (prog-fill-reindent-defun): Adjust regexp.
| * | Consistent empty-body warning messages for let and let*Mattias Engdegård2022-12-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test--with-suppressed-warnings): Make warning messages for let and let* consistent with other empty-body warnings.
| * | ; Suppress empty-body warnings in cedet/semanticMattias Engdegård2022-12-292-2/+2
| | |
| * | Add empty-body warning for when, unless etcMattias Engdegård2022-12-294-23/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Warn about code like (when SOME-CONDITION) because these may indicate bugs. Warnings currently apply to `when`, `unless`, `ignore-error`, `with-suppressed-warnings` and (as before) `let` and `let*`. * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Update doc string. * lisp/emacs-lisp/bytecomp.el: (byte-compile-warning-types) (byte-compile-warnings): Add empty-body. (byte-compile-initial-macro-environment): Add empty-body warning for with-suppressed-warnings. * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Use the empty-body category for let and let*. * lisp/subr.el (when, unless, ignore-error): Add empty-body warning. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test--with-suppressed-warnings): Add test cases.
| * | Warn about `condition-case' with quoted condition namesMattias Engdegård2022-12-291-0/+5
| | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case): Add warning. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-warn-quoted-condition): Add test case.
| * | Warn about `ignore-error` with quoted condition argumentMattias Engdegård2022-12-291-2/+11
| | | | | | | | | | | | | | | | | | | | | * lisp/subr.el (ignore-error): Clarify condition argument in doc string and add warning. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-warn-quoted-condition): New test.
| * | * lisp/subr.el (with-demoted-errors): Better message and location.Mattias Engdegård2022-12-291-1/+4
| | |
| * | Merge from origin/emacs-29Stefan Kangas2022-12-292-67/+97
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | 909091d7578 ; Minor cleanup for tree-sitter font-lock rules in js-ts-... e78e69b3318 Clean up font-lock rules in js-ts-mode 0a61e4e2b71 ; * doc/lispref/parsing.texi (Using Parser): Minor improv... 398ed75c276 ; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragrap... 19b8733aa27 Fix syntax for < and > in c++-ts-mode (bug#60351) f509246ba12 Call tree-sitter parser notifier on the first parse ec6feeaa191 Fix tree-sitter parser notifier recursion
| | * ; Minor cleanup for tree-sitter font-lock rules in js-ts-modeYuan Fu2022-12-281-8/+4
| | | | | | | | | | | | * lisp/progmodes/js.el (js--treesit-font-lock-settings): Minor cleanup.
| | * Clean up font-lock rules in js-ts-modeYuan Fu2022-12-281-49/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes for each feature: - string: Take out string-interpolation bits. - string-interpolation: New. - declaration: Rename to definition. - identifier: Remove. - property: Use a pred to filter out methods. - expression: Rename to assignment. - function: New. - pattern: Merge into assignment. * lisp/progmodes/js.el (js--treesit-font-lock-settings): See above. (js--treesit-property-not-function-p) (js--treesit-lhs-identifier-query): New variable. (js--treesit-fontify-assignment-lhs): New functions. (js-ts-mode): Update feature list.
| | * ; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix.Yuan Fu2022-12-281-2/+13
| | |
| | * Fix syntax for < and > in c++-ts-mode (bug#60351)Yuan Fu2022-12-281-8/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | < and > are usually punctuation, e.g., in ->. But when used for templates, they should be considered pairs. Right now we always consider them as pairs which is incorrect. * lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Remove variable. (c-ts-mode--syntax-propertize): New function. (c++-ts-mode): Remove syntax table. Setup syntax-propertize-function.
| * | Merge from origin/emacs-29Stefan Kangas2022-12-2833-671/+510
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | db96b1282f9 * lisp/help.el: Use 'C-h C-q' to toggle 'help-quick' wind... 489865c21e4 ; Improve markup of long key sequences d42c2668cf3 ; * etc/NEWS: Fix wording of a recently edited entry. 7a0eaee1980 * lisp/isearch.el: Small fixes. b69bffeec05 * lisp/vc/diff-mode.el (diff-minor-mode-prefix): Replace ... 9263847ab76 ; * etc/NEWS: Move the paragraph with 'C-u RET' closer to... 62fb2dc37da * doc/emacs/display.texi (Text Scale): Improve section ab... 70480d3b6b7 * lisp/repeat.el (repeat-echo-function): Suggest 'add-fun... fd48201ffe7 * lisp/tab-line.el (tab-line-cache-key-default): More cac... b1646602602 * etc/package-keyring.gpg: Update with new key c0be51389eb ; Yet another declare-function to avoid treesit-related w... 8676bec51de ; * lisp/treesit.el (treesit--simple-imenu-1): Doc fix; w... 2ddc480f441 Warn of absent networks module in ERC 19d00fab9aa Avoid "already compiled" warning in erc-compat 2d8f7b66bcc ; Fix one more treesit byte-compilation warning. 2d0a9214863 ; Avoid treesit-related byte-compiler warnings 8503b370be1 (python--treesit-settings): Remove duplicate matcher b464e6c490b Make last change of w32 GUI dialogs conditional and rever... eedc9d79aed Fix tree-sitter typos 248c13dcfe1 Update tree-sitter major modes to use the new Imenu facility b39dc7ab27a Add tree-sitter helper functions for Imenu ba1ddea9dab Fix treesit--things-around (bug#60355) 7512b9025a1 ; * lisp/treesit.el (treesit-traverse-parent): Remove alias. 5326b041982 Improve treesit-node-top-level and treesit-parent-until 637f5b164f2 ; Add "src" to the heuristic sub-directory heuristic 8ab6df0c9fd ; * lisp/epa-ks.el (epa-ks-do-key-to-fetch): Fix 'when' u... 2b55a48d3e3 * src/w32menu.c (simple_dialog_show): Use MB_YESNOCANCEL ... 8b8b7915679 ; Improve documentation of TAB/SPC indentation 624e3822110 ; Improve doc strings of some new faces 41f12e1019b ; * lisp/elide-head.el (elide-head): Doc fix to silence c... e3b4cd0ac1d ; * lisp/htmlfontify.el (hfy-text-p): Fix whitespace. 1b4dc4691c1 Fix htmlfontify.el command injection vulnerability. 1fe4b98b4d5 Improve support for Scheme R6RS and R7RS libraries (bug#5... 2347f37f677 ; * test/src/treesit-tests.el: remove dead store (bytecom... a6d961ae2fd Add a new tree-sitter query predicate 'pred' 835a80dcc48 ; Fix tree-sitter defun tests a14821d6151 Improve gnutls-min-prime-bits docstring b14bbd108e4 Improve handling of tab-bar height. 669160d47b2 ; * nt/INSTALL.W64: More fixes and updates. 26b2ec7cb8c Simplify last change (bug#60311) 082fc6e3088 Fix 'json-available-p' on MS-Windows 6c86faec29e loaddefs-gen: Group results by absolute file name d90d7d15f2f ; Fix vindexes in parsing.texi eb268728376 Fix imenu for c-ts-mode (bug#60296) 8f68b6497ee Clean up python-ts-mode font-lock features 28f26b11a1e Add comment indent and filling to other tree-sitter major... c6b02826450 ; Remove unused function in c-ts-mode 6e52a9fcadc ; * doc/lispref/modes.texi (Parser-based Font Lock): Mino... 2bcd1e9a99d ; * doc/lispref/parsing.texi (Retrieving Nodes): Add notice. 7c7950fe006 Add maintainer stub for tree-sitter files cf327766226 ; * doc/lispref/parsing.texi (Using Parser): Remove delet... # Conflicts: # etc/NEWS # lisp/progmodes/c-ts-mode.el # lisp/progmodes/typescript-ts-mode.el # lisp/treesit.el
| | * * lisp/help.el: Use 'C-h C-q' to toggle 'help-quick' window (bug#60249).Juri Linkov2022-12-281-18/+14
| | | | | | | | | | | | | | | | | | | | | | | | (help-map): Bind "C-q" to 'help-quick-toggle'. Rebind "q" to 'help-quit'. (help-quick): Replace help-quit-or-quick with help-quick-toggle. (help-quick-toggle): New command. (help-quit-or-quick): Remove command. (help-for-help): Replace help-quick-or-quit with help-quick-toggle.
| | * * lisp/isearch.el: Small fixes.Juri Linkov2022-12-281-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | (isearch-wrap-pause): Mention the new feature of `no' and `no-ding' in the docstring. (isearch-lax-whitespace, isearch-forward-thing-at-point): Add the group 'isearch' since another defgroup changed the default group. (isearch-delete-char): Use 'isearch-invisible' instead of 'search-invisible' since the users might change the current value with 'M-s i'.
| | * * lisp/vc/diff-mode.el (diff-minor-mode-prefix): Replace "ESC" with "\e".Juri Linkov2022-12-281-2/+1
| | | | | | | | | | | | | | | | | | "ESC" looks like an attempt to use kbd syntax in customization. But actually now 'key-description' is used in 'diff-minor-mode-map' to convert "\e" to "ESC".
| | * * lisp/repeat.el (repeat-echo-function): Suggest 'add-function' in docstring.Juri Linkov2022-12-281-1/+2
| | | | | | | | | | | | (bug#60353)
| | * * lisp/tab-line.el (tab-line-cache-key-default): More cache keys (bug#60340).Juri Linkov2022-12-281-7/+7
| | | | | | | | | | | | Move more cache keys here from 'tab-line-format' to give users more freedom.
| | * ; Yet another declare-function to avoid treesit-related warningEli Zaretskii2022-12-281-0/+2
| | |
| | * ; * lisp/treesit.el (treesit--simple-imenu-1): Doc fix; wording.Stefan Kangas2022-12-281-1/+1
| | |
| | * Warn of absent networks module in ERCF. Jason Park2022-12-284-9/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/erc.texi: Add linkable note in Modules chapter about some modules being required. Also tweak markup in auth-source section. * etc/ERC-NEWS: Mention the special role of `networks'. * lisp/erc/erc-backend.el (erc--server-post-connect-hook): Add internal hook for core modules to perform post-network-process, pre-protocol config validation even when they haven't been loaded. (erc--register-connection): Run `erc--server-post-connect-hook'. * lisp/erc/erc-networks.el (erc-networks--bouncer-targets, erc-networks-on-MOTD-end): Fix comments and doc strings. Also change former from constant to internal variable in case adjustment needed between releases. (erc-networks--warn-on-connect): New function to warn about the `networks' module being absent from `erc-modules'. This could probably run at any time up to and including when the logical IRC connection is established, but doing so at the process/protocol boundary seems ideal. * lisp/erc/erc-sasl.el (erc--register-connection): Defer to base method instead of calling `erc-login' explicitly. * lisp/erc/erc.el (erc-generate-new-buffer-name): Don't reconcile buffer names when networks module not in play. (erc-format-target-and/or-network): Don't assume networks module loaded. * test/lisp/erc/erc-scenarios-base-unstable.el: (erc-scenarios-networks-no-module): New test. * test/lisp/erc/resources/networks/no-module/basic.eld: New test data file. (Bug#60331.)
| | * Avoid "already compiled" warning in erc-compatF. Jason Park2022-12-281-1/+1
| | | | | | | | | | | | | | | | | | | | | * lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search): Don't `byte-compile' sub-29 secrets wrapper. This was especially noisy in tests. Ditch closed-over vars via HOF instead of suppressing because compiling emits "unused lexical" warning on Emacs 27.
| | * ; Fix one more treesit byte-compilation warning.Eli Zaretskii2022-12-281-0/+1
| | |
| | * ; Avoid treesit-related byte-compiler warningsEli Zaretskii2022-12-284-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/json-ts-mode.el (treesit-node-child-by-field-name): * lisp/textmodes/toml-ts-mode.el (treesit-node-child-by-field-name): * lisp/progmodes/java-ts-mode.el (treesit-node-child-by-field-name): * lisp/progmodes/csharp-mode.el (treesit-node-child-by-field-name): Avoid byte-compilation warnings about treesit-node-type.
| | * (python--treesit-settings): Remove duplicate matcherDmitry Gutov2022-12-281-3/+1
| | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python--treesit-settings): Remove duplicate matcher (which found itself under 'function' in addition to 'definition').
| | * Fix tree-sitter typosYuan Fu2022-12-281-1/+1
| | | | | | | | | | | | | | | | | | | | | * doc/lispref/parsing.texi (Tree-sitter major modes): * lisp/progmodes/java-ts-mode.el: * test/src/treesit-tests.el (treesit-defun-navigation-nested-4): Fix typo.
| | * Update tree-sitter major modes to use the new Imenu facilityYuan Fu2022-12-279-362/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See previous commit for more explanation. * lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): Handle more types. (c-ts-mode--imenu-1) (c-ts-mode--imenu): Remove functions. (c-ts-base-mode): Setup Imenu. * lisp/progmodes/csharp-mode.el (csharp-ts-mode--imenu-1) (csharp-ts-mode--imenu): Remove functions. (csharp-ts-mode): Setup Imenu. * lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu-1) (java-ts-mode--imenu): Remove functions. (java-ts-mode): Setup Imenu. * lisp/progmodes/js.el (js--treesit-imenu-1) (js--treesit-imenu): Remove functions. (js--treesit-valid-imenu-entry): New function. (js-ts-mode): Setup Imenu. * lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): Trim the quotes. (json-ts-mode--imenu-1) (json-ts-mode--imenu): Remove functions. (json-ts-mode): Setup Imenu. * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--imenu) (rust-ts-mode--imenu-1): Remove functions. (rust-ts-mode): Setup Imenu. * lisp/progmodes/typescript-ts-mode.el: (typescript-ts-base-mode): Remove treesit-defun-prefer-top-level, it's not used anymore. Setup Imenu. Setup treesit-defun-name-function. * lisp/textmodes/css-mode.el (css--treesit-imenu-1) (css--treesit-imenu): Remove functions. (css-ts-mode): Setup Imenu. * lisp/textmodes/toml-ts-mode.el (toml-ts-mode--defun-name): Fix it and add a fallback. (toml-ts-mode--imenu-1) (toml-ts-mode--imenu): Remove functions. (toml-ts-mode): Setup Imenu.
| | * Add tree-sitter helper functions for ImenuYuan Fu2022-12-271-1/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We didn't add an integration for Imenu because we aren't sure what should it look like. Now we have a pretty good idea. All the major modes copy-paste the two Imenu functions and tweaks them in a standard way. With the addition of treesit-defun-type-regexp and treesit-defun-name-function, now is a good time to standardize Imenu integration. In the next commit we update all the major modes to use this integration. * doc/lispref/modes.texi (Imenu): Add manual. * doc/lispref/parsing.texi (Tree-sitter major modes): Update manual. * lisp/treesit.el (treesit-simple-imenu-settings): New varaible. (treesit--simple-imenu-1) (treesit-simple-imenu): New functions. (treesit-major-mode-setup): Setup Imenu.