(grammarName: string)
| 122 | } |
| 123 | |
| 124 | async function loadGrammar(grammarName: string): Promise<TSLanguage | null> { |
| 125 | if (grammarCache.has(grammarName)) return grammarCache.get(grammarName)!; |
| 126 | |
| 127 | try { |
| 128 | const Parser = await initParser(); |
| 129 | const wasmPath = join(GRAMMAR_DIR, `tree-sitter-${grammarName}.wasm`); |
| 130 | await readFile(wasmPath); |
| 131 | const lang = await Parser.Language.load(wasmPath); |
| 132 | grammarCache.set(grammarName, lang); |
| 133 | return lang; |
| 134 | } catch { |
| 135 | return null; |
| 136 | } |
| 137 | } |
| 138 | |
| 139 | function extractName(node: TSNode, _kind: string): string { |
| 140 | const nameNode = node.childForFieldName("name") |
no test coverage detected