)]}'
{
  "commit": "02bea03babeebb49198bfb45f2fed12a81c2e642",
  "tree": "e31082ab406f86ff14f3d4e4a19f6ace7fd8bb05",
  "parents": [
    "a4455febdef318395153612ab0489e96418ec51b"
  ],
  "author": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Wed Jan 04 18:52:54 2023 -0500"
  },
  "committer": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Thu Jan 05 18:54:28 2023 +0000"
  },
  "message": "gopls/internal/lsp/protocol: simplify ColumnMapper\n\nThis change decouples ColumnMapper from go/token.\nIts TokFile field is now unexported and fully\nencapsulated and will be removed in a follow-up;\nit serves only as a line-number table.\nColumnMapper now provides only mapping between\nbyte offsets and columns, in three different\nunits (UTF-8, UTF-16, and runes).\n\nThree operations that require both a Mapper and\na token.File--and require then to be consistent with\neach other--have been moved to ParsedGoFile:\n(Pos, PosRange, and RangeToSpanRange).\nThis is another step to keeping the use of token.Pos\nclose to its token.File or FileSet, and using\nbyte offsets and ColumnMappers more broadly.\n\nMappedRange now holds a ParsedGoFile and (internally)\na start/end Pos pair, making it self-contained for all\nconversions. (The File field is unfortunately public\nfor now due to one tricky use; fixing it would have\nexpanded this already large CL.)\nI\u0027m not sure whether MappedRange carries its weight;\nI think it might be clearer for all users to simply\nexpand it out (i.e. hold a ColumnMapper and two byte\noffsets), making one less creature in the zoo.\nNumerous calls to NewMappedRange followed by .Range()\nhave been reduced to pgf.PosRange().\n\nAlso:\n- New ColumnMapper methods:\n    OffsetSpan\n    OffsetPoint\n- safetoken.Offsets(start, end) is the plural of Offset(pos).\n- span.ToPosition renamed span.OffsetToLineCol8.\n- span.NewTokenFile inlined into sole caller.\n- avoid embedding of MappedRange, as it makes the references\n  hard to see. (Embedded fields are both a def and a ref but\n  gopls cross-references is confused by that.)\n- findLinksInString uses offsets now.\n\nChange-Id: I2c775e181e456604e2ce977d618b0f1ec8e76903\nReviewed-on: https://go-review.googlesource.com/c/tools/+/460615\nRun-TryBot: Alan Donovan \u003cadonovan@google.com\u003e\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Robert Findley \u003crfindley@google.com\u003e\ngopls-CI: kokoro \u003cnoreply+kokoro@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "61e868c5e1773c1643cd57ae9553cc8ac0077f37",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/cache/analysis.go",
      "new_id": "8bbe2ed213ef93fc1a71a36fc814987c93d7d26b",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/cache/analysis.go"
    },
    {
      "type": "modify",
      "old_id": "cfac5ffb1075d0344ef54f9402e4e865cea3b6b4",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/cache/check.go",
      "new_id": "c52a2f8f56c4451e92bedb9033b679479bed90cf",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/cache/check.go"
    },
    {
      "type": "modify",
      "old_id": "7ca4f078eff5688b83aca1b487eb3ae090b9320b",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/cache/errors.go",
      "new_id": "67771931bbf99c11f9c9fc761ec411b0dc695e82",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/cache/errors.go"
    },
    {
      "type": "modify",
      "old_id": "f79109a31d13df1dfbc46217370c713e8f498585",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/cache/load.go",
      "new_id": "b072aafd0a7aa58c8a6d2c195a4cfba82aa72be3",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/cache/load.go"
    },
    {
      "type": "modify",
      "old_id": "757bb5e8fcaab1b27f4fab11c27d124a4eff9a69",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/cache/mod.go",
      "new_id": "a3d207d6005f01b1d4d13a1c6e9ec4b026f9bfd8",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/cache/mod.go"
    },
    {
      "type": "modify",
      "old_id": "fa30df18e367d791067565380abccd6395a5052c",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/cache/mod_tidy.go",
      "new_id": "c9c02ca818ed0722730e6022fb78287eb3a112d7",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/cache/mod_tidy.go"
    },
    {
      "type": "modify",
      "old_id": "83f18dabee4032d189a0d03922c6aaba7a311304",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/cache/parse.go",
      "new_id": "7451cc3a6526baf33025893412b8f83e8857958a",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/cache/parse.go"
    },
    {
      "type": "modify",
      "old_id": "3aa74d067aef98916b6e33f183cd4488cd96cea6",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/cmd/cmd.go",
      "new_id": "c221913304122a5e87c83f9ba3ffe72b894262aa",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/cmd/cmd.go"
    },
    {
      "type": "modify",
      "old_id": "0767d439b4caf66c4a3752a971b27e9d4a2401e0",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/code_action.go",
      "new_id": "5e0a778d5b7f06e6ecfb80cfc2fee52d4b4f0660",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/code_action.go"
    },
    {
      "type": "modify",
      "old_id": "c967c1faa226aeebc9c841df2bd25cd53e22e441",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/completion.go",
      "new_id": "e443a3c57491a71c2f4613822b6a8cde906a71c4",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/completion.go"
    },
    {
      "type": "modify",
      "old_id": "d2ad4742b97e82a30a2bc08333169b4a47f945a5",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/definition.go",
      "new_id": "d83512a93e79408cd2a8c24def9c0f22a32a41c2",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/definition.go"
    },
    {
      "type": "modify",
      "old_id": "863c142852800c5a202a0bb73259ff749b5cf4b4",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/diagnostics.go",
      "new_id": "6ec7a0838327ac78f93248723162c85603a9c1ef",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/diagnostics.go"
    },
    {
      "type": "modify",
      "old_id": "4a2d828e995d17ae2a70064ac2ec4b9edd009a96",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/folding_range.go",
      "new_id": "86469d37bd9f09c7be77409f32ccd75e30ab24e2",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/folding_range.go"
    },
    {
      "type": "modify",
      "old_id": "011f0e44163f20f75d36034035588163b049eea3",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/link.go",
      "new_id": "e7bdb604662b1700f0c92a3bbb6360308793fb48",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/link.go"
    },
    {
      "type": "modify",
      "old_id": "78e180c71a0ad9a16cd60d9f19bd3b64b7bc3e85",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/protocol/span.go",
      "new_id": "160b925895a7320ca441bf85f5075ca80ee17249",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/protocol/span.go"
    },
    {
      "type": "modify",
      "old_id": "6f4e3ee2060dfe698d68b9ff4e86a770a231b50e",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/references.go",
      "new_id": "390e2908acb02db6471c748a7ab80f6237bcb2a5",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/references.go"
    },
    {
      "type": "modify",
      "old_id": "fa9c67515f851a166a02da7736199194a204f6ee",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/safetoken/safetoken.go",
      "new_id": "29cc1b1c664241608ea58258fa0aaa65c3ee7bae",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/safetoken/safetoken.go"
    },
    {
      "type": "modify",
      "old_id": "314f22407996c9b9e762e9d195bed8890d7f6bac",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/selection_range.go",
      "new_id": "b7a0cdb1d80b8f420672dc4010fb795c228100a9",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/selection_range.go"
    },
    {
      "type": "modify",
      "old_id": "4117eb70b82a3cbb8958be437ace965780fc62b2",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/semantic.go",
      "new_id": "728f61de7ab46805d2b19f8dd53007471626824f",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/semantic.go"
    },
    {
      "type": "modify",
      "old_id": "076aed0c3d797e56ce46da15759657b6869cdc76",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/call_hierarchy.go",
      "new_id": "cce8a1326c5f32ed487cbf31d5caf7d8eabcf991",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/call_hierarchy.go"
    },
    {
      "type": "modify",
      "old_id": "c87f41664dd935ff3c301c30ca0585635601118d",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/code_lens.go",
      "new_id": "f929256c273527a6cecf1973d1aa222e64d408f2",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/code_lens.go"
    },
    {
      "type": "modify",
      "old_id": "19d16a1bbc9015fb6945ad790ac3970aa696ca98",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/completion/completion.go",
      "new_id": "4d2da2e40e709ffd99b3432c29ef5dc04bcb4fcb",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/completion/completion.go"
    },
    {
      "type": "modify",
      "old_id": "70d98dfc839c76bc6d10617a60b6cfc99c79559e",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/completion/package.go",
      "new_id": "de2b75d436ced9cae5aff931baa7d6d483c5ce10",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/completion/package.go"
    },
    {
      "type": "modify",
      "old_id": "72877a38a35304fd5cc488588e0838ca5f172e1d",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/completion/util.go",
      "new_id": "4b6ec09a092b16fd283f06d6dab79e6bd5277676",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/completion/util.go"
    },
    {
      "type": "modify",
      "old_id": "0ac18e10390081263fdad14ca8d15d91529f3f90",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/extract.go",
      "new_id": "31a8598b118492ad4ce88c25c9b0a291ce459615",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/extract.go"
    },
    {
      "type": "modify",
      "old_id": "34a6fe8ce2622b3aa5ee63143d150e7884c50fbe",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/fix.go",
      "new_id": "873db7f94792d6018b43ef316b7466a9d8078b07",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/fix.go"
    },
    {
      "type": "modify",
      "old_id": "dacb5ae79f704f27d7711a728db904f406d3816a",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/folding_range.go",
      "new_id": "01107fd49b719a25e3bbcba49b89d83ce2774df1",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/folding_range.go"
    },
    {
      "type": "modify",
      "old_id": "6662137b5266f24a1e277a929651ea2c0dd8a6d3",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/format.go",
      "new_id": "a2722186a9f0a4482879f7b44b21157d050fec4b",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/format.go"
    },
    {
      "type": "modify",
      "old_id": "d073fffe7325de3354f2b64ba673fb1d971423be",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/highlight.go",
      "new_id": "9bd90e5b05e6f0144d19d77e6092804508079d47",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/highlight.go"
    },
    {
      "type": "modify",
      "old_id": "dd6ce4021ca5feaebbd3663b9de8ce7241cee4ba",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/hover.go",
      "new_id": "2cf369bb44aa74dba5f88583d2bee31332f27e3b",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/hover.go"
    },
    {
      "type": "modify",
      "old_id": "ad826da07a30b39c5213bd2e5bd63afd67719891",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/identifier.go",
      "new_id": "bfd853fd5c30a2af23d08943c432632c7b3056a8",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/identifier.go"
    },
    {
      "type": "modify",
      "old_id": "ade2f5fa70622788b280cad51cb156553ada67a3",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/inlay_hint.go",
      "new_id": "3958e4b89cfc7d23dc35a18783fe1b07beb13a4c",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/inlay_hint.go"
    },
    {
      "type": "modify",
      "old_id": "a1dcc5417a9d2bd50b83f05d532611ffa4550715",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/references.go",
      "new_id": "c7529e89e37b883446705a20cda10282690c5540",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/references.go"
    },
    {
      "type": "modify",
      "old_id": "37fb2d5570c32ea2f41281f9cc678ee9954e7e39",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/rename.go",
      "new_id": "8cb50e827966156063db9263cc1371450ee1ac66",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/rename.go"
    },
    {
      "type": "modify",
      "old_id": "3f12d90ad18d6b2eddfc039baf1ed408a9f3dec3",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/signature_help.go",
      "new_id": "a751b291051a0478513680f92345416071bbf2a8",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/signature_help.go"
    },
    {
      "type": "modify",
      "old_id": "ed8d9a45d68ed7d4689da061e5793ba0735c75cd",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/source_test.go",
      "new_id": "fccb91ed6381da7df3a47a0520239ad8d84878b8",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/source_test.go"
    },
    {
      "type": "modify",
      "old_id": "2568bd07e207d92883d4752389ec60ba958e120b",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/stub.go",
      "new_id": "0d94d4825da22962967a44cddc5a78a0b8bba159",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/stub.go"
    },
    {
      "type": "modify",
      "old_id": "face4c99ac2bd337f98e05be013eb6a79f9ba608",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/util.go",
      "new_id": "0b7f3e44e8ef4f91b5a6e027d580fdfc48dc91d7",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/util.go"
    },
    {
      "type": "modify",
      "old_id": "0b73c7494fc4c7502c043a0f589814c8eb488bd4",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/source/view.go",
      "new_id": "21e99697f4e876b72415e5bae9dc53c512291834",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/source/view.go"
    },
    {
      "type": "modify",
      "old_id": "623d2ce8bda8d7f795378e7b2ddc94c797574fad",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/work/completion.go",
      "new_id": "b3682e1f6657ee7a38290d3c69829279fdd9e3a7",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/work/completion.go"
    },
    {
      "type": "modify",
      "old_id": "641028b16e6b8187c52eff57d32a2f99c28c6fe9",
      "old_mode": 33188,
      "old_path": "gopls/internal/lsp/work/hover.go",
      "new_id": "a29d59ce2cd553c0775740e83606863ccedd8d5c",
      "new_mode": 33188,
      "new_path": "gopls/internal/lsp/work/hover.go"
    },
    {
      "type": "modify",
      "old_id": "b0169664919903a5799b7821130129f781292ffe",
      "old_mode": 33188,
      "old_path": "gopls/internal/regtest/misc/failures_test.go",
      "new_id": "f9965149957f7cace4d3952086714d30230fb635",
      "new_mode": 33188,
      "new_path": "gopls/internal/regtest/misc/failures_test.go"
    },
    {
      "type": "modify",
      "old_id": "0c24a2deeed5bf6beac66c0179ff9ae01bbf9e89",
      "old_mode": 33188,
      "old_path": "gopls/internal/span/span.go",
      "new_id": "36629f0f93031a96b9e63c154f15ebe369de0253",
      "new_mode": 33188,
      "new_path": "gopls/internal/span/span.go"
    },
    {
      "type": "modify",
      "old_id": "ca78d67800f0ea38c02ef5c1b0b8dc9640e47e40",
      "old_mode": 33188,
      "old_path": "gopls/internal/span/token.go",
      "new_id": "2e71cbac00a89d01cf51ca99b8f13ea2886ae0fe",
      "new_mode": 33188,
      "new_path": "gopls/internal/span/token.go"
    }
  ]
}
