Michael Albinus [Wed, 23 Nov 2022 11:00:35 +0000 (12:00 +0100)]
Restore tramp-achive's Emacs 26 compatibility
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp):
Special handling of Emacs 26. Simplify the other part.
* test/lisp/net/tramp-tests.el (tramp-test48-unload): Special case
of `tramp-register-archive-file-name-handler'.
Shynur [Wed, 23 Nov 2022 09:26:46 +0000 (10:26 +0100)]
; * doc/lispintro/emacs-lisp-intro.texi (Complete kill-region): Fix typo
Juri Linkov [Wed, 23 Nov 2022 08:50:23 +0000 (10:50 +0200)]
* lisp/outline.el: 'S-<down-mouse-1>' on buffer buttons cycles all outlines.
(outline--create-button-icons, outline--insert-button): Bind 'S-<mouse-1>' to
'outline-cycle-buffer' as it's already done for buttons on the margins.
Ignore 'S-<down-mouse-1>'. Don't hard-code 'help-echo' since it should be
customizable by the ':help-echo' keyword in 'define-icon'.
Juri Linkov [Wed, 23 Nov 2022 08:38:28 +0000 (10:38 +0200)]
* lisp/progmodes/xref.el: Support outline-minor-mode (bug#49731)
(xref--xref-buffer-mode): Set buffer-local variables outline-minor-mode-cycle,
outline-minor-mode-use-buttons, outline-search-function, outline-level
as settings for enabling outline-minor-mode in xref output buffers where
outline headings are xref groups, and their lines can be hidden by
outline commands.
Stefan Kangas [Wed, 23 Nov 2022 04:43:19 +0000 (05:43 +0100)]
; Fix typos
Yuan Fu [Wed, 23 Nov 2022 03:57:44 +0000 (19:57 -0800)]
; Remove obsolete use of inhibit-point-motion-hooks
* lisp/treesit.el (treesit-font-lock-fontify-region): Remove it.
Yuan Fu [Wed, 23 Nov 2022 02:47:47 +0000 (18:47 -0800)]
Tweak python-ts-mode fontification (bug#59470)
* lisp/progmodes/python.el (python--treesit-settings): Only fontify
the @ and the identifier of a decorator, not the argument list (if
there is any).
Randy Taylor [Sun, 20 Nov 2022 03:30:13 +0000 (22:30 -0500)]
Utilize new font-lock faces for more tree-sitter modes (Bug#59397)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
Use font-lock-number-face.
(java-ts-mode): Alphabetize features.
* lisp/progmodes/js.el (js--treesit-operators): Define operators.
(js--treesit-font-lock-settings): Use bracket, delimiter,
escape-sequence, property, number, and operator font-lock faces.
(js-ts-mode): Add them to the feature list and alphabetize.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
Use bracket, delimiter, escape-sequence, and number faces. Remove
unused features.
(json-ts-mode): Add them to the feature list and alphabetize.
* lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Use
bracket, delimiter, number, misc-punctuation, and operator font-lock
faces.
(sh-mode--treesit-operators): Remove ; and ;; from list.
(bash-ts-mode): Add them to the feature list and alphabetize.
* lisp/progmodes/ts-mode.el (ts-mode--operators): Define operators.
(ts-mode--font-lock-settings): Use escape-sequence, number, and
operator font-lock faces.
(ts-mode): Add them to the feature list and alphabetize.
Dmitry Gutov [Wed, 23 Nov 2022 02:16:23 +0000 (04:16 +0200)]
Add a way to override project name for project-vc backend
* lisp/progmodes/project.el (project-vc-name): New user option.
(project-name): Override for VC project backend (bug#48747).
Yuan Fu [Wed, 23 Nov 2022 01:29:26 +0000 (17:29 -0800)]
; * lisp/treesit.el (treesit-ready-p): Guard against empty buffers.
Yuan Fu [Tue, 22 Nov 2022 20:01:53 +0000 (12:01 -0800)]
Fix treesit-update-ranges
* lisp/treesit.el (treesit--clip-ranges): New function.
(treesit-update-ranges): Now clips the range within (point-min)
and (point-max), so the new range we use are not out-of-range.
Yuan Fu [Tue, 22 Nov 2022 20:01:19 +0000 (12:01 -0800)]
; Fix treesit--children-covering-range
* lisp/treesit.el (treesit--children-covering-range): Handle the case
when NODE doesn't have children, and when CHILD is nil.
Yuan Fu [Tue, 22 Nov 2022 19:18:52 +0000 (11:18 -0800)]
; * src/casefiddle.c (casify_region): Stylistic change.
Stephen Leake [Tue, 22 Nov 2022 19:43:22 +0000 (11:43 -0800)]
* lisp/progmodes/eglot.el (eglot--connect): Use project-name
As discussed in bug#48747.
Stephen Leake [Tue, 22 Nov 2022 18:55:59 +0000 (10:55 -0800)]
* lisp/progmodes/project.el (project-name): New
Eli Zaretskii [Tue, 22 Nov 2022 18:22:41 +0000 (20:22 +0200)]
Fix 'treesit-max-buffer-size' and its use
* lisp/treesit.el (treesit-max-buffer-size): Avoid overflow in
computing buffer-size limit. Account for 32-but systems built
"--with-wide-int". Extend doc string.
(treesit-ready-p): Compare the limit with the size of the buffer
in bytes, not in characters.
* src/treesit.c (treesit_check_buffer_size): Measure buffer size
in bytes.
Eli Zaretskii [Tue, 22 Nov 2022 16:56:08 +0000 (18:56 +0200)]
; Fix comparisons in treesit.c
* src/treesit.c (Ftreesit_parser_add_notifier)
(Ftreesit_parser_remove_notifier): Fix comparison with Lisp
objects. (Bug#59483)
Robert Pluim [Tue, 22 Nov 2022 15:44:56 +0000 (16:44 +0100)]
Add '\lll' for VERY MUCH LESS-THAN to TeX input method
* lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Add '\lll'
translation for U+22D8. (Bug#59476)
Po Lu [Tue, 22 Nov 2022 12:57:47 +0000 (20:57 +0800)]
Adjust x_display_set_last_user_time for Xlib sign-extension
* src/xterm.c (x_display_set_last_user_time): Adjust for Xlib
sign extending fields in client messages to 64 bit long, which
then break x_display_set_last_user_time after 24 days, as Time
is unsigned long for historical reasons. (bug#59480)
Ihor Radchenko [Tue, 22 Nov 2022 01:21:17 +0000 (09:21 +0800)]
Improve the doc string of 'string-collate-lessp'
* src/fns.c (Fstring_collate_lessp): Clarify that
IGNORE-CASE argument might be ignored when the operating
system does not implement string collation for the
specified locale. (Bug#59275)
Sam James [Mon, 21 Nov 2022 22:01:37 +0000 (22:01 +0000)]
Fix tree-sitter build using non-bash /bin/sh (bug#59460)
* configure.ac: Don't use '==' in comparisons.
Copyright-paperwork-exempt: yes.
Po Lu [Tue, 22 Nov 2022 11:43:14 +0000 (19:43 +0800)]
Avoid potentially expensive XFlush and fix ordering
* src/xterm.c (x_raise_frame): Don't call XFlush without a
request being made.
(x_lower_frame): Fix ordering wrt to xwidget view lowering.
Mattias Engdegård [Tue, 22 Nov 2022 10:06:41 +0000 (11:06 +0100)]
; Fix warnings in builds without tree-sitter
Yuan Fu [Tue, 22 Nov 2022 08:49:04 +0000 (00:49 -0800)]
Separate tree-sitter and non-tree-sitter variant of sh-mode
Now there are three modes, sh-base-mode, sh-mode, bash-ts-mode.
The change I made: change sh-mode to sh-base-mode, remove docstring.
Below the new sh-base-mode, create a new definition for sh-mode, paste
the dostring, add setup for font-lock-defaults. Below sh-mode, add
bash-ts-mode.
* lisp/progmodes/sh-script.el (sh-mode): Moves all setup into
sh-base-mode, except for the setup for font-lock-defaults and the
docstring.
(sh-base-mode): New mode.
(bash-ts-mode): New mode.
Yuan Fu [Tue, 22 Nov 2022 08:35:11 +0000 (00:35 -0800)]
Fix treesit_record_change in casify_region
This fixes bug#59455.
* src/casefiddle.c: Always record changes.
Theodor Thornhill [Mon, 21 Nov 2022 12:12:03 +0000 (13:12 +0100)]
Tweak faces in Java and TypeScript
* lisp/progmodes/java-ts-mode.el (java-ts-mode--operators): Remove @
as an operator.
(java-ts-mode--font-lock-settings): Use constant-face for @ to match
rest of the annotation. Add bracket, delimiter and use some of the
new faces.
(java-ts-mode--imenu): Clean up the implementation a little.
(java-ts-mode): Refer to the new features.
* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings, ts-mode):
Add in bracket and delimiter'.
Yuan Fu [Tue, 22 Nov 2022 07:06:43 +0000 (23:06 -0800)]
treesit-font-lock-recompute-features now has two modes of operation
1. Set activation of each feature (changes every feature)
2. Add/remove features (only change those explicitly configured by
ADD-LIST and REMOVE-LIST)
This is useful for enabling/disabling certain features for all
modes (without resetting others) by calling this function in
prog-mode-hook
* lisp/treesit.el (treesit-font-lock-recompute-features): See above
description.
Yuan Fu [Tue, 22 Nov 2022 06:37:36 +0000 (22:37 -0800)]
Tweak c-ts-mode fontification
New features: function and variable, which consistently fontify all
occurrences of functions and variables, respectively.
Remove expression feature, as its purpose is fulfilled by function,
variable, and property combined.
Fix declaration feature, remove unnecessary rule from label
feature.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): See
above description.
(c-ts-mode--fontify-variable): New function.
(c-ts-mode--base-mode): Add & remove features.
Yuan Fu [Tue, 22 Nov 2022 06:33:10 +0000 (22:33 -0800)]
; Fix docstrings in treesit.el
* lisp/treesit.el (treesit--explorer--nodes-to-highlight)
(treesit--explorer-draw-node): Fix docstrings.
Yuan Fu [Tue, 22 Nov 2022 06:32:51 +0000 (22:32 -0800)]
* lisp/treesit.el (treesit-max-buffer-size): Enlarge value.
Stefan Kangas [Tue, 22 Nov 2022 07:25:32 +0000 (08:25 +0100)]
Don't refer to deleted variable 'gnus-parameter-to-list-alist'
* doc/misc/gnus.texi (Group Parameters):
* lisp/gnus/message.el (message-recipients-without-full-name):
Don't refer to deleted variable 'gnus-parameter-to-list-alist'.
F. Jason Park [Tue, 22 Nov 2022 04:53:25 +0000 (20:53 -0800)]
; Fix ERC test failure following recent typo fix
* test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el: Replace
expected buffer content in test assertion.
* test/lisp/erc/resources/erc-scenarios-common.el: Replace expected
buffer content in test assertion. See also
40539c7587dc474b424cff732973fe8958eadf14 "; Fix typos".
Juanma Barranquero [Tue, 22 Nov 2022 03:40:49 +0000 (04:40 +0100)]
; Fix typos in tree-sitter files
* admin/notes/tree-sitter/starter-guide (Font-lock)
(Debugging queries, Indent, Navigation, Which-func)
(More features?):
* lisp/treesit.el (treesit--merge-ranges)
(treesit-font-lock-feature-list, treesit-font-lock-rules)
(treesit-font-lock-fontify-region, treesit--font-lock-notifier)
(treesit-simple-indent-presets, treesit--font-lock-fast-mode)
(treesit--indent-region-batch-size)
(treesit--indent-rules-optimize, treesit-ready-p): Fix typos.
Stefan Kangas [Tue, 22 Nov 2022 01:38:41 +0000 (02:38 +0100)]
Refresh menus in gnus.texi
Fixes problem reported by Po Lu <luangruo@yahoo.com>.
* doc/misc/gnus.texi (Top, Starting Up, Article Treatment)
(The Gnus Diary Library, Searching, nnmairix): Refresh menus.
Stefan Kangas [Tue, 22 Nov 2022 01:10:59 +0000 (02:10 +0100)]
Improve wording and markup in gnus-faq.texi
* doc/misc/gnus-faq.texi (FAQ 2-4): Improve wording and markup.
(FAQ 2-1, FAQ 2-4, FAQ 2-5, FAQ 3 - Getting Messages, FAQ 3-1)
(FAQ 3-2, FAQ 3-2, FAQ 3-4, FAQ 4-1, FAQ 4-2, FAQ 4-3, FAQ 4-4)
(FAQ 4-8, FAQ 4-9, FAQ 4-10, FAQ 4-12, FAQ 5-1, FAQ 5-2)
(FAQ 5-7, FAQ 6-1, FAQ 6-2, FAQ 6-2, FAQ 6-3, FAQ 6-4, FAQ 6-5)
(FAQ 7-2, FAQ 7-3, FAQ 7-3, FAQ 7-4, FAQ 8-1, FAQ 8-5, FAQ 9-1):
Improve markup and reflow some paragraphs.
Stefan Kangas [Mon, 21 Nov 2022 14:39:43 +0000 (15:39 +0100)]
; Fix typos
Yuan Fu [Mon, 21 Nov 2022 21:46:52 +0000 (13:46 -0800)]
; * lisp/progmodes/js.el (js-ts-mode): Add autoload cookie.
Yuan Fu [Mon, 21 Nov 2022 21:34:38 +0000 (13:34 -0800)]
; * test/src/treesit-tests.el (treesit-misc): Remove test.
This test is for treesit--setting-for-mode, which is removed when we
switched from using treesit-settings to using separate major modes.
Yuan Fu [Mon, 21 Nov 2022 21:33:03 +0000 (13:33 -0800)]
; Update tree-sitter starter guide
* admin/notes/tree-sitter/starter-guide: Reflect recent changes.
* admin/notes/tree-sitter/html-manual/Using-Parser.html:
* admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html:
* admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html:
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html:
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html:
* admin/notes/tree-sitter/html-manual/Multiple-Languages.html:
* admin/notes/tree-sitter/html-manual/Language-Definitions.html: Update.
Yuan Fu [Mon, 21 Nov 2022 21:17:16 +0000 (13:17 -0800)]
; Fix typo in c-ts-mode--font-lock-settings
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Fix
typo.
Yuan Fu [Mon, 21 Nov 2022 20:54:35 +0000 (12:54 -0800)]
Merge remote-tracking branch 'savannah/master' into feature/tree-sitter
Yuan Fu [Mon, 21 Nov 2022 20:07:20 +0000 (12:07 -0800)]
; Minor fix in c-ts-mode fontification
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): use
override. Include the outer call_expression.
(c-ts-mode--fontify-defun): Use the override given to it rather than
hard-code. Add missing space.
Yuan Fu [Mon, 21 Nov 2022 19:26:46 +0000 (11:26 -0800)]
Allow major modes to tweak tree-sitter fontification
treesit--font-lock-query-expand-range allows a major mode to fix
fontification problems temporarily before the parser can be fixed.
* lisp/treesit.el (treesit--font-lock-query-expand-range): New variable.
(treesit-font-lock-fontify-region): Use the new variable.
* lisp/textmodes/css-mode.el (css-ts-mode): Use the new variable.
Yuan Fu [Mon, 21 Nov 2022 18:52:55 +0000 (10:52 -0800)]
Further tweak tree-sitter fontification heuristics
So it turns out the slowness observed in bug#59415 is not due to the
size, but the strangely tall tree. Adjust the heuristic to DTRT:
don't enable the heuristic by default or when buffer is large, enable
when query is abnormally slow. We could do some clever thing that
calibrates a base reading for the query time instead of using a
hard-coded value, but it doesn't seem necessary.
* lisp/treesit.el (treesit--font-lock-fast-mode): New variable.
(treesit-font-lock-fontify-region): Don't activate heuristic by
default (reasons in comments). Measure the query time and activate
the fast mode if query time is long.
Yuan Fu [Mon, 21 Nov 2022 16:57:53 +0000 (08:57 -0800)]
; * src/treesit.c (treesit_load_language): Move call to eassume.
If handle is ever going to be NULL, it will be when error != NULL, so
we should only eassume handle != NULL after the check for error.
Eli Zaretskii [Mon, 21 Nov 2022 17:08:25 +0000 (19:08 +0200)]
; Silence byte-compiler warnings
* lisp/textmodes/css-mode.el:
* lisp/progmodes/python.el:
* lisp/progmodes/json-ts-mode.el:
* lisp/progmodes/js.el:
* lisp/progmodes/java-ts-mode.el:
* lisp/progmodes/c-ts-mode.el: Add declarations of tree-sitter
functions.
Mattias Engdegård [Mon, 21 Nov 2022 15:52:05 +0000 (16:52 +0100)]
; * test/src/treesit-tests.el (treesit-misc): Don't fail without ts
Eli Zaretskii [Mon, 21 Nov 2022 15:24:42 +0000 (17:24 +0200)]
; * lisp/treesit.el (treesit-parser-add-notifier): Add declaration.
Mattias Engdegård [Mon, 21 Nov 2022 14:41:28 +0000 (15:41 +0100)]
; Repair build without tree-sitter
Stefan Kangas [Mon, 21 Nov 2022 14:18:54 +0000 (15:18 +0100)]
; Doc fixes: remove references to missing symbols
* lisp/allout.el (allout-process-exposed): Don't refer to missing
value 'flat-indented'.
* lisp/help.el (resize-temp-buffer-window): Don't refer to missing
function 'preserve-window-size'.
* lisp/pcomplete.el (pcomplete-stub): Don't refer to missing
function 'pcomplete-filename'.
Stefan Kangas [Mon, 21 Nov 2022 14:16:08 +0000 (15:16 +0100)]
; Fix typos (misspelled symbols)
Michael Albinus [Mon, 21 Nov 2022 13:49:54 +0000 (14:49 +0100)]
Activate direct asynchronous processes for Tramp container methods
* doc/misc/tramp.texi (Remote processes): Mention also
tramp-container.el.
* lisp/emacs-lisp/ert-x.el (ert-remote-temporary-file-directory):
Add `tramp-direct-async' to "mock" method.
* lisp/net/tramp-container.el
(tramp-methods) <docker, podman, kubernetes>: Add `tramp-direct-async'.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-handle-make-process): Handle `tramp-direct-async'.
* test/lisp/net/tramp-tests.el (tramp-methods) <mock>:
Add `tramp-direct-async'.
Gregory Heytings [Mon, 21 Nov 2022 12:44:13 +0000 (12:44 +0000)]
Make sed invocation in Makefile POSIX-compliant
* Makefile.in: Add a semicolon before the closing brace, which is
required by POSIX. Fixes bug#59444.
Stefan Kangas [Mon, 21 Nov 2022 10:30:58 +0000 (11:30 +0100)]
* lisp/forms.el (forms-mode): Prefer setq-local.
Stefan Kangas [Mon, 21 Nov 2022 10:20:01 +0000 (11:20 +0100)]
Make instructions for updating ancient filesets obsolete
* lisp/filesets.el (filesets-update-pre010505): Make update
information for filesets older than 2001 obsolete. Note that this
dates back to before filesets.el was even added to Emacs.
Yuan Fu [Mon, 21 Nov 2022 09:27:55 +0000 (01:27 -0800)]
Use constant face for labels in c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use
constant face for labels.
Yuan Fu [Mon, 21 Nov 2022 04:52:16 +0000 (20:52 -0800)]
; * lisp/textmodes/css-mode.el (css-ts-mode): Fix typo.
Yuan Fu [Mon, 21 Nov 2022 04:43:15 +0000 (20:43 -0800)]
Add separate keymaps for js/python/css-ts-mode
* lisp/progmodes/js.el (js-ts-mode-map)
* lisp/progmodes/python.el (python-ts-mode-map)
* lisp/textmodes/css-mode.el (css-ts-mode-map): New keymap.
Yuan Fu [Mon, 21 Nov 2022 04:31:42 +0000 (20:31 -0800)]
Tweak python-ts-mode fontification
* lisp/progmodes/python.el (python--treesit-fontify-string): Make the
matching condition for docstrings more specific.
Yuan Fu [Mon, 21 Nov 2022 04:29:53 +0000 (20:29 -0800)]
Fix tree-sitter fontification heuristic
Previously applied heuristic 2 sometimes invalidates heuristic 1, add
a guard so it doesn't.
The new function is just for clearity of the code and has nothing to
do with the change itself.
* lisp/treesit.el (treesit--node-length): New function
(treesit-font-lock-fontify-region): Use the new function. Only do
heuristic 2 when the node is large.
Stefan Kangas [Mon, 21 Nov 2022 08:28:05 +0000 (09:28 +0100)]
* lisp/woman.el (woman-mode-map): Prefer defvar-keymap.
Juri Linkov [Mon, 21 Nov 2022 07:56:06 +0000 (09:56 +0200)]
* lisp/outline.el (outline-search-function): New variable (bug#53981).
(outline-font-lock-keywords, outline-font-lock-face)
(outline-minor-mode-highlight-buffer, outline-next-preface)
(outline-next-heading, outline-previous-heading)
(outline-back-to-heading, outline-on-heading-p, outline-demote)
(outline-map-region, outline-next-visible-heading)
(outline-hide-sublevels, outline-up-heading): Use outline-search-function
when it's non-nil as an alternative to searching outline-regexp.
(outline-search-level, outline-search-text-property): New functions.
* lisp/apropos.el (apropos-mode): Set outline-search-function
instead of unreliable outline-regexp.
(apropos-print): Add text property outline-level.
* lisp/emacs-lisp/shortdoc.el (shortdoc-display-group):
Add text property outline-level on text separate from final newlines.
(shortdoc-display-group): Add a narrow newline to not show
text properties of the final line when the outline is hidden.
(shortdoc--display-function): Add text property outline-level.
(shortdoc-mode): Set buffer-local outline-search-function and outline-level.
Po Lu [Mon, 21 Nov 2022 05:24:15 +0000 (13:24 +0800)]
* src/treesit.c (treesit_load_language): Fix uninitialized uses.
Po Lu [Mon, 21 Nov 2022 05:17:48 +0000 (13:17 +0800)]
Avoid usage of intern_c_string in treesit.c
* src/treesit.c (Ftreesit_pattern_expand): Use DEFSYM'd symbols
when the naming makes sense.
(syms_of_treesit): Add new defsyms QCanchor, QCequal, QCmatch.
Po Lu [Mon, 21 Nov 2022 05:14:43 +0000 (13:14 +0800)]
Stylistic fixes to treesit.c
* src/treesit.c (treesit_make_ranges):
(Ftreesit_parser_set_included_ranges): Fix coding style.
Po Lu [Mon, 21 Nov 2022 05:12:16 +0000 (13:12 +0800)]
Fix MS-DOS build
* msdos/sed1v2.inp: Edit out tree-sitter stuff.
Yuan Fu [Mon, 21 Nov 2022 01:15:42 +0000 (17:15 -0800)]
Add another heuristic to speed up tree-sitter fontification
* lisp/treesit.el (treesit-font-lock-fontify-region): Use
treesit--children-covering-range to reduce the node size.
Yuan Fu [Mon, 21 Nov 2022 00:56:33 +0000 (16:56 -0800)]
Limit recursion level for tree-sitter imenu functions
Generating imenu index doesn't require going down to the bottom of the
tree (defun's are usually top-level). Add limit so we don't go too
far down on very large buffers.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu)
* lisp/progmodes/js.el (js--treesit-imenu)
* lisp/progmodes/json-ts-mode.el (json-ts-mode--imenu)
* lisp/progmodes/python.el (python-imenu-treesit-create-index)
* lisp/textmodes/css-mode.el (css--treesit-imenu): Add limit to
treesit-induce-sparse-tree.
Yuan Fu [Mon, 21 Nov 2022 00:37:19 +0000 (16:37 -0800)]
Improve tree-sitter fontification on large buffers
* lisp/treesit.el (treesit--children-covering-range)
(treesit--children-covering-range-recurse): New functions. They are
not currently used but could be useful in the future, so I left them
in place.
(treesit-font-lock-fontify-region):
* lisp/treesit.el (treesit-font-lock-fontify-region): Use the result
of treesit-node-on instead of the root node.
Stephen Leake [Sun, 20 Nov 2022 21:45:13 +0000 (13:45 -0800)]
Delete eglot spinner; not useful
* lisp/progmodes/eglot.el (eglot-lsp-server): Delete slot spinner.
(eglot--mode-line-format): Don't include spinner in mode-line.
(eglot--signal-textDocument/didChange): Don't set spinner.
Juanma Barranquero [Sun, 20 Nov 2022 20:40:08 +0000 (21:40 +0100)]
Avoid native compiler setting user-init-file to warnings.el (bug#59358)
* src/lread.c (maybe_swap_for_eln): Use a delayed warning
instead of `display-warning' to avoid a recursive call to
Fload while loading the init file that sets `user-init-file'
to a bogus value.
Juri Linkov [Sun, 20 Nov 2022 18:10:45 +0000 (20:10 +0200)]
Rename 'elisp-eval-buffer' to 'elisp-eval-region-or-buffer' (bug#59350)
* lisp/progmodes/elisp-mode.el (elisp-eval-region-or-buffer):
Rename recently added command 'elisp-eval-buffer' to support active region.
(emacs-lisp-mode-map, lisp-interaction-mode-map): Rebind 'C-c C-e'
from elisp-eval-buffer to elisp-eval-region-or-buffer.
Juri Linkov [Sun, 20 Nov 2022 18:02:20 +0000 (20:02 +0200)]
Disable display-line-numbers-mode in string-pixel-width (bug#59311)
* lisp/emacs-lisp/subr-x.el (string-pixel-width):
Turn off display-line-numbers-mode when it's enabled.
Michael Albinus [Sun, 20 Nov 2022 16:58:49 +0000 (17:58 +0100)]
* doc/misc/Makefile.in (INFO_COMMON): Sort alphabetically.
Michael Albinus [Sun, 20 Nov 2022 16:58:34 +0000 (17:58 +0100)]
Rework tramp-archive autoloads
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp):
Use `tramp-compat-rx'. Protect `tramp-archive-suffixes' and
`tramp-archive-compression-suffixes'.
(tramp-archive-file-name-handler): Don't autoload.
(tramp-register-archive-autoload-file-name-handler): Rename from
`tramp-register-archive-file-name-handler'. Adapt callees.
Po Lu [Sun, 20 Nov 2022 13:01:10 +0000 (21:01 +0800)]
Coalesce duplicate scroll valuator handling code
Also, write more commentary.
* src/xterm.c (xi_populate_scroll_valuator): New function.
Describe the meaning of each field in xi_scroll_valuator_t.
(xi_populate_device_from_info, xi_handle_new_classes): Factor
out duplicate code to that function.
Stefan Kangas [Sun, 20 Nov 2022 11:59:39 +0000 (12:59 +0100)]
; Fix typos
Stefan Kangas [Sun, 20 Nov 2022 11:25:54 +0000 (12:25 +0100)]
; Add .no-advice-on-failure to .gitignore
This is for the new "disable advice on failure" feature added by
Gregory Heytings <gregory@heytings.org>.
* .gitignore: Add .no-advice-on-failure.
Eli Zaretskii [Sun, 20 Nov 2022 11:51:22 +0000 (13:51 +0200)]
; * lisp/proced.el (proced-auto-update-timer): Fix last change.
Laurence Warne [Tue, 15 Nov 2022 18:48:40 +0000 (18:48 +0000)]
Cancel proced auto update timer if no proced buffers are open
* lisp/proced.el (proced-auto-update-timer): Cancel timer if no proced
buffers are open.
Eli Zaretskii [Sun, 20 Nov 2022 11:10:08 +0000 (13:10 +0200)]
Advise against using too-high GC thresholds
* doc/lispref/internals.texi (Garbage Collection):
* src/alloc.c (syms_of_alloc) <gc-cons-threshold>
<gc-cons-percentage>: Advise against enlarging the GC thresholds
more than needed and for prolonged periods of time.
Gabriel do Nascimento Ribeiro [Thu, 17 Nov 2022 00:59:17 +0000 (21:59 -0300)]
Handle error in bookmark-relocate when filename is nil
* lisp/bookmark.el (bookmark-relocate): Handle error when
filename is nil. (Bug#59326)
Eli Zaretskii [Sun, 20 Nov 2022 10:10:38 +0000 (12:10 +0200)]
; Avoid "Local Variables" popups in Emacs tree
* lisp/vc/vc.el (vc-prepare-patches-separately): Add an autoloaded
form for the 'safe-local-variable' property. (Bug#59384)
Juanma Barranquero [Sun, 20 Nov 2022 09:25:59 +0000 (10:25 +0100)]
; Fix typos
* doc/lispref/display.texi (Size of Displayed Text):
* lisp/net/trampver.el (tramp-inside-emacs): Fix typos in docstrings.
Eli Zaretskii [Sun, 20 Nov 2022 08:30:38 +0000 (10:30 +0200)]
; Improve recently-modified documentation
* lisp/progmodes/python.el (python-base-mode)
(python--treesit-fontify-string):
* lisp/textmodes/css-mode.el (css-base-mode):
* lisp/treesit.el (treesit-ready-p, treesit-comment-end)
(treesit-simple-indent-presets): Fix typos and wording in doc strings.
* doc/lispref/parsing.texi (Tree-sitter major modes):
* doc/lispref/modes.texi (Parser-based Indentation): Fix wording
and add cross-references.
Yuan Fu [Sun, 20 Nov 2022 02:58:12 +0000 (18:58 -0800)]
Fix uses of treesit-ready-p
* lisp/progmodes/c-ts-mode.el (c-ts-mode)
(c++-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode)
* lisp/progmodes/js.el (js-ts-mode)
* lisp/progmodes/json-ts-mode.el (json-ts-mode)
* lisp/progmodes/python.el (python-ts-mode)
* lisp/progmodes/sh-script.el (sh-mode)
* lisp/progmodes/ts-mode.el (ts-mode): Remove the MODE argument.
Yuan Fu [Sun, 20 Nov 2022 02:53:53 +0000 (18:53 -0800)]
Remove treesit-settings
Remove it since we are using separate major modes for tree-sitter and
native variant now.
* doc/lispref/parsing.texi (Tree-sitter major modes): Update manual.
* lisp/treesit.el (treesit-settings): Remove option.
(treesit--setting-for-mode): Remove function.
(treesit-ready-p): Don't check for user preference in treesit-settings.
Yuan Fu [Sun, 20 Nov 2022 02:45:45 +0000 (18:45 -0800)]
Remove tree-sitter setup from js-json-mode
* lisp/progmodes/js.el (js-json--treesit-font-lock-settings)
(js--json-treesit-indent-rules): Remove variables.
(js-json-mode): Remove tree-sitter setup.
Yuan Fu [Sun, 20 Nov 2022 01:59:14 +0000 (17:59 -0800)]
Fix tree-sitter comment indentation for C-like languages
The goal is to indent like this:
/* comment
comment --> This line aligns with the beginning of the first line
*/ --> This line aligns with the opening comment token
* lisp/treesit.el (treesit-comment-start)
(treesit-comment-end): New variables.
(treesit-simple-indent-presets): New preset comment-end,
comment-start, comment-start-skip
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles)
(c-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules)
(java-ts-mode)
* lisp/progmodes/js.el (js--treesit-indent-rules)
(js-ts-mode)
* lisp/progmodes/ts-mode.el (ts-mode--indent-rules)
(ts-mode): Add identical indent rules to each mode, and set identical
treesit-comment-start/end's.
* doc/lispref/modes.texi (Parser-based Indentation)
* doc/lispref/parsing.texi (Tree-sitter major modes): Update manual.
Yuan Fu [Sun, 20 Nov 2022 00:56:42 +0000 (16:56 -0800)]
Separate native and tree-sitter variant of js-mode
* lisp/progmodes/js.el (js-base-mode): New mode.
(js-mode): Return to before tree-sitter setup is added, change to
inherit from js-base-mode.
(js-ts-mode): New mode. Now it doesn't use any cc-mode feature,
meaning it looses comment filling.
Yuan Fu [Sun, 20 Nov 2022 00:10:46 +0000 (16:10 -0800)]
Merge function/class-name features in python-mode
To keep consistency with other tree-sitter major modes.
* lisp/progmodes/python.el (python--treesit-settings)
(python-ts-mode): Merge function-name and class-name features into
definition.
Yuan Fu [Sun, 20 Nov 2022 00:09:08 +0000 (16:09 -0800)]
Split python-mode into native and tree-sitter variant
* lisp/progmodes/python.el (python-base-mode): New virtual mode that
contains most of the setup.
(python-mode): Change to inherit from python-base-mode.
(python-ts-mode): New mode that sets up tree-sitter.
Yuan Fu [Sat, 19 Nov 2022 23:27:07 +0000 (15:27 -0800)]
Expand css-ts-mode and merge it into css-mode
* lisp/progmodes/css-ts-mode.el: Deleted.
* lisp/textmodes/css-mode.el (css--treesit-indent-rules)
(css--treesit-settings): New variables.
(css--treesit-imenu-1)
(css--treesit-imenu): New functions.
* lisp/textmodes/css-mode.el (css-base-mode): New mode inherited by
both css-mode and css-ts-mode.
(css-ts-mode): New mode.
(css-mode): Inherit from css-base-mode, and move some setup to
css-base-mode.
Yuan Fu [Sat, 19 Nov 2022 23:25:06 +0000 (15:25 -0800)]
Change tree-sitter indent preset 'match' to count on all nodes
I changed other presets to count all nodes a while ago, but forgot to
change 'match' too.
* lisp/treesit.el (treesit-simple-indent-presets): Change to count on
both named and anonymous nodes.
Eli Zaretskii [Sat, 19 Nov 2022 19:34:07 +0000 (21:34 +0200)]
Fix encoding and display of messages sent by server to emacsclient
* lisp/server.el (server-start): Use 'locale-coding-system' to
encode messages sent back to the client.
* lib-src/emacsclient.c (main): Print '-error' messages via
'message', not directly via 'fprintf'. This shows the error on
MS-Windows when the client is invoked as 'emacsclientw', since
stderr goes to the bit bucket in that case.
Thomas Fitzsimmons [Sat, 19 Nov 2022 16:39:21 +0000 (11:39 -0500)]
EUDC: Add BBDB test
* test/lisp/net/eudc-tests.el (eudcb-ldap): Call skip-unless with
slapd check.
(eudcb-bbdb): New test.
Gregory Heytings [Sat, 19 Nov 2022 15:46:46 +0000 (15:46 +0000)]
Fix global face scaling bug due to rounding.
* lisp/face-remap.el (global-text-scale-adjust): Try again if the face
height should have changed but did not actually change. Update the
docstring to clarify the difference with 'text-scale-adjust'.
(global-text-scale-adjust--increment-factor): New internal variable.
Fixes bug#59122.
(text-scale-adjust): Update the docstring to clarify the difference
with 'global-text-scale-adjust'.
Brent Westbrook [Sat, 19 Nov 2022 14:23:57 +0000 (09:23 -0500)]
EUDC: Fix a void-variable error
* lisp/net/eudcb-mailabbrev.el (eudc-mailabbrev-query-internal):
Check if symbol is bound before taking its value. (Bug#59369)
Gregory Heytings [Sat, 19 Nov 2022 14:00:17 +0000 (14:00 +0000)]
; * Makefile.in: Add option to disable advice on failure.
Philip Kaludercic [Sat, 19 Nov 2022 11:19:37 +0000 (12:19 +0100)]
* lisp/emacs-lisp/package.el (package-maintainers): Improve error handling