attachLanguageTable method

bool attachLanguageTable(
  1. TreeSitterLanguageTable language
)

Adds the retained wasm module behind language to this store.

This is the pure-Dart counterpart of ts_wasm_store_add_language, used when a parser replaces its store while retaining a wasm language.

Implementation

bool attachLanguageTable(TreeSitterLanguageTable language) {
  _checkNotDisposed();
  final state = _wasmLanguageStates[language];
  if (state == null || state.deleted) return false;
  _pruneDeletedLanguages();
  if (_entries.any((entry) => identical(entry.state, state))) return true;
  try {
    final instance = _runtime.instantiate(state.module, state.dylinkInfo);
    _entries.add(_TreeSitterWasmStoreEntry(state, instance));
    return true;
  } catch (_) {
    _hasError = true;
    return false;
  }
}