)]}'
{
  "commit": "c084ccd037399473e3c88ad79a48e937049cbf7c",
  "tree": "d1353cf3dfb44db468ab542946ed1132c98c7e92",
  "parents": [
    "328a91696b1f6ea03b581dd144eef4c8d861e441"
  ],
  "author": {
    "name": "Natalie Weizenbaum",
    "email": "nweiz@google.com",
    "time": "Thu Dec 20 14:34:28 2018 -0800"
  },
  "committer": {
    "name": "Natalie Weizenbaum",
    "email": "nweiz@google.com",
    "time": "Thu Dec 20 14:34:28 2018 -0800"
  },
  "message": "Improve span highlighting\n\n* Fully highlights multiline spans.\n* Includes line numbers.\n* Uses Unicode glyphs for highlighting when available.\n* Includes context after the last line of the span for a\n  manually-constructed SourceSpanWithContext.\n\nThis draws heavy inspiration from Rust\u0027s multiline error highlighting.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "53a700cf1c78e265cd41a3eb51ac7205ec457c64",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/CHANGELOG.md",
      "new_id": "2248a3937b9841e691f227e910b6b0430067d4dc",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "b9afab0db22a01b0bb0326382ee01801b6097948",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/lib/src/colors.dart",
      "new_id": "2931eea9ea10822a215d68024694ca479c458da0",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/lib/src/colors.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bc0fe69818806e3263e4442aa32ffce786a3a9d9",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/lib/src/highlighter.dart"
    },
    {
      "type": "modify",
      "old_id": "19655a54a96c2bc8a474cd06c500dcb8382540ff",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/lib/src/span.dart",
      "new_id": "57ffe79cb5a52ebb8d40e342c5a930ec1be6d09b",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/lib/src/span.dart"
    },
    {
      "type": "modify",
      "old_id": "1f7799d671a54660c1014e6faa10cf361320992e",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/lib/src/span_mixin.dart",
      "new_id": "d8ac8f2ba62a820ac24d4c260f21af8ecadeca4e",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/lib/src/span_mixin.dart"
    },
    {
      "type": "modify",
      "old_id": "69385476caaf64ad550335b0d2e893a575114fd3",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/lib/src/utils.dart",
      "new_id": "228b240e0083a1f890be614db4a762c2151f780b",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/lib/src/utils.dart"
    },
    {
      "type": "modify",
      "old_id": "1d5321007747bbd93406938cf0ed2e977b026cdc",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/pubspec.yaml",
      "new_id": "ebd3a72a46f6cad2a63557eee9fa25c997e50371",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "ac8334bd5fefa3bdfd497d293a278be8fa0bb314",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/test/highlight_test.dart",
      "new_id": "4eceaa823e182ac97b058bb7be186ac86b77a3db",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/test/highlight_test.dart"
    },
    {
      "type": "modify",
      "old_id": "b7637cf7c58bcf67fd209045865735f6f8ef551f",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/test/span_test.dart",
      "new_id": "99895162a9a1c428a8dfcf10199185ad9972565f",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/test/span_test.dart"
    },
    {
      "type": "modify",
      "old_id": "2a86cc070f77654450ca504fb779545eb9c4b996",
      "old_mode": 33188,
      "old_path": "pkgs/source_span/test/utils_test.dart",
      "new_id": "a8146e33bb89c42998ba12b61b57d34bf25c4921",
      "new_mode": 33188,
      "new_path": "pkgs/source_span/test/utils_test.dart"
    }
  ]
}
