create static method
Initializes this mecab instance,
dictDir should be a directory that contains a Mecab dictionary
(ex. IpaDic)
options can be used
libmecabPath only used on web, sets the path where the Mecab WASM binary
is located.
Implementation
static Future<Mecab> create({
required String dictDir,
String options = defaultOptions,
String webLibmecabPath = defaultWebLibMecabPath,
}) async {
final instance = Mecab._internal();
instance._mecabDartFfi = MecabDartFfi();
// Delegate ALL initialization logic to the FFI classes.
// On Native: This does nothing (Native Assets links it automatically).
// On Web: The web FFI class internally calls loadMecabDartLib().
await instance._mecabDartFfi.init(libmecabPath: webLibmecabPath);
// Initialize the C++ pointer
instance._mecabPtr = instance._mecabDartFfi.initMecabString(options, dictDir, webLibmecabPath);
// Check if initialization failed
try {
instance._mecabDartFfi.nativeAddFunc(1, 2);
}
catch (e) {
throw Exception("Failed to initialize Mecab. Check your dictionary path: '$dictDir' and library path: '$webLibmecabPath'. Error details: $e");
}
instance.weblibmecabPath = webLibmecabPath;
instance.mecabDictDirPath = dictDir;
instance.options = options;
return instance;
}