This PR adds per-package server options to resolve #2455. It is based on the previous work in #2456, but takes a different approach: options are loaded for the specific file in the file worker when `print-paths` is called, instead of loading them in the watchdog with a separate Lake command. This change addresses review comments made in #2456. In doing so, it introduces two new Lake config fields: - `leanOptions`: `-D` flag options that are passed to both the language server and `lean` when building. - `moreServerOptions`: `-D` flag options that are passed to the language server. Since `print-paths` must also accept a file path to compute the options for that file, this PR is changing the API for `print-paths`. As there have been numerous complaints about the name `print-paths`, I also decided to change it to `setup-file` in this PR, since it would break compatibility with the old Lake API anyways. This PR deprecates the Lakefile field `moreServerArgs` in favor of `moreGlobalServerArgs`, as suggested in the review for #2456. Fixes #2455 --------- Co-authored-by: digama0 <mcarneir@andrew.cmu.edu>
40 lines
2.2 KiB
Text
40 lines
2.2 KiB
Text
{"textDocument": {"uri": "file:///infoIssues.lean"},
|
|
"position": {"line": 3, "character": 2}}
|
|
{"rendered":
|
|
"```lean\nx y : Nat\nh : x = y\nthis : y = x\n⊢ 0 + x = y + 0\n```",
|
|
"goals": ["x y : Nat\nh : x = y\nthis : y = x\n⊢ 0 + x = y + 0"]}
|
|
{"textDocument": {"uri": "file:///infoIssues.lean"},
|
|
"position": {"line": 13, "character": 33}}
|
|
{"rendered":
|
|
"```lean\np : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = 0 + (0 + Nat.succ n✝)\n```\n---\n```lean\np : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = 0 + Nat.succ n✝\n```\n---\n```lean\np : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = Nat.succ n✝\n```",
|
|
"goals":
|
|
["p : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = 0 + (0 + Nat.succ n✝)",
|
|
"p : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = 0 + Nat.succ n✝",
|
|
"p : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = Nat.succ n✝"]}
|
|
{"textDocument": {"uri": "file:///infoIssues.lean"},
|
|
"position": {"line": 13, "character": 36}}
|
|
{"rendered":
|
|
"```lean\np : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = 0 + (0 + Nat.succ n✝)\n```\n---\n```lean\np : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = 0 + Nat.succ n✝\n```",
|
|
"goals":
|
|
["p : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = 0 + (0 + Nat.succ n✝)",
|
|
"p : Prop\nn✝ : Nat\n⊢ Nat.succ n✝ = 0 + Nat.succ n✝"]}
|
|
{"textDocument": {"uri": "file:///infoIssues.lean"},
|
|
"position": {"line": 15, "character": 2}}
|
|
{"rendered": "```lean\ncase right\np : Prop\nx : Nat\n⊢ p\n```",
|
|
"goals": ["case right\np : Prop\nx : Nat\n⊢ p"]}
|
|
{"textDocument": {"uri": "file:///infoIssues.lean"},
|
|
"position": {"line": 25, "character": 35}}
|
|
{"rendered":
|
|
"```lean\np : Prop\nx y : Nat\n⊢ y + 1 = 0 + (0 + (y + 1))\n```\n---\n```lean\np : Prop\nx y : Nat\n⊢ y + 1 = 0 + (y + 1)\n```",
|
|
"goals":
|
|
["p : Prop\nx y : Nat\n⊢ y + 1 = 0 + (0 + (y + 1))",
|
|
"p : Prop\nx y : Nat\n⊢ y + 1 = 0 + (y + 1)"]}
|
|
{"textDocument": {"uri": "file:///infoIssues.lean"},
|
|
"position": {"line": 25, "character": 9}}
|
|
{"rendered":
|
|
"```lean\np : Prop\nx y : Nat\n⊢ y + 1 = 0 + (0 + (0 + (y + 1)))\n```",
|
|
"goals": ["p : Prop\nx y : Nat\n⊢ y + 1 = 0 + (0 + (0 + (y + 1)))"]}
|
|
{"textDocument": {"uri": "file:///infoIssues.lean"},
|
|
"position": {"line": 27, "character": 2}}
|
|
{"rendered": "```lean\ncase right\np : Prop\nx : Nat\n⊢ p\n```",
|
|
"goals": ["case right\np : Prop\nx : Nat\n⊢ p"]}
|