implement static method

NSSpellServerDelegate implement({
  1. NSRange spellServer_findMisspelledWordInString_language_wordCount_countOnly_(
    1. NSSpellServer,
    2. NSString,
    3. NSString,
    4. Pointer<NSInteger>,
    5. bool,
    )?,
  2. NSArray? spellServer_suggestGuessesForWord_inLanguage_(
    1. NSSpellServer,
    2. NSString,
    3. NSString
    )?,
  3. void spellServer_didLearnWord_inLanguage_(
    1. NSSpellServer,
    2. NSString,
    3. NSString
    )?,
  4. void spellServer_didForgetWord_inLanguage_(
    1. NSSpellServer,
    2. NSString,
    3. NSString
    )?,
  5. NSArray? spellServer_suggestCompletionsForPartialWordRange_inString_language_(
    1. NSSpellServer,
    2. NSRange,
    3. NSString,
    4. NSString,
    )?,
  6. NSRange spellServer_checkGrammarInString_language_details_(
    1. NSSpellServer,
    2. NSString,
    3. NSString?,
    4. Pointer<Pointer<ObjCObject>>,
    )?,
  7. NSArray? spellServer_checkString_offset_types_options_orthography_wordCount_(
    1. NSSpellServer,
    2. NSString,
    3. DartNSUInteger,
    4. DartNSTextCheckingTypes,
    5. NSDictionary?,
    6. NSOrthography?,
    7. Pointer<NSInteger>,
    )?,
  8. void spellServer_recordResponse_toCorrection_forWord_language_(
    1. NSSpellServer,
    2. DartNSUInteger,
    3. NSString,
    4. NSString,
    5. NSString,
    )?,
  9. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSSpellServerDelegate protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly.

If $keepIsolateAlive is true, this protocol will keep this isolate alive until it is garbage collected by both Dart and ObjC.

Implementation

static NSSpellServerDelegate implement({
  NSRange Function(
    NSSpellServer,
    objc.NSString,
    objc.NSString,
    ffi.Pointer<NSInteger>,
    bool,
  )?
  spellServer_findMisspelledWordInString_language_wordCount_countOnly_,
  objc.NSArray? Function(NSSpellServer, objc.NSString, objc.NSString)?
  spellServer_suggestGuessesForWord_inLanguage_,
  void Function(NSSpellServer, objc.NSString, objc.NSString)?
  spellServer_didLearnWord_inLanguage_,
  void Function(NSSpellServer, objc.NSString, objc.NSString)?
  spellServer_didForgetWord_inLanguage_,
  objc.NSArray? Function(
    NSSpellServer,
    NSRange,
    objc.NSString,
    objc.NSString,
  )?
  spellServer_suggestCompletionsForPartialWordRange_inString_language_,
  NSRange Function(
    NSSpellServer,
    objc.NSString,
    objc.NSString?,
    ffi.Pointer<ffi.Pointer<objc.ObjCObject>>,
  )?
  spellServer_checkGrammarInString_language_details_,
  objc.NSArray? Function(
    NSSpellServer,
    objc.NSString,
    DartNSUInteger,
    DartNSTextCheckingTypes,
    objc.NSDictionary?,
    NSOrthography?,
    ffi.Pointer<NSInteger>,
  )?
  spellServer_checkString_offset_types_options_orthography_wordCount_,
  void Function(
    NSSpellServer,
    DartNSUInteger,
    objc.NSString,
    objc.NSString,
    objc.NSString,
  )?
  spellServer_recordResponse_toCorrection_forWord_language_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSSpellServerDelegate',
  );
  NSSpellServerDelegate
      .spellServer_findMisspelledWordInString_language_wordCount_countOnly_
      .implement(
        builder,
        spellServer_findMisspelledWordInString_language_wordCount_countOnly_,
      );
  NSSpellServerDelegate.spellServer_suggestGuessesForWord_inLanguage_
      .implement(builder, spellServer_suggestGuessesForWord_inLanguage_);
  NSSpellServerDelegate.spellServer_didLearnWord_inLanguage_.implement(
    builder,
    spellServer_didLearnWord_inLanguage_,
  );
  NSSpellServerDelegate.spellServer_didForgetWord_inLanguage_.implement(
    builder,
    spellServer_didForgetWord_inLanguage_,
  );
  NSSpellServerDelegate
      .spellServer_suggestCompletionsForPartialWordRange_inString_language_
      .implement(
        builder,
        spellServer_suggestCompletionsForPartialWordRange_inString_language_,
      );
  NSSpellServerDelegate.spellServer_checkGrammarInString_language_details_
      .implement(builder, spellServer_checkGrammarInString_language_details_);
  NSSpellServerDelegate
      .spellServer_checkString_offset_types_options_orthography_wordCount_
      .implement(
        builder,
        spellServer_checkString_offset_types_options_orthography_wordCount_,
      );
  NSSpellServerDelegate
      .spellServer_recordResponse_toCorrection_forWord_language_
      .implement(
        builder,
        spellServer_recordResponse_toCorrection_forWord_language_,
      );
  builder.addProtocol($protocol);
  return NSSpellServerDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}