@unified-latex/unified-latex-util-scan
v1.8.0
Published
Functions for modifying a unified-latex AST
Downloads
16,016
Maintainers
Readme
unified-latex-util-scan
What is this?
Functions to analyze unified-latex
Abstract Syntax Tree (AST).
When should I use this?
If you want to look for particular AST nodes in an array; useful when making plugins.
Install
npm install @unified-latex/unified-latex-util-scan
This package contains both esm and commonjs exports. To explicitly access the esm export,
import the .js
file. To explicitly access the commonjs export, import the .cjs
file.
Functions
prefixMatch(nodes, prefixes, options)
Efficiently search for a large number of strings using a prefix-tree. The longest match is returned.
function prefixMatch(nodes: Ast.Node[], prefixes: string | string[] | { dump(spacer?: number): string; tree(): any; addWord(word: string): ReturnType<typeof Trie>; removeWord(word: string): ReturnType<typeof Trie>; ... 7 more ...; getSubAnagrams(word: string): string[]; }, options: { startIndex?: number; matchSubstrings?: boolean; assumeOneCharStrings?: boolean; }): { match: string; endNodeIndex: number; endNodePartialMatch: string | null; }
Parameters
| Param | Type |
| :------- | :-------------------------------- |
| nodes | Ast.Node[]
|
| prefixes | Omitted |
| options | Omitted |
scan(nodes, token, options)
Scan nodes
looking for the first occurrence of token
.
If options.onlySkipWhitespaceAndComments==true
, then the scan
will only skip whitespace/comment nodes.
function scan(
nodes: (Ast.Node | Ast.Argument)[],
token: string | Ast.Node | Ast.Argument,
options: {
startIndex?: number;
onlySkipWhitespaceAndComments?: boolean;
allowSubstringMatches?: boolean;
}
): number;
Parameters
| Param | Type |
| :------ | :-------------------------------- |
| nodes | (Ast.Node \| Ast.Argument)[]
|
| token | Omitted |
| options | Omitted |