)]}'
{
  "commit": "a1dceed95d7e9250bea950a2ed10173f43ab83f6",
  "tree": "63c75e5b302f6479575974f9f5caf4cf47ffc489",
  "parents": [
    "46c36977f213c961148a9455a5894f2e8c7ba722"
  ],
  "author": {
    "name": "Ömer Sinan Ağacan",
    "email": "omersa@google.com",
    "time": "Mon Nov 17 12:30:45 2025 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Nov 17 11:30:45 2025 +0000"
  },
  "message": "protoc_plugin refactors (#1082)\n\n- Move static method `FileGenerator._getDeclaredMixins` to the end of the file\n  as a top-level function.\n\n  This is a utility method but it came first in the class and it\u0027s quite large\n  (~90 lines). Move it to the end so that it will allow top-down reading of the\n  class and won\u0027t obstruct more important details like fields.\n\n- Refactor import prefix generation: currently if I\u0027m importing `container` in\n  `file`, I need to do `container.importPrefix(context: file)`. This is\n  confusing and it took me a while to figure out what it\u0027s doing: It\u0027s a method\n  on the container type but it modifies the file. Files can import, not\n  containers. So files should have import prefixes, not containers.\n\n  Move the method to `FileGenerator`. The code above now looks like\n  `file.importPrefix(container)`.\n\n  Also document the fact that just generating the import prefix for an imported\n  thing does not make it imported automatically. This is quite error prone, if\n  I call `file.importPrefix(container)` and use the prefix in e.g.\n  `EnumGenerator`, I need to make sure to update `FileGenerator` to actually\n  generate the import.\n\n  It would be good to refactor this so that just using an prefix is enough to\n  import it. But for now this part is not done.\n\n- Minor changes: use spread syntax instead of `[]..addAll(...)` and similar.\n  Add one line space between some of the fields.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ec85b5a4f4c552e542bde7527abada0a4c5a963c",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/names.dart",
      "new_id": "9ec31c59d5cc342e537cdd7782880c938a86169c",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/names.dart"
    },
    {
      "type": "modify",
      "old_id": "fc1d33c3db03f8dfeb9623292bf9c79180bf31c0",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/base_type.dart",
      "new_id": "995fecaafafc6685212306a0b564cba2fdad6ca9",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/base_type.dart"
    },
    {
      "type": "modify",
      "old_id": "fbcbefc311e8a709cdf2990760b2019ff2bbdec4",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/code_generator.dart",
      "new_id": "d1be4910e1544f297056388cd0c135d561fa16bb",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/code_generator.dart"
    },
    {
      "type": "modify",
      "old_id": "d6c0f88d3cae79b68095934ed90348cd59b3fb34",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/enum_generator.dart",
      "new_id": "acaff9d2cbd2be5d55e833cd06f16dce6c04d32d",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/enum_generator.dart"
    },
    {
      "type": "modify",
      "old_id": "261cf6aaf0b29185289763ef93bb5932f62c3e47",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/file_generator.dart",
      "new_id": "c85ae571ca854a970c288037ef9e0eaeec425a8a",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/file_generator.dart"
    },
    {
      "type": "modify",
      "old_id": "37852c2d01de92efd50c92575b3b5ca6cd14719e",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/grpc_generator.dart",
      "new_id": "0fc6255007fa03b9662384e1dd1ca6deebb331b4",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/grpc_generator.dart"
    },
    {
      "type": "modify",
      "old_id": "3639eba717462b69ea14e80597c6724ed0876f2f",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/message_generator.dart",
      "new_id": "737288a162c90fc0767ab9f57f8e4fea384c8f03",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/message_generator.dart"
    },
    {
      "type": "modify",
      "old_id": "7e37c217f2f82a5db2b225c72f05f414548456d6",
      "old_mode": 33188,
      "old_path": "protoc_plugin/lib/src/service_generator.dart",
      "new_id": "88dea5bfe76b883549bb55726157cdb1b6dec97e",
      "new_mode": 33188,
      "new_path": "protoc_plugin/lib/src/service_generator.dart"
    }
  ]
}
