lean4-htt/tests/lean/interactive
David Thrane Christiansen 9fbbe6554d
fix: make first token detection work in modules (#12047)
This PR makes the automatic first token detection in tactic docs much
more robust, in addition to making it work in modules and other contexts
where builtin tactics are not in the environment. It also adds the
ability to override the tactic's first token as the user-visible name.

Previously, first token detection would look up the parser descriptor in
the environment and process its syntax. This would be incorrect for
builtin parsers, as well as for modules in which the definition is not
loaded. Now, it instead consults the Pratt parsing table for the
`tactic` syntax category. Tests are added that ensure this keeps working
in modules, and also that the first token of all tactics that ship with
Lean are either detected unambiguously or annotated to remove ambiguity.

Closes #12038.
2026-01-20 11:12:05 +00:00
..
projects test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
533.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
533.lean.expected.out fix: split ngen on async elab (#12000) 2026-01-14 12:35:25 +00:00
863.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
863.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
1018unknowMVarIssue.lean
1018unknowMVarIssue.lean.expected.out
1031.lean
1031.lean.expected.out
1265.lean
1265.lean.expected.out feat: hexnum parser (#10716) 2025-10-08 21:12:03 +00:00
1403.lean
1403.lean.expected.out
1525.lean
1525.lean.expected.out
1659.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
1659.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
2058.lean
2058.lean.expected.out chore: error messages consistency (#10143) 2025-08-26 17:55:43 +00:00
2881.lean fix: erroneous "no goals" in empty tactic list in induction/cases and other tactic info improvements (#9553) 2025-07-26 23:15:31 +00:00
2881.lean.expected.out fix: erroneous "no goals" in empty tactic list in induction/cases and other tactic info improvements (#9553) 2025-07-26 23:15:31 +00:00
4078.lean
4078.lean.expected.out
4880.lean
4880.lean.expected.out feat: improve error message in the case of type class synthesis failure (#11245) 2025-11-21 21:24:27 +00:00
5659.lean
5659.lean.expected.out fix: rcases: avoid inflating case names with single constructor names (#9918) 2025-08-26 07:56:32 +00:00
6594.lean
6594.lean.expected.out
amb.lean
amb.lean.expected.out
anonHyp.lean
anonHyp.lean.expected.out
autoBoundIssue.lean
autoBoundIssue.lean.expected.out feat: use the metavariable index when pretty printing (#9778) 2025-08-07 15:58:51 +00:00
builtinCodeactions.lean
builtinCodeactions.lean.expected.out feat: "try this" messages with support for interactivity (#10524) 2025-10-13 13:39:03 +00:00
cancellation.lean
cancellation.lean.expected.out
catHover.lean
catHover.lean.expected.out
codeaction.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
codeaction.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
codeActions.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
codeActions.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
compHeader.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
compHeader.lean.expected.out fix: split ngen on async elab (#12000) 2026-01-14 12:35:25 +00:00
completion.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion2.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion2.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion3.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion3.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion4.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion4.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion5.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion5.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion6.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion6.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion7.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completion7.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionAtPrint.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionAtPrint.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionBracketedDot.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionBracketedDot.lean.expected.out
completionCheck.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionCheck.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionDanglingDot.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionDanglingDot.lean.expected.out
completionDeprecation.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionDeprecation.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionEndSection.lean feat: auto-completion for end names (#10660) 2025-10-08 11:12:05 +00:00
completionEndSection.lean.expected.out feat: auto-completion for end names (#10660) 2025-10-08 11:12:05 +00:00
completionEOF.lean
completionEOF.lean.expected.out feat: improve auto-completion performance (#10249) 2025-09-05 08:55:49 +00:00
completionFallback.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionFallback.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionFromExpectedType.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionFromExpectedType.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionIStr.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionIStr.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionOpenNamespaces.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionOpenNamespaces.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionOption.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionOption.lean.expected.out fix: pre-filter completion items mod ascii casing (#11140) 2025-11-11 14:11:05 +00:00
completionPrefixIssue.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionPrefixIssue.lean.expected.out fix: split ngen on async elab (#12000) 2026-01-14 12:35:25 +00:00
completionPrivateTypes.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionPrivateTypes.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionPrv.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionPrv.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionStructureInstance.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionStructureInstance.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
completionTactics.lean fix: make first token detection work in modules (#12047) 2026-01-20 11:12:05 +00:00
completionTactics.lean.expected.out fix: make first token detection work in modules (#12047) 2026-01-20 11:12:05 +00:00
compNamespace.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
compNamespace.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
definition.lean
definition.lean.expected.out feat: improved go to definition (#9040) 2025-07-21 15:47:44 +00:00
Diff.lean
Diff.lean.expected.out test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
discrsIssue.lean
discrsIssue.lean.expected.out
docstringLinksExamples.lean
docstringLinksExamples.lean.expected.out
documentSymbols.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
documentSymbols.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
dotIdCompletion.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
dotIdCompletion.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
dottedIdentNotation.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
dottedIdentNotation.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
editAfterError.lean
editAfterError.lean.expected.out feat: update and explain "unknown constant" and "failed to infer type" errors (#9423) 2025-07-18 19:20:31 +00:00
editCompletion.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
editCompletion.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
errorExplanationInteractive.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
errorExplanationInteractive.lean.expected.out refactor: move error explanation text to the manual (#11688) 2025-12-26 17:14:58 +00:00
expectedTypeAsGoal.lean
expectedTypeAsGoal.lean.expected.out feat: use omission dots for hidden let values in Infoview (#8041) 2025-05-27 23:09:11 +00:00
explicitAppInstHole.lean
explicitAppInstHole.lean.expected.out
findReferences.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
findReferences.lean.expected.out fix: unknown identifier minimization (#10797) 2025-10-15 19:25:27 +00:00
foldingRange.lean
foldingRange.lean.expected.out
fvarIdCollision.lean fix: split ngen on async elab (#12000) 2026-01-14 12:35:25 +00:00
fvarIdCollision.lean.expected.out fix: split ngen on async elab (#12000) 2026-01-14 12:35:25 +00:00
ghostGoals.lean
ghostGoals.lean.expected.out
goalEOF.lean
goalEOF.lean.expected.out
goalIssue.lean
goalIssue.lean.expected.out
goalsAccomplished.lean
goalsAccomplished.lean.expected.out
goTo.lean feat: allow go-to-projection to look through reducible definitions (#12004) 2026-01-15 16:05:35 +00:00
goTo.lean.expected.out feat: allow go-to-projection to look through reducible definitions (#12004) 2026-01-15 16:05:35 +00:00
goTo2.lean feat: improved go to definition (#9040) 2025-07-21 15:47:44 +00:00
goTo2.lean.expected.out feat: improved go to definition (#9040) 2025-07-21 15:47:44 +00:00
guardMsgsCodeAction.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
guardMsgsCodeAction.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
haveInfo.lean
haveInfo.lean.expected.out
highlight.lean
highlight.lean.expected.out
highlightMatches.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
highlightMatches.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
hover.lean fix: hovers and docstrings for (co)inductive types (#10738) 2025-10-15 09:32:11 +00:00
hover.lean.expected.out fix: hovers and docstrings for (co)inductive types (#10738) 2025-10-15 09:32:11 +00:00
hoverAt.lean
hoverAt.lean.expected.out
hoverBinderUnderscore.lean chore: fix spelling errors (#10042) 2025-08-22 07:23:12 +00:00
hoverBinderUnderscore.lean.expected.out chore: fix spelling errors (#10042) 2025-08-22 07:23:12 +00:00
hoverDot.lean
hoverDot.lean.expected.out
hoverException.lean
hoverException.lean.expected.out
hoverMatch.lean fix: de-prioritize PartialTermInfo in hover info selection (#10047) 2025-08-25 08:47:14 +00:00
hoverMatch.lean.expected.out fix: de-prioritize PartialTermInfo in hover info selection (#10047) 2025-08-25 08:47:14 +00:00
hoverTacticExt.lean
hoverTacticExt.lean.expected.out
importCompletion.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
importCompletion.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
incomingCallHierarchy.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
incomingCallHierarchy.lean.expected.out fix: unknown identifier minimization (#10797) 2025-10-15 19:25:27 +00:00
incrementalCombinator.lean fix: stuck "Missing alternative name" with incremental processing (#10848) 2025-10-20 08:00:48 +00:00
incrementalCombinator.lean.expected.out chore: use backticks for sorry in diagnostic messages (#11608) 2025-12-15 14:30:21 +00:00
incrementalCommand.lean chore: use backticks for sorry in diagnostic messages (#11608) 2025-12-15 14:30:21 +00:00
incrementalCommand.lean.expected.out feat: improve split error messages (#9424) 2025-07-18 22:36:10 +00:00
incrementalInduction.lean fix: make sure "dependent elimination failed" error is on cases (#9551) 2025-07-25 19:02:42 +00:00
incrementalInduction.lean.expected.out refactor: update built-in tactic error messages (#9633) 2025-07-31 14:16:57 +00:00
incrementalMutual.lean
incrementalMutual.lean.expected.out feat: update and explain "unknown constant" and "failed to infer type" errors (#9423) 2025-07-18 19:20:31 +00:00
incrementalTactic.lean
incrementalTactic.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
infoIssues.lean
infoIssues.lean.expected.out
inlayHints.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
inlayHints.lean.expected.out chore: use backticks for sorry in diagnostic messages (#11608) 2025-12-15 14:30:21 +00:00
interactiveDiagnostics.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
interactiveDiagnostics.lean.expected.out chore: use backticks for sorry in diagnostic messages (#11608) 2025-12-15 14:30:21 +00:00
interactiveGoalGoToLoc.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
interactiveGoalGoToLoc.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
interactiveGoalPopups.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
interactiveGoalPopups.lean.expected.out test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
interactiveTermGoals.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
interactiveTermGoals.lean.expected.out test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
interactiveTraces.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
interactiveTraces.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
internalNamesIssue.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
internalNamesIssue.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
inWordCompletion.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
inWordCompletion.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
isRflParallel.lean chore: fix spelling mistakes (#8711) 2025-06-10 20:24:28 +00:00
isRflParallel.lean.expected.out feat: explicit defeq attribute (#8419) 2025-06-06 18:40:06 +00:00
issue4527.lean
issue4527.lean.expected.out
issue5021.lean
issue5021.lean.expected.out
issue5597.lean
issue5597.lean.expected.out doc: improve docstrings for simp!, simp_all!, dsimp! and autoUnfold (#9991) 2025-09-09 13:34:16 +00:00
jumpMutual.lean
jumpMutual.lean.expected.out feat: improved go to definition (#9040) 2025-07-21 15:47:44 +00:00
keywordCompletion.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
keywordCompletion.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
lean3HoverIssue.lean
lean3HoverIssue.lean.expected.out
macroGoalIssue.lean
macroGoalIssue.lean.expected.out
match.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
match.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
matchPatternHover.lean
matchPatternHover.lean.expected.out
matchStxCompletion.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
matchStxCompletion.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
moduleHierarchyImports.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
moduleHierarchyImports.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
outgoingCallHierarchy.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
outgoingCallHierarchy.lean.expected.out fix: unknown identifier minimization (#10797) 2025-10-15 19:25:27 +00:00
partialNamespace.lean
partialNamespace.lean.expected.out
plainGoal.lean feat: intermediate tactic info on simpa (#10309) 2025-09-09 20:24:27 +00:00
plainGoal.lean.expected.out feat: intermediate tactic info on simpa (#10309) 2025-09-09 20:24:27 +00:00
plainTermGoal.lean
plainTermGoal.lean.expected.out
ppShowLetValues.lean feat: use omission dots for hidden let values in Infoview (#8041) 2025-05-27 23:09:11 +00:00
ppShowLetValues.lean.expected.out feat: use omission dots for hidden let values in Infoview (#8041) 2025-05-27 23:09:11 +00:00
rename.lean
rename.lean.expected.out
run.lean
rwElabConst.lean fix: deduplicate elaboration of constant argument to rw (#8232) 2025-05-15 11:33:10 +00:00
rwElabConst.lean.expected.out fix: deduplicate elaboration of constant argument to rw (#8232) 2025-05-15 11:33:10 +00:00
semanticTokens.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
semanticTokens.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
semanticTokensVersoDocs.lean fix: Verso docstring semantic highlighting fixes (#10662) 2025-10-10 11:57:02 +00:00
semanticTokensVersoDocs.lean.expected.out fix: Verso docstring semantic highlighting fixes (#10662) 2025-10-10 11:57:02 +00:00
signatureHelp.lean fix: wrong signature help after map/filter/etc (#8655) 2025-06-06 13:07:01 +00:00
signatureHelp.lean.expected.out fix: wrong signature help after map/filter/etc (#8655) 2025-06-06 13:07:01 +00:00
stdOutput.lean
stdOutput.lean.expected.out
strInterpSynthError.lean fix: improve precision of synthesis failure spans in interpolated strings (#9004) 2025-06-27 01:47:32 +00:00
strInterpSynthError.lean.expected.out feat: improve error message in the case of type class synthesis failure (#11245) 2025-11-21 21:24:27 +00:00
structInstFieldHints.lean feat: allow custom preview spans in hint suggestions (#9555) 2025-07-26 00:04:28 +00:00
structInstFieldHints.lean.expected.out feat: "try this" messages with support for interactivity (#10524) 2025-10-13 13:39:03 +00:00
structNameParentProj.lean
structNameParentProj.lean.expected.out
tacticInduction.lean fix: erroneous "no goals" in empty tactic list in induction/cases and other tactic info improvements (#9553) 2025-07-26 23:15:31 +00:00
tacticInduction.lean.expected.out fix: erroneous "no goals" in empty tactic list in induction/cases and other tactic info improvements (#9553) 2025-07-26 23:15:31 +00:00
terminationBySuggestion.lean
terminationBySuggestion.lean.expected.out feat: "try this" messages with support for interactivity (#10524) 2025-10-13 13:39:03 +00:00
test_single.sh
travellingCompletions.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
travellingCompletions.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
tryThisCodeAction.lean test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
tryThisCodeAction.lean.expected.out feat: "try this" messages with support for interactivity (#10524) 2025-10-13 13:39:03 +00:00
unknownIdentifierCodeActions.lean feat: unknown identifier code action and the module system (#11164) 2025-12-12 21:19:34 +00:00
unknownIdentifierCodeActions.lean.expected.out fix: set data? field in all unknown identifier code actions (#12046) 2026-01-20 10:03:29 +00:00
unterminatedDocComment.lean
unterminatedDocComment.lean.expected.out
userWidget.lean
userWidget.lean.expected.out test: improve language server test coverage (#10574) 2025-09-30 11:15:03 +00:00
workspaceSymbols.lean test: fix test flakiness (#10680) 2025-10-08 13:33:56 +00:00
workspaceSymbols.lean.expected.out fix: unknown identifier minimization (#10797) 2025-10-15 19:25:27 +00:00