Storage of widget modules #
Registers a widget module. Its type must implement Lean.Widget.ToModule
.
Retrieval of widget modules #
- hash : UInt64
Hash of the JS module to retrieve.
- pos : Lsp.Position
Instances For
Equations
- sourcetext : String
Sourcetext of the JS module to run.
Instances For
Storage of panel widget instances #
- global (n : Name) : PanelWidgetsExtEntry
- local (wi : WidgetInstance) : PanelWidgetsExtEntry
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Construct a widget instance by finding a widget module in the current environment.
hash
must be hash (toModule c).javascript
where c
is some global constant annotated with @[widget_module]
,
or the name of a builtin widget module.
Equations
Instances For
Save the data of a panel widget which will be displayed whenever the text cursor is on stx
.
hash
must be as in WidgetInstance.ofHash
.
For panel widgets, the Lean infoview appends additional fields to the props
object:
see https://github.com/leanprover/vscode-lean4/blob/master/lean4-infoview/src/infoview/userWidget.tsx#L145.
Equations
Instances For
show_panel_widgets
command #
Equations
Instances For
Equations
Instances For
Use show_panel_widgets [<widget>]
to mark that <widget>
should always be displayed, including in downstream modules.
The type of <widget>
must implement Widget.ToModule
,
and the type of <props>
must implement Server.RpcEncodable
.
In particular, <props> : Json
works.
Use show_panel_widgets [<widget> with <props>]
to specify the <props>
that the widget should be given
as arguments.
Use show_panel_widgets [local <widget> (with <props>)?]
to mark it
for display in the current section, namespace, or file only.
Use show_panel_widgets [scoped <widget> (with <props>)?]
to mark it
for display only when the current namespace is open.
Use show_panel_widgets [-<widget>]
to temporarily hide a previously shown widget
in the current section, namespace, or file.
Note that persistent erasure is not possible, i.e.,
-<widget>
has no effect on downstream modules.
Equations
Instances For
#widget
command #
Use #widget <widget>
to display a panel widget,
and #widget <widget> with <props>
to display it with the given props.
Useful for debugging widgets.
The type of <widget>
must implement Widget.ToModule
,
and the type of <props>
must implement Server.RpcEncodable
.
In particular, <props> : Json
works.
Equations
Instances For
Deprecated definitions #
Use this structure and the @[widget]
attribute to define your own widgets.
@[widget]
def rubiks : UserWidgetDefinition :=
{ name := "Rubiks cube app"
javascript := include_str ...
}
- name : String
Pretty name of user widget to display to the user.
- javascript : String
An ESmodule that exports a react component to render.
Instances For
Equations
Retrieving panel widget instances #
Retrieve all the UserWidgetInfo
s that intersect a given line.
Equations
Instances For
The syntactic span in the Lean file at which the panel widget is displayed.
When present, the infoview will wrap the widget in
<details><summary>{name}</summary>...</details>
. This functionality is deprecated but retained for backwards compatibility withUserWidgetDefinition
.
Instances For
Get the panel widgets present around a particular position.