)]}'
{
  "commit": "6a8222ee2526b2e78253a6ba6ca3a1a4c44ae898",
  "tree": "beb81acfce7b27cfc2dfe7f707aaff8f05049337",
  "parents": [
    "201d438bced1e430169c2aca60ef39df08c26a7f"
  ],
  "author": {
    "name": "Heschi Kreinick",
    "email": "heschi@google.com",
    "time": "Tue Sep 01 19:23:11 2020 -0400"
  },
  "committer": {
    "name": "Heschi Kreinick",
    "email": "heschi@google.com",
    "time": "Wed Sep 09 20:53:33 2020 +0000"
  },
  "message": "gopls/doc: generate settings JSON, docs\n\ngopls has many settings. We want to automatically generate\ndocumentation, and we want to allow clients to perform their own\nvalidation if they so desire.\n\nUsing all three of AST, type information, and reflection, generate a\nJSON description of the settings and their default values. Add a gopls\ncommand that prints it. Add a documentation generator that uses it to\nwrite settings.md.\n\nI assumed that everything not explicitly documented was experimental,\nand moved it into that section. I also moved expandWorkspaceToModule to\nexperimental; I hope it\u0027s not long for this world, personally.\n\nAlong the way, rename many fields, make the enum matching case\ninsensitive, and add a stringer call so that the defaults print nicely.\n\nFixes golang/go#33544.\n\nChange-Id: Ibb652002933e355ed3c6038d6ca48345b39b3025\nReviewed-on: https://go-review.googlesource.com/c/tools/+/252322\nRun-TryBot: Heschi Kreinick \u003cheschi@google.com\u003e\nTryBot-Result: Gobot Gobot \u003cgobot@golang.org\u003e\nReviewed-by: Rebecca Stambler \u003crstambler@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5948101c8902a20c7c996210ff6a63addf6fad28",
      "new_mode": 33188,
      "new_path": "gopls/doc/generate.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a165ea608f28792c87613fc122410b0bb668dbef",
      "new_mode": 33188,
      "new_path": "gopls/doc/generate_test.go"
    },
    {
      "type": "modify",
      "old_id": "79ed3d2dc9d247de602950c7a3fcc858bb271b28",
      "old_mode": 33188,
      "old_path": "gopls/doc/settings.md",
      "new_id": "c8b12993db9a4c726d858d48e5cc19aca8137d51",
      "new_mode": 33188,
      "new_path": "gopls/doc/settings.md"
    },
    {
      "type": "modify",
      "old_id": "f46a93f446e9ebc7755316546864c9bd5cffcb68",
      "old_mode": 33188,
      "old_path": "gopls/internal/hooks/analysis.go",
      "new_id": "2f263c76be9eb8bd58315b13bb62d309e690f3ea",
      "new_mode": 33188,
      "new_path": "gopls/internal/hooks/analysis.go"
    },
    {
      "type": "modify",
      "old_id": "feceea3d9a6e23c9243617cb453ac8928e5ad5cd",
      "old_mode": 33188,
      "old_path": "gopls/test/gopls_test.go",
      "new_id": "5f43202ace7b95b7b7e5af557c6c8541366c8160",
      "new_mode": 33188,
      "new_path": "gopls/test/gopls_test.go"
    },
    {
      "type": "modify",
      "old_id": "bfb68ab69edc386fc3b1684650436386564ad130",
      "old_mode": 33188,
      "old_path": "internal/lsp/cache/view.go",
      "new_id": "964dba17baf9f19c3558d87f5f0103baf4a1e105",
      "new_mode": 33188,
      "new_path": "internal/lsp/cache/view.go"
    },
    {
      "type": "modify",
      "old_id": "3d80051ca982cb4c970712bb5b62e4d37be43561",
      "old_mode": 33188,
      "old_path": "internal/lsp/cmd/cmd.go",
      "new_id": "35fea61e8eb340937d8fc4bb6b2095ec6d0b15fa",
      "new_mode": 33188,
      "new_path": "internal/lsp/cmd/cmd.go"
    },
    {
      "type": "modify",
      "old_id": "8c013dec93fbc2e2c78b7e282bb3e7715684460c",
      "old_mode": 33188,
      "old_path": "internal/lsp/cmd/info.go",
      "new_id": "2884b8922035f86e559658d29dfed9fb76d937bc",
      "new_mode": 33188,
      "new_path": "internal/lsp/cmd/info.go"
    },
    {
      "type": "modify",
      "old_id": "558344d68ca28221c3ac5460a295925019bd8161",
      "old_mode": 33188,
      "old_path": "internal/lsp/code_lens.go",
      "new_id": "b9891abefb1387f575a4ae6db21981ee713fc490",
      "new_mode": 33188,
      "new_path": "internal/lsp/code_lens.go"
    },
    {
      "type": "modify",
      "old_id": "c8992f567b294fe532ccddaf62dd586b6bc597fb",
      "old_mode": 33188,
      "old_path": "internal/lsp/completion_test.go",
      "new_id": "7c6df27e418454f7e6ee4bdf1f3e5e6c97d9602c",
      "new_mode": 33188,
      "new_path": "internal/lsp/completion_test.go"
    },
    {
      "type": "modify",
      "old_id": "57b4e95453ccb3bc6efc23e2087912e5f2c81d95",
      "old_mode": 33188,
      "old_path": "internal/lsp/mod/mod_test.go",
      "new_id": "4c17deceb797078534af3b9e9d5fd2726ef56cc0",
      "new_mode": 33188,
      "new_path": "internal/lsp/mod/mod_test.go"
    },
    {
      "type": "modify",
      "old_id": "9ae9e666d17522fd587d0ad2fbb6c0d87c3b8f9f",
      "old_mode": 33188,
      "old_path": "internal/lsp/source/completion/completion.go",
      "new_id": "f1e16a802ca928fc55847e43138ed1d1cfb7e5ef",
      "new_mode": 33188,
      "new_path": "internal/lsp/source/completion/completion.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f963ffceadd343b8c7d9576b6c3907eb85501a9c",
      "new_mode": 33188,
      "new_path": "internal/lsp/source/enums_string.go"
    },
    {
      "type": "modify",
      "old_id": "310bac30bf73b8ea10ce34cc8c9b6a4d57ffc78c",
      "old_mode": 33188,
      "old_path": "internal/lsp/source/format.go",
      "new_id": "adb09e93fa384d879aefaea89d7ee3eac475b872",
      "new_mode": 33188,
      "new_path": "internal/lsp/source/format.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "887fc4e857e41b8adaec903b00fb67b5be2d62a2",
      "new_mode": 33188,
      "new_path": "internal/lsp/source/genopts/generate.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "51d7a63a18620c723d8d86789c8b41a1974396aa",
      "new_mode": 33188,
      "new_path": "internal/lsp/source/genopts/generate_test.go"
    },
    {
      "type": "modify",
      "old_id": "dd026cbd8d8cdbf435e04c4627275899b1d0d8ec",
      "old_mode": 33188,
      "old_path": "internal/lsp/source/options.go",
      "new_id": "aeba4603ef2752542917aeb6ebade0d198f9b3d1",
      "new_mode": 33188,
      "new_path": "internal/lsp/source/options.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7007fb2921c3eaa8af8ee058146c0fdc9423d078",
      "new_mode": 33261,
      "new_path": "internal/lsp/source/options_json.go"
    },
    {
      "type": "modify",
      "old_id": "b16dceeaf30025bd3e8b7b7ac3aaf1abc438d716",
      "old_mode": 33188,
      "old_path": "internal/lsp/source/source_test.go",
      "new_id": "c35e9160fbeb4e4cacb5a2138e7a5919072b30c2",
      "new_mode": 33188,
      "new_path": "internal/lsp/source/source_test.go"
    },
    {
      "type": "modify",
      "old_id": "e463491cb0376fe0d9e7e976bcdfa22bc4f2fb15",
      "old_mode": 33188,
      "old_path": "internal/lsp/source/view.go",
      "new_id": "34e6b317ec94087acd217c344b1929de326e5e7f",
      "new_mode": 33188,
      "new_path": "internal/lsp/source/view.go"
    },
    {
      "type": "modify",
      "old_id": "f358fc50d4a956ff5531e8883ed0d5a95ead31b3",
      "old_mode": 33188,
      "old_path": "internal/lsp/tests/tests.go",
      "new_id": "7a9d582a2f7df0a72e199fc9eef0a07f256723b7",
      "new_mode": 33188,
      "new_path": "internal/lsp/tests/tests.go"
    },
    {
      "type": "modify",
      "old_id": "fbef83594df06c755dffb9c8d37bd01822e1ed18",
      "old_mode": 33188,
      "old_path": "internal/lsp/tests/util.go",
      "new_id": "83a204d0ac6dbf61049a68b48143a714fa923edb",
      "new_mode": 33188,
      "new_path": "internal/lsp/tests/util.go"
    }
  ]
}
