← All compilation units

Flyology_TUI.Components.Markdown_Viewers

Description

Action_Kind

type Action_Kind is (No_Action, Link_Activated);
Enumeration literals
No_Action
Link_Activated

Action_Result

type Action_Result is record
   Update : Flyology_TUI.Components.Interactions.Update_Result;
   Action : Action_Kind := No_Action;
   Link   : Link_Id := No_Link;
end record;
Record fields
Update
Action
Link

Advance_Parsing

procedure Advance_Parsing
  (Item : in out Model; Line_Budget : Natural)

Consume at most Line_Budget physical source lines. Zero is a query-safe no-op. Capacity and malformed input are reported through Parsing.

Parameters
Item
Line_Budget

Appearance

type Appearance is record
   Text            : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Heading         : Heading_Appearance :=
     (others => Flyology_TUI.Styles.Default);
   Emphasis        : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Strong          : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Inline_Code     : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Code_Block      : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Quote           : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   List_Marker     : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Task_Unchecked  : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Task_Checked    : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Link            : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Focused_Link    : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Thematic_Break  : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Diagnostic      : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
   Selection       : Flyology_TUI.Styles.Style :=
     Flyology_TUI.Styles.Default;
end record;
Record fields
Text
Heading
Emphasis
Strong
Inline_Code
Code_Block
Quote
List_Marker
Task_Unchecked
Task_Checked
Link
Focused_Link
Thematic_Break
Diagnostic
Selection

Blur

procedure Blur (Item : in out Model)
Parameters
Item

Clear_Selection

procedure Clear_Selection (Item : in out Model)
Parameters
Item

Content_Height

function Content_Height (Item : Presentation) return Natural
Parameters
Item
Return value

Create

function Create
  (Max_Code_Points : Positive;
   Max_Lines       : Positive;
   Max_Links       : Positive;
   Width           : Positive := 60;
   Height          : Positive := 20) return Model
Parameters
Max_Code_Points
Max_Lines
Max_Links
Width
Height
Return value

First_Visible_Row

function First_Visible_Row (Item : Model) return Natural
Parameters
Item
Return value

Focus

procedure Focus (Item : in out Model)
Parameters
Item

Focused

function Focused (Item : Model) return Boolean
Parameters
Item
Return value

Focused_Link

function Focused_Link (Item : Model) return Link_Id
Parameters
Item
Return value

Frame

function Frame
  (Item : Presentation) return Flyology_TUI.Surfaces.Surface
Parameters
Item
Return value

From_Theme

function From_Theme
  (Theme : Flyology_TUI.Themes.Theme) return Appearance
Parameters
Theme
Return value

Handle

function Handle
  (Item  : in out Model;
   Event : Flyology_TUI.Events.Terminal_Event) return Action_Result
Parameters
Item
Event
Return value

Handle

function Handle
  (Item   : in out Model;
   Event  : Flyology_TUI.Mouse.Local_Event;
   Layout : Presentation) return Action_Result

Use the same immutable Presentation that was drawn when routing mouse input. This keeps hit testing aligned across resize and reparse.

Parameters
Item
Event
Layout
Return value

Has_Link

function Has_Link (Item : Presentation; Id : Link_Id) return Boolean
Parameters
Item
Id
Return value

Has_Selection

function Has_Selection (Item : Model) return Boolean
Parameters
Item
Return value

Has_Unsupported

function Has_Unsupported (Item : Model) return Boolean
Parameters
Item
Return value

Heading_Appearance

type Heading_Appearance is array (Positive range 1 .. 6) of
  Flyology_TUI.Styles.Style;

Height

function Height (Item : Model) return Positive
Parameters
Item
Return value

Link_Count

function Link_Count (Item : Model) return Natural
Parameters
Item
Return value

Link_Id

type Link_Id is new Natural;

Link_Region

function Link_Region
  (Item     : Presentation;
   Id       : Link_Id;
   Position : Positive)
   return Flyology_TUI.Geometry.Rectangle
Parameters
Item
Id
Position
Return value

Link_Region_Count

function Link_Region_Count
  (Item : Presentation; Id : Link_Id) return Natural
Parameters
Item
Id
Return value

Link_Target

function Link_Target
  (Item : Model; Id : Link_Id) return Wide_Wide_String
Parameters
Item
Id
Return value

Model

type Model
  (Max_Code_Points : Positive;
   Max_Lines       : Positive;
   Max_Links       : Positive) is tagged limited private;

Parsing is synchronous and caller-budgeted. Model owns bounded source, line metadata, and link targets; it owns no task, callback, or queue. The source core is a read-only Text_Area, so selection and Unicode boundary behavior are shared with the editing components.

Record fields
Max_Code_Points
Max_Lines
Max_Links

No_Link

No_Link : constant Link_Id := 0;

Parsed_Line_Count

function Parsed_Line_Count (Item : Model) return Natural
Parameters
Item
Return value

Parsing

function Parsing (Item : Model) return Parsing_State
Parameters
Item
Return value

Parsing_State

type Parsing_State is
  (Parsing_Dirty,
   Parsing_Current,
   Parsing_Capacity_Limited,
   Parsing_Malformed);
Enumeration literals
Parsing_Dirty
Parsing_Current
Parsing_Capacity_Limited
Parsing_Malformed

Present

function Present
  (Item        : Model;
   Look        : Appearance;
   Line_Budget : Natural := Natural'Last) return Presentation
Parameters
Item
Look
Line_Budget
Return value

Present

function Present
  (Item        : Model;
   Theme       : Flyology_TUI.Themes.Theme;
   Line_Budget : Natural := Natural'Last) return Presentation
Parameters
Item
Theme
Line_Budget
Return value

Presentation

type Presentation (<>) is private;

Rendered_Line_Count

function Rendered_Line_Count (Item : Presentation) return Natural
Parameters
Item
Return value

Rendering_Complete

function Rendering_Complete (Item : Presentation) return Boolean
Parameters
Item
Return value

Scroll_Rows

procedure Scroll_Rows
  (Item : in out Model; Amount : Integer; Changed : out Boolean)
Parameters
Item
Amount
Changed

Select_All

procedure Select_All (Item : in out Model)
Parameters
Item

Selection_Range

procedure Selection_Range
  (Item : Model; First, Last : out Natural)
Parameters
Item
First
Last

Set_Size

procedure Set_Size (Item : in out Model; Width, Height : Positive)
Parameters
Item
Width
Height

Source

function Source (Item : Model) return Wide_Wide_String
Parameters
Item
Return value

Try_Set_Source

procedure Try_Set_Source
  (Item    : in out Model;
   Value   : Wide_Wide_String;
   Success : out Boolean)

Normalize line endings and replace the source atomically. A successful replacement invalidates prior parsing and stable link ids.

Parameters
Item
Value
Success

Unsupported

function Unsupported (Item : Model) return Unsupported_Set
Parameters
Item
Return value

Unsupported_Construct

type Unsupported_Construct is
  (Images,
   Tables,
   Raw_HTML,
   Footnotes,
   Definition_Lists,
   Nested_Block_Containers);
Enumeration literals
Images
Tables
Raw_HTML
Footnotes
Definition_Lists
Nested_Block_Containers

Unsupported_Set

type Unsupported_Set is array (Unsupported_Construct) of Boolean;

Width

function Width (Item : Model) return Positive
Parameters
Item
Return value