lean4-htt/src/Lean/PrettyPrinter/Delaborator
Marc Huisinga cb0284f98e
feat: signature help (#8511)
This PR implements signature help support. When typing a function
application, editors with support for signature help will now display a
popup that designates the current (remaining) function type. This
removes the need to remember the function signature while typing the
function application, or having to constantly cycle between hovering
over the function identifier and typing the application. In VS Code, the
signature help can be triggered manually using `Ctrl+Shift+Space`.


![Demo](https://github.com/user-attachments/assets/d1f6ed79-bb16-4593-8d28-68b1cce5d5dc)

### Other changes

- In order to support signature help for the partial syntax `f a <|` or
`f a $`, these notations now elaborate as `f a`, not `f a .missing`.
- The logic in `delabConstWithSignature` that delaborates parameters is
factored out into a function `delabForallParamsWithSignature` so that it
can be used for arbitrary `forall`s, not just constants.
- The `InfoTree` formatter is adjusted to produce output where it is
easier to identify the kind of `Info` in the `InfoTree`.
- A bug in `InfoTree.smallestInfo?` is fixed so that it doesn't panic
anymore when its predicate `p` does not ensure that both `pos?` and
`tailPos?` of the `Info` are present.
2025-06-03 17:26:33 +00:00
..
Attributes.lean feat: add pp.fieldNotation.generalized for generalized field notation, add @[pp_nodot] attribute (#3737) 2024-03-22 08:55:02 +00:00
Basic.lean feat: use omission dots for hidden let values in Infoview (#8041) 2025-05-27 23:09:11 +00:00
Builtins.lean feat: signature help (#8511) 2025-06-03 17:26:33 +00:00
FieldNotation.lean feat: use dot notation for class parent projections (#8504) 2025-05-28 20:34:40 +00:00
Options.lean feat: pretty print props with only if domain is prop, add pp.foralls (#7812) 2025-04-04 02:55:47 +00:00
SubExpr.lean feat: accurate binder names in signatures (like in output of #check) (#5827) 2024-10-29 16:43:11 +00:00
TopDownAnalyze.lean feat: deprecate Array.mkArray in favour of Array.replicate 2025-03-24 08:25:00 +01:00