IncrementalLatexParser class
Incremental LaTeX Parser (tree-sitter style)
Core design refers to tree-sitter's incremental parsing 3-tier strategy:
Tier 1: Incremental Tokenization (Token Reuse)
When an edit occurs, IncrementalTokenizer only re-tokenizes the affected region. Unmodified tokens before and after are directly reused (with offset shifting), avoiding full-text re-tokenization.
Tier 2: AST Subtree Reuse
Through TreeReuser, the top-level child nodes of the old AST are partitioned into three segments:
- prefix: Before the edit region, kept directly
- dirty: Overlaps with the edit region, re-parsed using new tokens
- suffix: After the edit region, reused after offset shifting
Tier 3: Fault-tolerant Parsing
For incomplete inputs (e.g., streaming typing), uses intelligent truncation instead of brute-force backtracking:
If full parsing fails, it truncates at structural boundaries ({}, $, \[...\], \begin..\end)
to the nearest safe point.
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
append(
String text) → void - Appends new LaTeX content (fast path)
-
clear(
) → void - Clears all content and state
-
getCurrentDocument(
) → DocumentNode - Gets the currently parseable document
-
getCurrentInput(
) → String - Gets the full content of the current buffer
-
getProgress(
) → double - Gets parsing progress (successfully parsed characters / total characters)
-
getUnparsedContent(
) → String - Gets the unparsed portion (for debugging or displaying)
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
setInput(
String newText) → void - Completely replaces the input content
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited