Extends Lean's incremental reporting and reuse between commands into various steps inside declarations: * headers and bodies of each (mutual) definition/theorem * `theorem ... := by` for each contained tactic step, including recursively inside supported combinators currently consisting of * `·` (cdot), `case`, `next` * `induction`, `cases` * macros such as `next` unfolding to the above  *Incremental reuse* means not recomputing any such steps if they are not affected by a document change. *Incremental reporting* includes the parts seen in the recording above: the progress bar and messages. Other language server features such as hover etc. are *not yet* supported incrementally, i.e. they are shown only when the declaration has been fully processed as before. --------- Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
55 lines
1.7 KiB
Text
55 lines
1.7 KiB
Text
b 0
|
|
b 1
|
|
b 2
|
|
b 2.5
|
|
t 0
|
|
t 1
|
|
t 2
|
|
{"version": 3,
|
|
"uri": "file:///incrementalTactic.lean",
|
|
"diagnostics":
|
|
[{"source": "Lean 4",
|
|
"severity": 1,
|
|
"range":
|
|
{"start": {"line": 4, "character": 4}, "end": {"line": 4, "character": 13}},
|
|
"message":
|
|
"tactic 'introN' failed, insufficient number of binders\na n : Nat\n⊢ True",
|
|
"fullRange":
|
|
{"start": {"line": 4, "character": 4}, "end": {"line": 4, "character": 13}}},
|
|
{"source": "Lean 4",
|
|
"severity": 1,
|
|
"range":
|
|
{"start": {"line": 2, "character": 22}, "end": {"line": 3, "character": 0}},
|
|
"message": "unsolved goals\nthis : Nat → Nat → True\n⊢ True",
|
|
"fullRange":
|
|
{"start": {"line": 2, "character": 22},
|
|
"end": {"line": 10, "character": 11}}}]}
|
|
{"version": 1,
|
|
"uri": "file:///incrementalTactic.lean",
|
|
"diagnostics":
|
|
[{"source": "Lean 4",
|
|
"severity": 1,
|
|
"range":
|
|
{"start": {"line": 1, "character": 38}, "end": {"line": 4, "character": 3}},
|
|
"message": "unexpected token '/-!'; expected ')', '_', identifier or term",
|
|
"fullRange":
|
|
{"start": {"line": 1, "character": 38},
|
|
"end": {"line": 4, "character": 3}}}]}
|
|
{"version": 1,
|
|
"uri": "file:///incrementalTactic.lean",
|
|
"diagnostics":
|
|
[{"source": "Lean 4",
|
|
"severity": 1,
|
|
"range":
|
|
{"start": {"line": 2, "character": 9}, "end": {"line": 2, "character": 11}},
|
|
"message": "unknown identifier 'no'",
|
|
"fullRange":
|
|
{"start": {"line": 2, "character": 9}, "end": {"line": 2, "character": 11}}},
|
|
{"source": "Lean 4",
|
|
"severity": 1,
|
|
"range":
|
|
{"start": {"line": 3, "character": 9}, "end": {"line": 3, "character": 16}},
|
|
"message": "unsolved goals\n⊢ Nat",
|
|
"fullRange":
|
|
{"start": {"line": 3, "character": 9},
|
|
"end": {"line": 3, "character": 16}}}]}
|