[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-29 ab1f245f1a: Show tree-sitter query source when signaling query
From: |
Yuan Fu |
Subject: |
emacs-29 ab1f245f1a: Show tree-sitter query source when signaling query error |
Date: |
Fri, 30 Dec 2022 20:02:30 -0500 (EST) |
branch: emacs-29
commit ab1f245f1a1b36bae9a3051b6cb93ecd5b78dd7a
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>
Show tree-sitter query source when signaling query error
* src/treesit.c (treesit_compose_query_signal_data): Add QUERY_SOURCE
parameter.
(treesit_ensure_query_compiled)
(Ftreesit_query_capture): Add query source.
---
src/treesit.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/treesit.c b/src/treesit.c
index a9bfcb3d9e..974d2fc451 100644
--- a/src/treesit.c
+++ b/src/treesit.c
@@ -1194,10 +1194,12 @@ treesit_query_error_to_string (TSQueryError error)
static Lisp_Object
treesit_compose_query_signal_data (uint32_t error_offset,
- TSQueryError error_type)
+ TSQueryError error_type,
+ Lisp_Object query_source)
{
- return list3 (build_string (treesit_query_error_to_string (error_type)),
+ return list4 (build_string (treesit_query_error_to_string (error_type)),
make_fixnum (error_offset + 1),
+ query_source,
build_pure_c_string ("Debug the query with
`treesit-query-validate'"));
}
@@ -1239,7 +1241,8 @@ treesit_ensure_query_compiled (Lisp_Object query,
Lisp_Object *signal_symbol,
{
*signal_symbol = Qtreesit_query_error;
*signal_data = treesit_compose_query_signal_data (error_offset,
- error_type);
+ error_type,
+ source);
}
XTS_COMPILED_QUERY (query)->query = treesit_query;
return treesit_query;
@@ -2627,7 +2630,7 @@ the query. */)
if (treesit_query == NULL)
xsignal (Qtreesit_query_error,
treesit_compose_query_signal_data (error_offset,
- error_type));
+ error_type, query));
cursor = ts_query_cursor_new ();
needs_to_free_query_and_cursor = true;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-29 ab1f245f1a: Show tree-sitter query source when signaling query error,
Yuan Fu <=