Header menu logo issie

SheetLayout Module

Nested modules

Modules Description

Constants

Functions and values

Function or value Description

componentId sheetName compName

Full Usage: componentId sheetName compName

Parameters:
    sheetName : string
    compName : string

Returns: string

The id a component gets in the generated canvas. Component ids are normally uuids. These are readable and derived from the names instead, which is a deliberate deviation: a generated sheet is far easier to debug when its ids say what they are, the same description always produces the same file so fixtures can be diffed, and minting a uuid goes through a Fable-only import that does not work under .NET. Nothing in Issie parses a component id - they are opaque strings - but they must be unique across a PROJECT, not just a sheet, which is why the sheet name is part of it.

sheetName : string
compName : string
Returns: string

layoutCanvas (arg1, arg2)

Full Usage: layoutCanvas (arg1, arg2)

Parameters:
Returns: CanvasState

Lay out an existing canvas: resize every component to what the app will actually draw (createSymbolRecord, as buildComponent does), position the body by recursive bisection and pin Inputs and Outputs to edge columns in the order they appear in the component list — which therefore must be the sheet's intended port order, since a sheet's own port order is read off its I/O positions. Connections are untouched: with no vertices they are re-routed on load. Used by the Verilog compiler for its generated sheets.

arg0 : Component list
arg1 : Connection list
Returns: CanvasState

paramDefsOf sheet

Full Usage: paramDefsOf sheet

Parameters:
Returns: Result<ParameterDefs option, string>

The sheet's parameter declarations and slots, as Issie stores them. Slot expressions go through ParameterTypes.parseExpression - the same parser the properties pane uses - so an expression means here exactly what it would mean typed into a properties box. A slot naming a component that is not on the sheet, or an expression that will not parse, is an error rather than something silently dropped.

sheet : SheetDescription
Returns: Result<ParameterDefs option, string>

saveLibraryComponent libPath description dependencies sheet

Full Usage: saveLibraryComponent libPath description dependencies sheet

Parameters:
Returns: Result<unit, string>

Write `sheet` into the library at `libPath` as a component offered in the catalogue, along with the sheets it uses, which are written too but not offered. This runs under .NET as well as in the app: a library can be built by a program without Issie ever starting.

libPath : string
description : string
dependencies : SheetDescription list
sheet : SheetDescription
Returns: Result<unit, string>

saveProject folder sheets

Full Usage: saveProject folder sheets

Parameters:
Returns: Result<unit, string>

Write a whole project: every sheet, plus the empty .dprj marker that makes the directory a project rather than a directory that happens to contain sheets. Issie will open a directory without one, offering to put it back, but only a marked directory is recognised as a project without being asked about.

folder : string
sheets : SheetDescription list
Returns: Result<unit, string>

saveSheet folder sheet

Full Usage: saveSheet folder sheet

Parameters:
Returns: Result<unit, string>

Write the description out as a .dgm in `folder`, named after the sheet. A .dgm on its own is a sheet, not a project - use saveProject to make a directory Issie can open.

folder : string
sheet : SheetDescription
Returns: Result<unit, string>

toCanvasState sheet

Full Usage: toCanvasState sheet

Parameters:
Returns: Result<CanvasState, string>

The description as a laid-out canvas: real positions, no wire geometry.

sheet : SheetDescription
Returns: Result<CanvasState, string>

Type something to start searching.