diff --git a/tags/include/tree_sitter/tags.h b/tags/include/tree_sitter/tags.h index f6113a0f..58f5bbd9 100644 --- a/tags/include/tree_sitter/tags.h +++ b/tags/include/tree_sitter/tags.h @@ -16,6 +16,7 @@ typedef enum { TSTagsInvalidUtf8, TSTagsInvalidRegex, TSTagsInvalidQuery, + TSTagsInvalidCapture, } TSTagsError; typedef struct { diff --git a/tags/src/c_lib.rs b/tags/src/c_lib.rs index 6dc48195..77f8aae5 100644 --- a/tags/src/c_lib.rs +++ b/tags/src/c_lib.rs @@ -16,6 +16,7 @@ pub enum TSTagsError { InvalidUtf8, InvalidRegex, InvalidQuery, + InvalidCapture, Unknown, } @@ -93,7 +94,9 @@ pub extern "C" fn ts_tagger_add_language( } Err(Error::Query(_)) => TSTagsError::InvalidQuery, Err(Error::Regex(_)) => TSTagsError::InvalidRegex, - Err(_) => TSTagsError::Unknown, + Err(Error::Cancelled) => TSTagsError::Timeout, + Err(Error::InvalidLanguage) => TSTagsError::InvalidLanguage, + Err(Error::InvalidCapture(_)) => TSTagsError::InvalidCapture, } }