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 UserWidgetInfos 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.