🏭

【Flutter】 freezedのテンプレ実装(コードスニペット)の登録

2024/05/13に公開

概要

freezedを使う際に、riverpodやstatelessクラスのような、補完機能?がない。

なので、「fr」とタイプしたら、freezedのテンプレクラスが生成されるよう対応する。

(AndroidStudioのLiveテンプレート機能を利用)

環境

  • freezed v2.5.2

対応

1 Live Templates 画面を開く

[Android Studio]->[Settings]を開き、
[Live Templates]を開く(Editorタブ内にある)

2 Flutterを選択し、「+」ボタンで項目を追加

3 補完するキー名を登録

  • fr と登録
  • テンプレの説明文 ( Freezed Template class 、と記載)

4 テンプレートコードを登録

import 'package:freezed_annotation/freezed_annotation.dart';

part '$FILE_NAME$.freezed.dart';
part '$FILE_NAME$.g.dart';


class $CLASS_NAME$ with _$$$CLASS_NAME$ {
  const factory $CLASS_NAME$({
    required String hogeString,
  }) = _$CLASS_NAME$;

  const $CLASS_NAME$._();

  factory $CLASS_NAME$.fromJson(Map<String, dynamic> json) =>
      _$$$CLASS_NAME$FromJson(json);
}

5 対象言語を設定

  • Define」(※Changeボタンの箇所)をタップし、「Dart -> Top Level」にチェック

動作確認

適当なdartファイル内で、

  • fr と打って、サジェストが出ること
  • サジェストをEnterで、freezedのテンプレクラスが作成されること
  • ↓コード生成コマンド後に、エラー解消してビルド可能であること
flutter pub run build_runner build --delete-conflicting-outputs

Discussion