Dill Data Types
Here are the data types used by Dill, as defined in /sys/lull.hoon.
$blew
$blewTerminal dimension.
+$ blew [p=@ud q=@ud].p is columns, .q is rows. This structure is passed to Dill by the runtime in a %blew task whenever the dimensions of the terminal changes.
$belt
$beltTerminal client input.
+$ belt :: client input
$? bolt :: simple input
[%mod mod=?(%ctl %met %hyp) key=bolt] :: w/ modifier
[%txt p=(list @c)] :: utf32 text
::TODO consider moving %hey, %rez, %yow here ::
== :: A $belt is passed to Dill in a %belt task by the runtime whenever there is input, such as a user typing in the console. This is only used between the terminal client and Dill, a $dill-belt is used between Dill and Arvo.
May either be a $bolt or one of:
%mod- Modifier (Ctrl, Meta or Hyper) plus a key (see$bolt.%txt- A series of UTF-32 characters.
--
$bolt
$boltSimple input.
Either a single UTF-32 character or one of:
%aro- Arrow keys.%bac- Backspace key.%del- Delete key.%hit- Mouse click -ris row andcis column. Note these are zero-indexed, with[0 0]being the bottom left corner.%ret- Return (Enter) key.
$blit
$blitTerminal client output.
A $blit is given to the terminal client by Dill in a %blit gift when it wants to print some text, clear the screen, go ding or what have you.
This is directly used between Dill and the terminal client, while a $dill-blit is used between Arvo and Dill. A $dill-blit includes the $blit union as a subset.
A $blit is one of:
%bel- Ring the terminal bell.%clr- Clear the screen.%hop- Set cursor position. If.pis an atom, it specifies the horizontal position on the prompt line. If.pis a cell, it represents a 2D location where.xis columns and.yis rows.%klr- Set styled line, the$stubspecifies the text and style.%mor- multiple$blits.%nel- a newline.%put- put text (as a list of UTF-32 characters) at the current cursor position.%sag- Save to jamfile, typically in/[pier]/.urb/put/..pis/[path]/[filename]/[extension]. For example,/foo/barwill save it in/[pier]/.urb/put/foo.bar,/a/b/c/foo/barwill save it in/[pier]/.urb/put/a/b/c/foo.bar, and/foowill save it in/[pier]/.urb/put.foo..qis the$nounto+jamand save in the file.%sav- Save to file. Same behaviour as%sagexcept.qis an$atomrather than a$nounand therefore doesn't need to be+jammed. The$atomis written to disk as if it were the bytestring in the tail of an$octs. That is,%saving the$cord'abcdef', whose@uxvalue is0x6665.6463.6261, results in a unix file whose hex dump renders as61 62 63 64 65 66.%url- Activate URL,.pis the URL.%wyp- clear the cursor line.
$dill-belt
$dill-beltTerminal input for Arvo.
A $belt is used between the terminal client and Dill, while a $dill-belt is used between Dill and Arvo. A $dill-belt includes the $belt union as a subset.
a $dill-belt is either $belt or one of:
%cru- Echo error,.pis some error tag and.qis a stack trace.%hey- Refresh.%rez- Terminal resized,.pis columns and.qis rows.%yow- Connect to app.
$dill-blit
$dill-blitTerminal output from Arvo.
While $blit is used between Dill and the terminal client, $dill-blit is used between Arvo and Dill. A $blit is a subset of a $dill-blit.
A $dill-blit is either a $blit or a:
%qit- Close console.
$flog
$flogWrapped Dill tasks.
These are a subset of Dill's tasks which can be wrapped in a %flog task. See the API Reference document for details of each of these tasks.
$poke
$pokeDill to userspace.
A $dill-belt (client input) for a particular session.
$session-task
$session-taskA subset of Dill's tasks for interacting with a particular session.
This type is used in the %shot wrapper task.
See the Session Tasks entry in the API reference for more details of these tasks.
$told
$toldA subset of Dill's tasks for basic text printing.
See the $told tasks entry in the API reference for more details of these tasks.
Last updated