1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-28 07:50:48 -08:00
Commit graph

165763 commits

Author SHA1 Message Date
Stefan Kangas
96436a125d Merge from origin/emacs-28
8cae9d8bd8 ; * doc/emacs/search.texi (Lax Search): Improve wording.  ...
e01e8a8f84 ; * lisp/dired-aux.el (dired-show-file-type): Doc fix.
2022-11-04 06:31:49 +01:00
Yuan Fu
b86deb617b
Fix treesit-parser-set-included-ranges
Track whether a parser has ranges set ourselves.  See comment in
Ftreesit_parser_included_ranges for detail.

* src/treesit.c (make_treesit_parser): Initialize has_range.
(Ftreesit_parser_set_included_ranges): Set has_range.  Fill docstring.
(Ftreesit_parser_included_ranges): Check has_range.
* src/treesit.h (Lisp_TS_Parser): Add has_range.
2022-11-03 22:14:50 -07:00
Stefan Monnier
5e7d08ae13 itree.c: Minor tightening
* src/itree.c (iter): Initialize to NULL.
(init_itree): Make sure it's not allocated before we overwrite it.
(itree_insert_gap): Tweak the end-loop.
2022-11-03 23:16:12 -04:00
Stefan Monnier
ff679e16f8 itree: Reproduce markers's behavior more faithfully (bug#58928)
The most obvious problem was the lack of support for
`insert-before-markers`, but the behavior was also different in a few
other cases.

* src/itree.h (itree_insert_gap):
* src/itree.c (itree_insert_gap): Add `before_markers` arg.
* src/lisp.h (adjust_overlays_for_insert):
* src/buffer.c (adjust_overlays_for_insert): Add `before_markers` arg.

* src/insdel.c (adjust_markers_for_replace, adjust_markers_for_insert)
(adjust_markers_for_delete): Adjust overlays directly from here.
(insert_1_both, insert_from_string_1, insert_from_gap)
(insert_from_buffer_1, adjust_after_replace, replace_range)
(replace_range_2, del_range_2): Don't adjust overlays explicitly here
any more.

* test/src/buffer-tests.el (test-overlay-insert-before-markers-empty)
(test-overlay-insert-before-markers-non-empty): New tests.
2022-11-03 22:44:55 -04:00
Yuan Fu
c5f24f76eb
; * src/treesit.c: Minor comment change. 2022-11-03 19:39:43 -07:00
Yuan Fu
b028d4f7df
; Tree-sitter: Don't refontify if entity contained in the region
* lisp/treesit.el (treesit-font-lock-contextual-post-process): Only
refontify when NODE-START < region START.
2022-11-03 19:37:55 -07:00
Dmitry Gutov
7d47651d01 project-buffers: Describe the default implementation
* lisp/progmodes/project.el (project-buffers):
Describe what the default implementation is doing (bug#58784).
2022-11-04 03:16:36 +02:00
Dmitry Gutov
ef45bfacb2 project-kill-buffer-conditions: Skip Gnus modes as well
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Skip Gnus modes as well (bug#58839).
2022-11-04 03:03:29 +02:00
Dmitry Gutov
44f23dac25 project-kill-buffer-conditions: Skip hidden ones
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Make exception for "hidden" buffers (bug#58839).
2022-11-04 02:59:12 +02:00
Po Lu
8e7066babe Fix initialization of scroll valuator emacs_value
* src/xterm.c (xi_handle_device_changed): Initialize emacs_value
to 0, not DBL_MIN.  (bug#58980)
2022-11-04 08:29:13 +08:00
Philip Kaludercic
0efc611697 Autoload all entry functions 2022-11-03 23:15:18 +01:00
Yuan Fu
e3663d0e9c
Add contextual tree-sitter font-lock to ts-mode and js-mode
* lisp/progmodes/js.el (js--treesit-font-lock-settings)
* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Capture
commend and strings.  Add empty lines.
2022-11-03 11:53:49 -07:00
Jim Porter
d2a9dae400 Only strip newlines when stringifying a value for Eshell
* lisp/eshell/esh-util.el (eshell-stringify): Use 'string-trim-right'
instead of stripping the last character of the result of
'pp-to-string' (bug#58810).

* test/lisp/eshell/esh-util-tests.el: New file.
2022-11-03 11:44:41 -07:00
Yuan Fu
f9f9b43df5
Minor change to tree-sitter imenu function of js-mode
If someone don’t like the labels, they can set them to empty strings.

* lisp/progmodes/js.el (js--treesit-imenu-type-alist): Add space.
(js--treesit-imenu-label): Remove space.
2022-11-03 11:44:35 -07:00
Yuan Fu
5416ae5990
; Update guides in /admin/notes/tree-sitter
* admin/notes/tree-sitter/html-manual/Language-Definitions.html
* admin/notes/tree-sitter/html-manual/Multiple-Languages.html
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html
* admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html
* admin/notes/tree-sitter/html-manual/Pattern-Matching.html
* admin/notes/tree-sitter/html-manual/Retrieving-Node.html
* admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html
* admin/notes/tree-sitter/html-manual/Using-Parser.html
* admin/notes/tree-sitter/starter-guide: Update to reflect changes
made recently.
2022-11-03 11:43:44 -07:00
Philip Kaludercic
38efed50dc ; Mention that 'package-vc-checkout' open a directory
* lisp/emacs-lisp/package-vc.el (package-vc-checkout): Mention it in
the docstring.
2022-11-03 19:41:46 +01:00
Philip Kaludercic
f5fb7069f3 ; Explicitly mark internal functions as such 2022-11-03 19:38:34 +01:00
Philip Kaludercic
0e75099da8 * lisp/emacs-lisp/package-vc.el (package-vc-version): Use main file 2022-11-03 19:28:47 +01:00
Philip Kaludercic
ec01d9a209 Add command 'package-vc-checkout'
* doc/emacs/package.texi: Document feature.
* etc/NEWS: Mention feature.
* lisp/emacs-lisp/package-vc.el (package-vc-clone): Extract
functionality out of 'package-vc-unpack'.
(package-vc-unpack): Extract functionality out to 'package-vc-clone'.
(package-vc-checkout): Add command.
2022-11-03 19:26:21 +01:00
Paul Eggert
39f5696921 Improve suppression of bogus macOS warnings
* configure.ac: On macOS, always use -Wno-deprecated-declarations,
as the false alarms appear even if --disable-gcc-warnings is given
(Bug#58966).
2022-11-03 11:10:32 -07:00
Eli Zaretskii
8cae9d8bd8 ; * doc/emacs/search.texi (Lax Search): Improve wording. (Bug#58992) 2022-11-03 20:02:00 +02:00
Juri Linkov
651bf0a999 Fix overlays order in Flyspell (bug#58970)
Flyspell relies on the sorting order of overlays from 'overlays-in'
that returned the overlays sorted by decreased 'overlay-start'.
But after the recent merge of the noverlay branch, the order was reversed.
So need to change the order back to the expected by Flyspell.

* lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-word):
Sort overlays returned from 'overlays-in' descending by 'overlay-start'.
2022-11-03 19:35:45 +02:00
Basil L. Contovounesios
a66280162f Port interval trees to --enable-checking=structs
Some names under the interval_* namespace were renamed under the
itree_* namespace in commits:

  0. f421b58db5 of 2022-10-19
  "Prefix all itree.h type names with itree_".
  1. 37a1145410 of 2022-10-19
  "Rename all exported itree.h functions with the itree_ prefix"

Further, some values still referenced in commentary were removed in
commits:

  2. 258e618364 of 2022-10-17
  "Delete the itree_null sentinel node, use NULL everywhere."
  3. 2c4a3910b3 of 2022-10-02
  "itree: Use a single iterator object"

* src/emacs.c (main): Allocate global itree iterator once and for
all.
* src/alloc.c (mark_overlay):
* src/buffer.c (set_overlays_multibyte):
* src/itree.c (itree_destroy): Update commentary.
(interval_stack_ensure_space, itree_insert_gap): Prefer
unsigned-to-unsigned comparisons over signed-to-unsigned.
(interval_stack_push_flagged, interval_tree_insert)
(interval_tree_contains, itree_iterator_start)
(itree_iterator_finish, itree_iterator_next, itree_iterator_narrow):
Improve assertions.
(itree_init): Rename...
(init_itree): ...to this, for consistency with other global init
functions.
(itree_create): Stop leaking a global iterator allocation on each
call.
(interval_tree_init): Complete renames of
interval_tree -> itree_tree and interval_tree_clear -> itree_clear.
(interval_tree_remove_fix): Fix indentation.
* src/itree.h: Declare init_itree.
(ITREE_FOREACH): Fix typo in commentary.

* src/pdumper.c [CHECK_STRUCTS]
(dump_interval_node): Use the correct name in the HASH condition
and #error message.
(dump_overlay, dump_buffer): Update HASH (bug#58975).
2022-11-03 16:49:05 +02:00
Juanma Barranquero
8b8038494c * src/gnutls.c (Fgnutls_available_p): Avoid duplicating capabilities. 2022-11-03 14:43:27 +01:00
Stefan Kangas
d8bef573d6 Prefer defvar-keymap in profiler.el
* lisp/profiler.el (profiler-report-mode-map): Prefer
defvar-keymap.
2022-11-03 14:29:11 +01:00
Jonas Bernoulli
2eb2eb0c9e ; * emoji.el (emoji--define-transient): Adapt to recent changes in transient. 2022-11-03 12:40:57 +01:00
Po Lu
eb8478c514 Further simplify valuator reset code
* src/xterm.c (xi_reset_scroll_valuators_for_device_id): Minor
style adjustments.
(handle_one_xevent): Don't check frames; reset on all XI_Enter
and XI_Leave events.
2022-11-03 19:27:29 +08:00
Po Lu
9909652849 More style fixes to tree-sitter code
* src/treesit.c (treesit_node_uptodate_p):
* src/treesit.h: Fix coding style.
2022-11-03 19:14:16 +08:00
Po Lu
6b91ea5a61 Minor fixes to last tree-sitter change
* src/treesit.c (treesit_find_override_name): Initialize
variable.
(Ftreesit_query_expand): Revert change to behavior.
2022-11-03 19:13:33 +08:00
Po Lu
bd8e19e1e2 Stylistic changes to tree-sitter code
* src/treesit.c (treesit_find_override_name)
(treesit_load_language_push_for_each_suffix, treesit_load_language)
(Ftreesit_langauge_available_p, treesit_record_change)
(make_treesit_parser, make_treesit_node, make_treesit_query)
(Ftreesit_parser_create, Ftreesit_parser_delete, Ftreesit_parser_list)
(treesit_check_range_argument, Ftreesit_parser_included_ranges)
(Ftreesit_node_start, Ftreesit_node_end, Ftreesit_node_check)
(Ftreesit_node_child_by_field_name, Ftreesit_pattern_expand)
(Ftreesit_query_expand, treesit_predicates_for_pattern)
(treesit_predicate_capture_name_to_text, treesit_predicate_equal)
(treesit_predicate_match, treesit_eval_predicates)
(Ftreesit_query_capture, treesit_search_dfs, treesit_build_sparse_tree)
(syms_of_treesit): Use FOR_EACH_TAIL (or FOR_EACH_TAIL_SAFE where not
obviously safe), and check list heads and tails correctly; fix coding
style of various constructs, especially:

  variable =
    mumble (frob (bar), (foo () + bar ()) + (baz () + quux ()))

which should actually be

  variable
    = mumble (frob (bar), (foo () + bar ()) + (baz () + quux ()))

and

  foo =
    mumble (frob (bar), 0)
      + (foo () + bar ())
      + (baz () + quux ())

which should actually be

  foo = (mumble (frob (bar), 0)
	 + (foo () + bar ())
	 + (baz () + quux ()))

* src/treesit.h: Make declaration coding style consistent.
2022-11-03 19:13:33 +08:00
Eli Zaretskii
e01e8a8f84 ; * lisp/dired-aux.el (dired-show-file-type): Doc fix. 2022-11-03 11:59:30 +02:00
Gerd Möllmann
d16494cffb Suppress deprecation warnings on macOS (bug#58966)
* configure.ac (CHECK_LISP_OBJECT_TYPE): Add
-Wno-deprecated-declarations for darwin.
2022-11-03 10:42:35 +01:00
Eli Zaretskii
dffc34a2d4 Fix 'text-property-search-backward' with 1-char long properties
* lisp/emacs-lisp/text-property-search.el
(text-property--find-end-backward): Don't miss the end of
text-property value at point.  This fixes searches backward when
the property is on a single character position.  (Bug#58937)
2022-11-03 11:25:50 +02:00
dannyfreeman
1c9d7fba0a ; Fix a typo in Eglot manual
* doc/mist/eglot.texi (Customizing Eglot): 'flymake-error' face
mistakenly appears twice.  (Bug#58969)
2022-11-03 11:19:37 +02:00
Juanma Barranquero
b074c55a97 ; * doc/lispref/control.texi (Generators): Fix typo. 2022-11-03 03:49:08 +01:00
Yuan Fu
88d54756d4
Check for outdated tree-sitter node when printing
* src/print.c (print_vectorlike): Check for outdated node.
* src/treesit.c (treesit_check_node): Use the new function.
(treesit_node_uptodate_p): New function.
* src/treesit.h: Declare new function.
2022-11-02 17:47:14 -07:00
Yuan Fu
32e87f09c8
; * src/print.c (print_vectorlike): Fix comment for tree-sitter. 2022-11-02 17:23:29 -07:00
Yuan Fu
69ab588bb5
Pass region start and end to tree-sitter fontification functions
* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
* lisp/progmodes/js.el (js--fontify-template-string)
* lisp/progmodes/python.el (python--treesit-fontify-string): Update
function to only fontify within the region.
* lisp/treesit.el (treesit-font-lock-rules): Update docstring.
(treesit-font-lock-fontify-region): Pass START and END to
fontification functions.
2022-11-02 17:03:03 -07:00
Yuan Fu
f331be1f07
Add handling of contextual entities in tree-sitter font-lock
* lisp/progmodes/python.el: Remove function.
(python--treesit-settings): Capture contextual node.
* lisp/treesit.el (treesit--set-nonsticky):
(treesit-font-lock-contextual-post-process): New functions.
(treesit-font-lock-fontify-region): Change local variable START and
END to NODE-START and NODE-END, handle special capture name
"contextual".
* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
2022-11-02 16:47:53 -07:00
Paul Eggert
05f5d978ae Initialize child signal handling before posix_spawn too.
Problem reported by Tino Calancha (Bug#58960).
* src/callproc.c (call_process): Initialize SIGCHLD handling
before possibly creating a child with emacs_span.  This need not
be in the critical section that calls emacs_spawn, so do it
outside the critical section.
* src/process.c (child_signal_init): Now extern.
2022-11-02 13:25:11 -07:00
Juri Linkov
195f0e00d7 ; Fix typo 2022-11-02 20:36:49 +02:00
Yuan Fu
040991a469
Change signature of tree-sitter font-lock functions
Change from

(START END NODE OVERRIDE &rest _)

to

(NODE OVERRIDE &rest _)

START and END aren't used frequently enough to justify.  If a
fontification function needs them, it can get them from NODE.

* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.

* lisp/progmodes/js.el (js--fontify-template-string)
* lisp/progmodes/python.el (python--treesit-fontify-string)
(python--treesit-fontify-string-end): Change signature.

* lisp/treesit.el (treesit-font-lock-rules): Update docstring.
(treesit-font-lock-fontify-region): Remove START and END arguments.
2022-11-02 11:26:38 -07:00
Juri Linkov
969d71d11c Add the parameter :noquery to open-network-stream (bug#58948)
* doc/lispref/processes.texi (Network): Add :noquery for open-network-stream.

* lisp/net/network-stream.el (open-network-stream): Pass the
parameter :noquery to make-network-process.  Doc fix.

* lisp/progmodes/eglot.el (eglot--connect): Pass `:noquery t' to
eglot--inferior-bootstrap to use in open-network-stream call, like
`:noquery t' is passed to make-process in other places.
2022-11-02 20:22:10 +02:00
Juanma Barranquero
62d40f27b2 ; * doc/misc/cl.texi (Mapping over Sequences): Fix typos. 2022-11-02 17:19:46 +01:00
Philip Kaludercic
7705b66ed3 ; Update TODO section 2022-11-02 17:16:39 +01:00
Gregory Heytings
b035db7a31 ; * admin/git-bisect-start: Improve commentary. 2022-11-02 15:22:33 +01:00
Stefan Kangas
1f1dac9b3b * lisp/man.el (Man-mode-map): Prefer defvar-keymap. 2022-11-02 15:07:39 +01:00
Eli Zaretskii
a762cb4f8c ; * admin/git-bisect-start: Improve commentary. 2022-11-02 15:47:58 +02:00
Gregory Heytings
bec2b542c5 ; * admin/git-bisect-start: Use a full reference. 2022-11-02 14:08:27 +01:00
Philip Kaludercic
57708df032 ; Handle case that was forgotten in the last commit 2022-11-02 13:58:14 +01:00