aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuan Fu2024-09-08 17:30:21 -0700
committerYuan Fu2024-09-08 20:52:20 -0700
commit3fcec09f754af9822339eff3ea15d43eb7d19014 (patch)
treef2c18fa97834987a5ca61534eae19efca6fd54ac
parent0fd259d166c0dca4d097ad026ac748748ba88497 (diff)
downloademacs-3fcec09f754af9822339eff3ea15d43eb7d19014.tar.gz
emacs-3fcec09f754af9822339eff3ea15d43eb7d19014.zip
Add debugging function for treesit.c
* src/treesit.c (treesit_debug_print_parser_list): New function.
-rw-r--r--src/treesit.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/treesit.c b/src/treesit.c
index 6e806039df0..351bd65819a 100644
--- a/src/treesit.c
+++ b/src/treesit.c
@@ -485,6 +485,53 @@ treesit_initialize (void)
485} 485}
486 486
487 487
488/*** Debugging */
489
490void treesit_debug_print_parser_list (char *msg, Lisp_Object parser)
491{
492 struct buffer *buf = XBUFFER (XTS_PARSER (parser)->buffer);
493 char *buf_name = SSDATA (BVAR (buf, name));
494 printf ("%s (%s) [%s] <%s>: %ld(%ld)-(%ld)%ld {\n",
495 msg == NULL ? "" : msg,
496 SSDATA (SYMBOL_NAME (Vthis_command)),
497 SSDATA (SYMBOL_NAME (XTS_PARSER (parser)->language_symbol)),
498 buf_name, BUF_BEG (buf),
499 BUF_BEGV (buf), BUF_Z (buf), BUF_ZV (buf));
500 Lisp_Object tail = BVAR (buf, ts_parser_list);
501
502 FOR_EACH_TAIL (tail)
503 {
504 struct Lisp_TS_Parser *parser = XTS_PARSER (XCAR (tail));
505 printf ("[%s %s %s %ld-%ld T:%ld]\n", SSDATA (SYMBOL_NAME (parser->language_symbol)),
506 SSDATA (SYMBOL_NAME (parser->tag)),
507 parser->need_reparse ? "NEED-R" : "NONEED",
508 parser->visible_beg, parser->visible_end,
509 parser->timestamp);
510 /* Print ranges. */
511 uint32_t len;
512 const TSRange *ranges
513 = ts_parser_included_ranges (parser->parser, &len);
514
515 if (!(len == 1 && ranges[0].start_byte == 0 && ranges[0].end_byte == -1))
516 {
517 for (int idx = 0; idx < len; idx++)
518 {
519 TSRange range = ranges[idx];
520 printf (" [%d, %d)", range.start_byte, range.end_byte);
521
522 /* if (!parser->need_reparse) */
523 /* { */
524 /* eassert (BUF_BEGV_BYTE (buf) <= range.start_byte + parser->visible_beg); */
525 /* eassert (range.end_byte + parser->visible_beg <= BUF_ZV_BYTE (buf)); */
526 /* } */
527 }
528 printf ("\n");
529 }
530 }
531 printf ("}\n\n");
532}
533
534
488/*** Loading language library */ 535/*** Loading language library */
489 536
490/* Translate a symbol treesit-<lang> to a C name treesit_<lang>. */ 537/* Translate a symbol treesit-<lang> to a C name treesit_<lang>. */