This commit fixes bug reported by Patrick Massot. It happened when using `macro_rules` and `elab_rules` for the same `SyntaxNodeKind`. It also fixes missing error messages when there is more than one elaboration functions and there is `abortTactic` exception. Remark: this commit also changes the evaluation order. Macros are now tried before elaboration rules. The motivation is that macros are already applied before elaboration functions in the term elaborator.
230 lines
10 KiB
Text
230 lines
10 KiB
Text
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 3, "character": 8}}
|
||
{"range":
|
||
{"start": {"line": 3, "character": 8}, "end": {"line": 3, "character": 18}},
|
||
"contents": {"value": "```lean\nTrue.intro : True\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 7, "character": 8}}
|
||
{"range":
|
||
{"start": {"line": 7, "character": 8}, "end": {"line": 7, "character": 18}},
|
||
"contents": {"value": "```lean\nTrue.intro : True\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 12, "character": 4}}
|
||
{"range":
|
||
{"start": {"line": 12, "character": 4}, "end": {"line": 12, "character": 12}},
|
||
"contents": {"value": "```lean\nNat.zero : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 21, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 21, "character": 2}, "end": {"line": 21, "character": 23}},
|
||
"contents": {"value": "My tactic ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 21, "character": 8}}
|
||
{"range":
|
||
{"start": {"line": 21, "character": 2}, "end": {"line": 21, "character": 23}},
|
||
"contents": {"value": "My tactic ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 21, "character": 13}}
|
||
{"range":
|
||
{"start": {"line": 21, "character": 13}, "end": {"line": 21, "character": 23}},
|
||
"contents": {"value": "```lean\nTrue.intro : True\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 31, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 31, "character": 2}, "end": {"line": 31, "character": 23}},
|
||
"contents": {"value": "My way better tactic ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 39, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 39, "character": 2}, "end": {"line": 39, "character": 23}},
|
||
"contents": {"value": "My way better tactic ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 46, "character": 7}}
|
||
{"range":
|
||
{"start": {"line": 46, "character": 7}, "end": {"line": 46, "character": 15}},
|
||
"contents":
|
||
{"value": "```lean\n1 : Nat\n```\n***\nMy notation ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 53, "character": 7}}
|
||
{"range":
|
||
{"start": {"line": 53, "character": 7}, "end": {"line": 53, "character": 15}},
|
||
"contents":
|
||
{"value": "```lean\nNat\n```\n***\nMy way better notation ",
|
||
"kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 63, "character": 7}}
|
||
{"range":
|
||
{"start": {"line": 63, "character": 7}, "end": {"line": 63, "character": 16}},
|
||
"contents":
|
||
{"value": "```lean\nNat\n```\n***\nMy ultimate notation ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 70, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 70, "character": 0}, "end": {"line": 70, "character": 7}},
|
||
"contents": {"value": "My command ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 77, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 77, "character": 0}, "end": {"line": 77, "character": 7}},
|
||
"contents": {"value": "My way better command ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 85, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 85, "character": 0}, "end": {"line": 85, "character": 8}},
|
||
"contents": {"value": "My ultimate command ", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 89, "character": 10}}
|
||
null
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 93, "character": 8}}
|
||
{"range":
|
||
{"start": {"line": 93, "character": 8}, "end": {"line": 93, "character": 10}},
|
||
"contents":
|
||
{"value": "```lean\nid.{0} : ∀ {α : Prop}, α → α\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 93, "character": 10}}
|
||
{"range":
|
||
{"start": {"line": 93, "character": 8}, "end": {"line": 93, "character": 21}},
|
||
"contents": {"value": "```lean\nTrue\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 100, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 100, "character": 2}, "end": {"line": 100, "character": 3}},
|
||
"contents": {"value": "```lean\nn : Id Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 107, "character": 9}}
|
||
{"range":
|
||
{"start": {"line": 107, "character": 7},
|
||
"end": {"line": 107, "character": 17}},
|
||
"contents": {"value": "```lean\nfoo : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 112, "character": 7}}
|
||
{"range":
|
||
{"start": {"line": 112, "character": 7},
|
||
"end": {"line": 112, "character": 10}},
|
||
"contents": {"value": "```lean\nBar.foo : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 115, "character": 9}}
|
||
{"range":
|
||
{"start": {"line": 115, "character": 7},
|
||
"end": {"line": 115, "character": 17}},
|
||
"contents": {"value": "```lean\n_root_.foo : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 118, "character": 4}}
|
||
{"range":
|
||
{"start": {"line": 118, "character": 4}, "end": {"line": 118, "character": 7}},
|
||
"contents": {"value": "```lean\nBar.bar : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 121, "character": 10}}
|
||
{"range":
|
||
{"start": {"line": 121, "character": 10},
|
||
"end": {"line": 121, "character": 13}},
|
||
"contents": {"value": "```lean\nBar.Foo : Type\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 121, "character": 17}}
|
||
{"range":
|
||
{"start": {"line": 121, "character": 17},
|
||
"end": {"line": 121, "character": 19}},
|
||
"contents":
|
||
{"value": "```lean\nBar.Foo.mk : Nat → Foo\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 124, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 124, "character": 2}, "end": {"line": 124, "character": 4}},
|
||
"contents":
|
||
{"value": "```lean\nBar.Foo.hi : Foo → Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 127, "character": 10}}
|
||
{"range":
|
||
{"start": {"line": 127, "character": 10},
|
||
"end": {"line": 127, "character": 13}},
|
||
"contents": {"value": "```lean\nBar.Bar : Type\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 129, "character": 4}}
|
||
{"range":
|
||
{"start": {"line": 129, "character": 4}, "end": {"line": 129, "character": 6}},
|
||
"contents": {"value": "```lean\nBar.Bar.mk : Bar\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 132, "character": 2}}
|
||
{"range":
|
||
{"start": {"line": 132, "character": 0}, "end": {"line": 132, "character": 8}},
|
||
"contents":
|
||
{"value": "```lean\nBar.instToStringNat : ToString Nat\n```",
|
||
"kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 134, "character": 9}}
|
||
{"range":
|
||
{"start": {"line": 134, "character": 9},
|
||
"end": {"line": 134, "character": 10}},
|
||
"contents":
|
||
{"value": "```lean\nBar.f : ToString Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 137, "character": 10}}
|
||
{"range":
|
||
{"start": {"line": 137, "character": 10},
|
||
"end": {"line": 137, "character": 16}},
|
||
"contents":
|
||
{"value": "A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ",
|
||
"kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 140, "character": 4}}
|
||
{"range":
|
||
{"start": {"line": 140, "character": 4},
|
||
"end": {"line": 140, "character": 11}},
|
||
"contents": {"value": "```lean\nBar.foo.bar : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 140, "character": 8}}
|
||
{"range":
|
||
{"start": {"line": 140, "character": 4},
|
||
"end": {"line": 140, "character": 11}},
|
||
"contents": {"value": "```lean\nBar.foo.bar : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 145, "character": 6}}
|
||
{"range":
|
||
{"start": {"line": 145, "character": 6}, "end": {"line": 145, "character": 7}},
|
||
"contents": {"value": "```lean\nx : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 148, "character": 4}}
|
||
[{"targetUri": "file://hover.lean",
|
||
"targetSelectionRange":
|
||
{"start": {"line": 145, "character": 6},
|
||
"end": {"line": 145, "character": 7}},
|
||
"targetRange":
|
||
{"start": {"line": 145, "character": 6},
|
||
"end": {"line": 145, "character": 7}},
|
||
"originSelectionRange":
|
||
{"start": {"line": 148, "character": 4},
|
||
"end": {"line": 148, "character": 5}}}]
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 148, "character": 4}}
|
||
{"range":
|
||
{"start": {"line": 148, "character": 4}, "end": {"line": 148, "character": 5}},
|
||
"contents": {"value": "```lean\nx : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 152, "character": 8}}
|
||
{"range":
|
||
{"start": {"line": 152, "character": 8}, "end": {"line": 152, "character": 9}},
|
||
"contents": {"value": "```lean\nx : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 155, "character": 8}}
|
||
[{"targetUri": "file://hover.lean",
|
||
"targetSelectionRange":
|
||
{"start": {"line": 152, "character": 8},
|
||
"end": {"line": 152, "character": 9}},
|
||
"targetRange":
|
||
{"start": {"line": 152, "character": 8},
|
||
"end": {"line": 152, "character": 9}},
|
||
"originSelectionRange":
|
||
{"start": {"line": 155, "character": 8},
|
||
"end": {"line": 155, "character": 9}}}]
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 155, "character": 8}}
|
||
{"range":
|
||
{"start": {"line": 155, "character": 8}, "end": {"line": 155, "character": 9}},
|
||
"contents": {"value": "```lean\nx : Nat\n```", "kind": "markdown"}}
|
||
{"textDocument": {"uri": "file://hover.lean"},
|
||
"position": {"line": 160, "character": 25}}
|
||
{"range":
|
||
{"start": {"line": 160, "character": 25},
|
||
"end": {"line": 160, "character": 26}},
|
||
"contents": {"value": "```lean\nn : Nat\n```", "kind": "markdown"}}
|