fix(anki): tree sitter bindings breaking change

This commit is contained in:
arne314
2025-09-15 17:35:32 +02:00
parent 3178b688e3
commit e0334177c1

View File

@@ -41,8 +41,8 @@ deck_regex = re.compile(r"\W+ANKI:\s*([\S ]*)")
class FlashcardParser: class FlashcardParser:
typst_language: tree_sitter.Language typst_language: tree_sitter.Language
typst_parser: tree_sitter.Parser typst_parser: tree_sitter.Parser
flashcard_query: tree_sitter.Query flashcard_query_cursor: tree_sitter.Query
deck_query: tree_sitter.Query deck_query_cursor: tree_sitter.Query
file_handlers: List[tuple[FileHandler, List[Flashcard]]] file_handlers: List[tuple[FileHandler, List[Flashcard]]]
file_hashes: dict[str, str] file_hashes: dict[str, str]
@@ -51,8 +51,10 @@ class FlashcardParser:
def __init__(self): def __init__(self):
self.typst_language = tree_sitter.Language(get_typst_language()) self.typst_language = tree_sitter.Language(get_typst_language())
self.typst_parser = tree_sitter.Parser(self.typst_language) self.typst_parser = tree_sitter.Parser(self.typst_language)
self.flashcard_query = self.typst_language.query(ts_flashcard_query) self.flashcard_query_cursor = tree_sitter.QueryCursor(
self.deck_query = self.typst_language.query(ts_deck_query) self.typst_language.query(ts_flashcard_query)
)
self.deck_query_cursor = tree_sitter.QueryCursor(self.typst_language.query(ts_deck_query))
self.file_handlers = [] self.file_handlers = []
self._load_file_hashes() self._load_file_hashes()
@@ -61,10 +63,10 @@ class FlashcardParser:
) -> List[Flashcard]: ) -> List[Flashcard]:
cards = [] cards = []
tree = self.typst_parser.parse(file.get_bytes(), encoding="utf8") tree = self.typst_parser.parse(file.get_bytes(), encoding="utf8")
card_captures = self.flashcard_query.captures(tree.root_node) card_captures = self.flashcard_query_cursor.captures(tree.root_node)
if not card_captures: if not card_captures:
return cards return cards
deck_captures = self.deck_query.captures(tree.root_node) deck_captures = self.deck_query_cursor.captures(tree.root_node)
def row_compare(node): def row_compare(node):
return node.start_point.row return node.start_point.row