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>
275 lines
12 KiB
Text
275 lines
12 KiB
Text
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 11, "character": 2}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 5, "character": 2}, "end": {"line": 5, "character": 6}},
|
|
"targetRange":
|
|
{"start": {"line": 5, "character": 2}, "end": {"line": 5, "character": 6}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 11, "character": 2}, "end": {"line": 11, "character": 6}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 11, "character": 6}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 5, "character": 2}, "end": {"line": 5, "character": 6}},
|
|
"targetRange":
|
|
{"start": {"line": 5, "character": 2}, "end": {"line": 5, "character": 6}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 11, "character": 2}, "end": {"line": 11, "character": 6}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 14, "character": 2}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 6, "character": 2}, "end": {"line": 6, "character": 6}},
|
|
"targetRange":
|
|
{"start": {"line": 6, "character": 2}, "end": {"line": 6, "character": 6}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 14, "character": 2}, "end": {"line": 14, "character": 6}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 16, "character": 2}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 2, "character": 10}, "end": {"line": 2, "character": 13}},
|
|
"targetRange":
|
|
{"start": {"line": 2, "character": 0}, "end": {"line": 2, "character": 19}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 16, "character": 2}, "end": {"line": 16, "character": 5}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 20, "character": 11}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 2, "character": 10}, "end": {"line": 2, "character": 13}},
|
|
"targetRange":
|
|
{"start": {"line": 2, "character": 0}, "end": {"line": 2, "character": 19}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 20, "character": 8},
|
|
"end": {"line": 20, "character": 11}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 28, "character": 12}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 22, "character": 10},
|
|
"end": {"line": 22, "character": 27}},
|
|
"targetRange":
|
|
{"start": {"line": 22, "character": 0}, "end": {"line": 23, "character": 9}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 28, "character": 10},
|
|
"end": {"line": 28, "character": 27}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 30, "character": 2}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 23, "character": 2}, "end": {"line": 23, "character": 3}},
|
|
"targetRange":
|
|
{"start": {"line": 23, "character": 2}, "end": {"line": 23, "character": 3}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 30, "character": 2}, "end": {"line": 30, "character": 3}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 34, "character": 14}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 9, "character": 4}, "end": {"line": 9, "character": 10}},
|
|
"targetRange":
|
|
{"start": {"line": 9, "character": 0}, "end": {"line": 17, "character": 1}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 34, "character": 14},
|
|
"end": {"line": 34, "character": 20}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 43, "character": 7}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 36, "character": 16},
|
|
"end": {"line": 36, "character": 24}},
|
|
"targetRange":
|
|
{"start": {"line": 36, "character": 0}, "end": {"line": 36, "character": 39}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 43, "character": 7},
|
|
"end": {"line": 43, "character": 11}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 43, "character": 7}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 38, "character": 26},
|
|
"end": {"line": 38, "character": 38}},
|
|
"targetRange":
|
|
{"start": {"line": 38, "character": 22},
|
|
"end": {"line": 40, "character": 78}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 43, "character": 7},
|
|
"end": {"line": 43, "character": 11}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 48, "character": 28}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 46, "character": 4}, "end": {"line": 46, "character": 7}},
|
|
"targetRange":
|
|
{"start": {"line": 46, "character": 0}, "end": {"line": 46, "character": 23}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 48, "character": 28},
|
|
"end": {"line": 48, "character": 29}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 54, "character": 2}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 52, "character": 6}, "end": {"line": 52, "character": 7}},
|
|
"targetRange":
|
|
{"start": {"line": 52, "character": 6}, "end": {"line": 52, "character": 7}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 54, "character": 2}, "end": {"line": 54, "character": 3}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 54, "character": 6}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 57, "character": 2}, "end": {"line": 57, "character": 3}},
|
|
"targetRange":
|
|
{"start": {"line": 57, "character": 2}, "end": {"line": 57, "character": 3}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 54, "character": 6}, "end": {"line": 54, "character": 7}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 60, "character": 7}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 59, "character": 0}, "end": {"line": 59, "character": 29}},
|
|
"targetRange":
|
|
{"start": {"line": 59, "character": 0}, "end": {"line": 59, "character": 29}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 60, "character": 7},
|
|
"end": {"line": 60, "character": 11}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 87, "character": 16}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 64, "character": 2}, "end": {"line": 64, "character": 5}},
|
|
"targetRange":
|
|
{"start": {"line": 64, "character": 2}, "end": {"line": 64, "character": 5}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 87, "character": 7},
|
|
"end": {"line": 87, "character": 18}}},
|
|
{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 80, "character": 0}, "end": {"line": 80, "character": 8}},
|
|
"targetRange":
|
|
{"start": {"line": 80, "character": 0}, "end": {"line": 80, "character": 27}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 87, "character": 7},
|
|
"end": {"line": 87, "character": 18}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 87, "character": 12}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 64, "character": 2}, "end": {"line": 64, "character": 5}},
|
|
"targetRange":
|
|
{"start": {"line": 64, "character": 2}, "end": {"line": 64, "character": 5}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 87, "character": 7},
|
|
"end": {"line": 87, "character": 15}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 89, "character": 13}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 64, "character": 2}, "end": {"line": 64, "character": 5}},
|
|
"targetRange":
|
|
{"start": {"line": 64, "character": 2}, "end": {"line": 64, "character": 5}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 89, "character": 8},
|
|
"end": {"line": 89, "character": 16}}},
|
|
{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 80, "character": 0}, "end": {"line": 80, "character": 8}},
|
|
"targetRange":
|
|
{"start": {"line": 80, "character": 0}, "end": {"line": 80, "character": 27}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 89, "character": 8},
|
|
"end": {"line": 89, "character": 16}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 91, "character": 13}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 65, "character": 2}, "end": {"line": 65, "character": 6}},
|
|
"targetRange":
|
|
{"start": {"line": 65, "character": 2}, "end": {"line": 65, "character": 6}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 91, "character": 8},
|
|
"end": {"line": 91, "character": 17}}},
|
|
{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 80, "character": 0}, "end": {"line": 80, "character": 8}},
|
|
"targetRange":
|
|
{"start": {"line": 80, "character": 0}, "end": {"line": 80, "character": 27}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 91, "character": 8},
|
|
"end": {"line": 91, "character": 17}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 95, "character": 13}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 64, "character": 2}, "end": {"line": 64, "character": 5}},
|
|
"targetRange":
|
|
{"start": {"line": 64, "character": 2}, "end": {"line": 64, "character": 5}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 95, "character": 8},
|
|
"end": {"line": 95, "character": 16}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 99, "character": 13}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 68, "character": 2}, "end": {"line": 68, "character": 5}},
|
|
"targetRange":
|
|
{"start": {"line": 68, "character": 2}, "end": {"line": 68, "character": 5}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 99, "character": 8},
|
|
"end": {"line": 99, "character": 16}}},
|
|
{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 81, "character": 0}, "end": {"line": 81, "character": 8}},
|
|
"targetRange":
|
|
{"start": {"line": 81, "character": 0}, "end": {"line": 81, "character": 24}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 99, "character": 8},
|
|
"end": {"line": 99, "character": 16}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 103, "character": 13}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 73, "character": 4}, "end": {"line": 73, "character": 12}},
|
|
"targetRange":
|
|
{"start": {"line": 73, "character": 0}, "end": {"line": 74, "character": 12}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 103, "character": 8},
|
|
"end": {"line": 103, "character": 16}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 108, "character": 13}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 77, "character": 2}, "end": {"line": 77, "character": 5}},
|
|
"targetRange":
|
|
{"start": {"line": 77, "character": 2}, "end": {"line": 77, "character": 5}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 108, "character": 8},
|
|
"end": {"line": 108, "character": 16}}},
|
|
{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 83, "character": 0}, "end": {"line": 83, "character": 8}},
|
|
"targetRange":
|
|
{"start": {"line": 83, "character": 0}, "end": {"line": 83, "character": 41}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 108, "character": 8},
|
|
"end": {"line": 108, "character": 16}}},
|
|
{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 80, "character": 0}, "end": {"line": 80, "character": 8}},
|
|
"targetRange":
|
|
{"start": {"line": 80, "character": 0}, "end": {"line": 80, "character": 27}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 108, "character": 8},
|
|
"end": {"line": 108, "character": 16}}}]
|
|
{"textDocument": {"uri": "file:///goTo.lean"},
|
|
"position": {"line": 112, "character": 7}}
|
|
[{"targetUri": "file:///goTo.lean",
|
|
"targetSelectionRange":
|
|
{"start": {"line": 9, "character": 4}, "end": {"line": 9, "character": 10}},
|
|
"targetRange":
|
|
{"start": {"line": 9, "character": 0}, "end": {"line": 17, "character": 1}},
|
|
"originSelectionRange":
|
|
{"start": {"line": 112, "character": 4},
|
|
"end": {"line": 112, "character": 10}}}]
|