File: .lake/packages/proofwidgets/ProofWidgets/Component/Panel/Basic.lean

full_name: ProofWidgets.PanelWidgetProps
code: /-- In the infoview, an **info block** is a top-level collapsible block corresponding to a given
location in a Lean file (e.g. with the header `▼ Basic.lean:12:34`).

A **panel widget** is a component which can appear as a panel inside an info block in the infoview.
For example, a tactic state display.
The type `PanelWidgetProps` represents the props passed to a panel widget.
The TypeScript version is exported as `PanelWidgetProps` from `@leanprover/infoview`.

Note that to be a good citizen which doesn't mess up the infoview layout,
a panel widget should be a block element,
and should provide some way to collapse it,
for example by using `<details>` as the top-level tag. -/
structure PanelWidgetProps : Type where
  /-- Cursor position in the file at which the widget is being displayed. -/
  pos : Lsp.Position
  /-- The current tactic-mode goals. -/
  goals : Array Widget.InteractiveGoal
  /-- The current term-mode goal, if any. -/
  termGoal? : Option Widget.InteractiveTermGoal
  /-- Locations currently selected in the goal state. -/
  selectedLocations : Array SubExpr.GoalsLocation
  deriving Server.RpcEncodable
goal: Type

full_name: ProofWidgets.PanelWidgetProps.selectedLocations
code: /-- In the infoview, an **info block** is a top-level collapsible block corresponding to a given
location in a Lean file (e.g. with the header `▼ Basic.lean:12:34`).

A **panel widget** is a component which can appear as a panel inside an info block in the infoview.
For example, a tactic state display.
The type `PanelWidgetProps` represents the props passed to a panel widget.
The TypeScript version is exported as `PanelWidgetProps` from `@leanprover/infoview`.

Note that to be a good citizen which doesn't mess up the infoview layout,
a panel widget should be a block element,
and should provide some way to collapse it,
for example by using `<details>` as the top-level tag. -/
structure PanelWidgetProps : Type where
  /-- Cursor position in the file at which the widget is being displayed. -/
  pos : Lsp.Position
  /-- The current tactic-mode goals. -/
  goals : Array Widget.InteractiveGoal
  /-- The current term-mode goal, if any. -/
  termGoal? : Option Widget.InteractiveTermGoal
  /-- Locations currently selected in the goal state. -/
  selectedLocations : Array SubExpr.GoalsLocation
  deriving Server.RpcEncodable
goal: Array Lean.SubExpr.GoalsLocation

full_name: ProofWidgets.PanelWidgetProps.pos
code: /-- In the infoview, an **info block** is a top-level collapsible block corresponding to a given
location in a Lean file (e.g. with the header `▼ Basic.lean:12:34`).

A **panel widget** is a component which can appear as a panel inside an info block in the infoview.
For example, a tactic state display.
The type `PanelWidgetProps` represents the props passed to a panel widget.
The TypeScript version is exported as `PanelWidgetProps` from `@leanprover/infoview`.

Note that to be a good citizen which doesn't mess up the infoview layout,
a panel widget should be a block element,
and should provide some way to collapse it,
for example by using `<details>` as the top-level tag. -/
structure PanelWidgetProps : Type where
  /-- Cursor position in the file at which the widget is being displayed. -/
  pos : Lsp.Position
  /-- The current tactic-mode goals. -/
  goals : Array Widget.InteractiveGoal
  /-- The current term-mode goal, if any. -/
  termGoal? : Option Widget.InteractiveTermGoal
  /-- Locations currently selected in the goal state. -/
  selectedLocations : Array SubExpr.GoalsLocation
  deriving Server.RpcEncodable
goal: Lean.Lsp.Position

full_name: ProofWidgets.PanelWidgetProps.goals
code: /-- In the infoview, an **info block** is a top-level collapsible block corresponding to a given
location in a Lean file (e.g. with the header `▼ Basic.lean:12:34`).

A **panel widget** is a component which can appear as a panel inside an info block in the infoview.
For example, a tactic state display.
The type `PanelWidgetProps` represents the props passed to a panel widget.
The TypeScript version is exported as `PanelWidgetProps` from `@leanprover/infoview`.

Note that to be a good citizen which doesn't mess up the infoview layout,
a panel widget should be a block element,
and should provide some way to collapse it,
for example by using `<details>` as the top-level tag. -/
structure PanelWidgetProps : Type where
  /-- Cursor position in the file at which the widget is being displayed. -/
  pos : Lsp.Position
  /-- The current tactic-mode goals. -/
  goals : Array Widget.InteractiveGoal
  /-- The current term-mode goal, if any. -/
  termGoal? : Option Widget.InteractiveTermGoal
  /-- Locations currently selected in the goal state. -/
  selectedLocations : Array SubExpr.GoalsLocation
  deriving Server.RpcEncodable
goal: Array Lean.Widget.InteractiveGoal

full_name: ProofWidgets.PanelWidgetProps.termGoal?
code: /-- In the infoview, an **info block** is a top-level collapsible block corresponding to a given
location in a Lean file (e.g. with the header `▼ Basic.lean:12:34`).

A **panel widget** is a component which can appear as a panel inside an info block in the infoview.
For example, a tactic state display.
The type `PanelWidgetProps` represents the props passed to a panel widget.
The TypeScript version is exported as `PanelWidgetProps` from `@leanprover/infoview`.

Note that to be a good citizen which doesn't mess up the infoview layout,
a panel widget should be a block element,
and should provide some way to collapse it,
for example by using `<details>` as the top-level tag. -/
structure PanelWidgetProps : Type where
  /-- Cursor position in the file at which the widget is being displayed. -/
  pos : Lsp.Position
  /-- The current tactic-mode goals. -/
  goals : Array Widget.InteractiveGoal
  /-- The current term-mode goal, if any. -/
  termGoal? : Option Widget.InteractiveTermGoal
  /-- Locations currently selected in the goal state. -/
  selectedLocations : Array SubExpr.GoalsLocation
  deriving Server.RpcEncodable
goal: Option Lean.Widget.InteractiveTermGoal

full_name: ProofWidgets.ProofWidgets.PanelWidgetProps.RpcEncodablePacket._@..lake.packages.proofwidgets.ProofWidgets.Component.Panel.Basic._hyg.4
code: Server.RpcEncodable
goal: Type

full_name: ProofWidgets.ProofWidgets.PanelWidgetProps.instToJsonRpcEncodablePacket
code: Server.RpcEncodable
goal: Lean.ToJson ProofWidgets.ProofWidgets.PanelWidgetProps.RpcEncodablePacket✝

full_name: ProofWidgets.ProofWidgets.PanelWidgetProps.instRpcEncodablePanelWidgetProps
code: Server.RpcEncodable
goal: Lean.Server.RpcEncodable ProofWidgets.PanelWidgetProps

full_name: ProofWidgets.ProofWidgets.PanelWidgetProps.instFromJsonRpcEncodablePacket
code: Server.RpcEncodable
goal: Lean.FromJson ProofWidgets.ProofWidgets.PanelWidgetProps.RpcEncodablePacket✝

full_name: ProofWidgets.ProofWidgets.PanelWidgetProps.instRpcEncodablePanelWidgetProps.enc._@..lake.packages.proofwidgets.ProofWidgets.Component.Panel.Basic._hyg.4
code: Server.RpcEncodable
goal: ProofWidgets.PanelWidgetProps → StateM Lean.Server.RpcObjectStore Lean.Json

full_name: ProofWidgets.ProofWidgets.PanelWidgetProps.instRpcEncodablePanelWidgetProps.dec._@..lake.packages.proofwidgets.ProofWidgets.Component.Panel.Basic._hyg.4
code: Server.RpcEncodable
goal: Lean.Json → ExceptT String (ReaderT Lean.Server.RpcObjectStore Id) ProofWidgets.PanelWidgetProps

full_name: ProofWidgets.withPanelWidgetsTacticStx
code: /-- Display the selected panel widgets in the nested tactic script. For example,
assuming we have written a `GeometryDisplay` component,
```lean
by with_panel_widgets [GeometryDisplay]
  simp
  rfl
```
will show the geometry display alongside the usual tactic state throughout the proof.
-/
syntax (name := withPanelWidgetsTacticStx)
  "with_panel_widgets" "[" Widget.widgetInstanceSpec,+ "]" tacticSeq : tactic
goal: Lean.ParserDescr

full_name: ProofWidgets.withPanelWidgets
code: @[tactic withPanelWidgetsTacticStx]
def withPanelWidgets : Tactic
  
goal: Lean.Elab.Tactic.Tactic