body method

  1. @override
String body(
  1. String baseName,
  2. String className
)
override

Defines the actual body code. path is passed relative to lib, baseName is the filename, and className is the filename converted to Pascal case.

実際の本体コードを定義します。pathlibからの相対パス、baseNameにファイル名が渡され、classNameにファイル名をパスカルケースに変換した値が渡されます。

Implementation

@override
String body(String baseName, String className) {
  return r"""
[theme_design.md](mdc:documents/designs/theme_design.md)に記載されている`Theme設計書`から[theme.dart](mdc:lib/theme.dart)を編集
[theme_design.md](mdc:documents/designs/theme_design.md)が存在しない場合は絶対に実施しない

1. `Theme設計書`で定義されている内容を元に[theme.dart](mdc:lib/theme.dart)を書き換える
  - [theme.dart](mdc:lib/theme.dart)の`AppThemeData`を変更
      - `ColorMode`に応じて下記の設定を追加
          - `DarkMode`
              - `themeMode`: ThemeMode.dark
              - `brightness`: Brightness.dark
              - `statusBarBrightnessOnAndroid`: Brightness.dark
              - `statusBarBrightnessOnIOS`: Brightness.dark
          - `LightMode`
              - `themeMode`: ThemeMode.light
              - `brightness`: Brightness.light
              - `statusBarBrightnessOnAndroid`: Brightness.light
              - `statusBarBrightnessOnIOS`: Brightness.light
          - `SystemSettingDependent`
              - `themeMode`: 設定しない
              - `brightness`: 設定しない
              - `statusBarBrightnessOnAndroid`: 設定しない
              - `statusBarBrightnessOnIOS`: 設定しない
  - 例:
    ```dart
    // Flutter imports:
    import 'package:flutter/material.dart';

    // Package imports:
    import 'package:masamune/masamune.dart';

    part 'theme.theme.dart';

    /// App Theme.
    ///
    /// ```dart
    /// theme.color.primary   // Primary color.
    /// theme.text.bodyMedium // Medium body text style.
    /// theme.asset.xxx       // xxx image.
    /// theme.font.xxx        // xxx font.
    /// ```
    @appTheme
    final theme = AppThemeData(
      // TODO: Set the design.
      background: Color(0xFF212121), // `ColorMode`が`SystemSettingDependent`の場合は記載しない
      onBackground: Color(0xFFF7F7F7), // `ColorMode`が`SystemSettingDependent`の場合は記載しない
      surface: Color(0xFF474747), // `ColorMode`が`SystemSettingDependent`の場合は記載しない
      onSurface: Color(0xFFF7F7F7), // `ColorMode`が`SystemSettingDependent`の場合は記載しない
      themeMode: ThemeMode.dark, // `ColorMode`が`SystemSettingDependent`の場合は記載しない
      brightness: Brightness.dark, // `ColorMode`が`SystemSettingDependent`の場合は記載しない
      statusBarBrightnessOnAndroid: Brightness.dark, // `ColorMode`が`SystemSettingDependent`の場合は記載しない
      statusBarBrightnessOnIOS: Brightness.dark, // `ColorMode`が`SystemSettingDependent`の場合は記載しない
      primary: Color(0xFF2196F3),
      onPrimary: Color(0xFFF7F7F7),
      secondary: Color(0xFF00BCD4),
      onSecondary: Color(0xFFF7F7F7),
      tertiary: Color(0xFF4CAF50),
      onTertiary: Color(0xFFF7F7F7),
      disabled: Color(0xFF9E9E9E),
      onDisabled: Color(0xFFF7F7F7),
      weak: Color(0xFF9E9E9E),
      onWeak: Color(0xFFF7F7F7),
      outline: Color(0xFF9E9E9E),
      error: Color(0xFFF44336),
      onError: Color(0xFFF7F7F7),
      warning: Color(0xFFFFC107),
      onWarning: Color(0xFFF7F7F7),
      info: Color(0xFF2196F3),
      onInfo: Color(0xFFF7F7F7),
      success: Color(0xFF4CAF50),
      onSuccess: Color(0xFFF7F7F7),
    );
    ```
2. 下記コマンドを実行して残りのファイルを自動生成

```bash
katana code generate
```
""";
}