#guard_msgs
command for testing commands
This module defines a command to test that another command produces the expected messages.
See the docstring on the #guard_msgs
command.
The decision made by a specification for a message.
- check: Lean.Elab.Tactic.GuardMsgs.SpecResult
Capture the message and check it matches the docstring.
- drop: Lean.Elab.Tactic.GuardMsgs.SpecResult
Drop the message and delete it.
- passthrough: Lean.Elab.Tactic.GuardMsgs.SpecResult
Do not capture the message.
Instances For
The method to use when normalizing whitespace, after trimming.
- exact: Lean.Elab.Tactic.GuardMsgs.WhitespaceMode
Exact equality.
- normalized: Lean.Elab.Tactic.GuardMsgs.WhitespaceMode
Equality after normalizing newlines into spaces.
- lax: Lean.Elab.Tactic.GuardMsgs.WhitespaceMode
Equality after collapsing whitespace into single spaces.
Instances For
Method to use when combining multiple messages.
- exact: Lean.Elab.Tactic.GuardMsgs.MessageOrdering
Use the exact ordering of the produced messages.
- sorted: Lean.Elab.Tactic.GuardMsgs.MessageOrdering
Sort the produced messages.
Instances For
Parses a guardMsgsSpec
.
- No specification: check everything.
- With a specification: interpret the spec, and if nothing applies pass it through.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An info tree node corresponding to a failed #guard_msgs
invocation,
used for code action support.
- res : String
The result of the nested command
Instances For
Makes trailing whitespace visible and protectes them against trimming by the editor, by appending the symbol ⏎ to such a line (and also to any line that ends with such a symbol, to avoid ambiguities in the case the message already had that symbol).
Equations
- Lean.Elab.Tactic.GuardMsgs.revealTrailingWhitespace s = ((s.replace "⏎\n" "⏎⏎\n").replace "\t\n" "\t⏎\n").replace " \n" " ⏎\n"
Instances For
Equations
- Lean.Elab.Tactic.GuardMsgs.removeTrailingWhitespaceMarker s = s.replace "⏎\n" "\n"
Instances For
Applies a whitespace normalization mode.
Equations
- Lean.Elab.Tactic.GuardMsgs.WhitespaceMode.exact.apply s = s
- Lean.Elab.Tactic.GuardMsgs.WhitespaceMode.normalized.apply s = s.replace "\n" " "
- Lean.Elab.Tactic.GuardMsgs.WhitespaceMode.lax.apply s = " ".intercalate (List.filter (fun (x : String) => !x.isEmpty) (s.split Char.isWhitespace))
Instances For
Applies a message ordering mode.
Equations
- Lean.Elab.Tactic.GuardMsgs.MessageOrdering.exact.apply msgs = msgs
- Lean.Elab.Tactic.GuardMsgs.MessageOrdering.sorted.apply msgs = (msgs.toArray.qsort fun (x1 x2 : String) => decide (x1 < x2)).toList
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
A code action which will update the doc comment on a #guard_msgs
invocation.
Equations
- One or more equations did not get rendered due to their size.
- Lean.Elab.Tactic.GuardMsgs.guardMsgsCodeAction x✝¹ x✝ x node = pure #[]