Liking cljdoc? Tell your friends :D

hive-addon.runtime.boundary

Effectful boundary for client runtimes: runs the plans built by hive-addon.runtime.plan and provisions an injected addon's runtimes.

Effects go through two injected ports: IRuntimeFs for files and an eval-fn (fn [client commands]) for clients that are already running. local-fs is the production filesystem; recording-fs records effects for tests and can fail on demand. run-plan! never throws: it stops at the first failing effect and reports the rest as skipped.

provisioner is the composition a host passes to hive-addon.mount/mount! as :provision, and to teardown! as :deprovision.

Rationale lives in hive memory (KG-linked), not here.

Effectful boundary for client runtimes: runs the plans built by
hive-addon.runtime.plan and provisions an injected addon's runtimes.

Effects go through two injected ports: IRuntimeFs for files and an eval-fn
(fn [client commands]) for clients that are already running. `local-fs` is
the production filesystem; `recording-fs` records effects for tests and can
fail on demand. `run-plan!` never throws: it stops at the first failing
effect and reports the rest as skipped.

`provisioner` is the composition a host passes to hive-addon.mount/mount!
as :provision, and to teardown! as :deprovision.

Rationale lives in hive memory (KG-linked), not here.
raw docstring

hive-addon.runtime.plan

Pure planning for client runtimes: which directory a runtime installs into, the loader a client runs, and the effect plans that install it, remove it, and activate it in clients that are already running.

Every function here is pure. Paths are computed from an explicit :home, so nothing reads the environment; hive-addon.runtime.boundary runs the plans.

A client kind is data (a profile in default-profiles or one a host passes) plus a loader kind. Rendering is open for extension through the loader-source and live-commands multimethods, dispatched on the profile's :profile/loader, so a new client adds methods rather than branches.

Rationale lives in hive memory (KG-linked), not here.

Pure planning for client runtimes: which directory a runtime installs into,
the loader a client runs, and the effect plans that install it, remove it,
and activate it in clients that are already running.

Every function here is pure. Paths are computed from an explicit :home, so
nothing reads the environment; hive-addon.runtime.boundary runs the plans.

A client kind is data (a profile in `default-profiles` or one a host passes)
plus a loader kind. Rendering is open for extension through the
`loader-source` and `live-commands` multimethods, dispatched on the
profile's :profile/loader, so a new client adds methods rather than branches.

Rationale lives in hive memory (KG-linked), not here.
raw docstring

hive-addon.runtime.schema

Value objects for CLIENT RUNTIMES: the editor-side code an addon ships (a Vim runtime directory, and later elisp) and what a host does to make a client load it when the addon is injected.

A RuntimeDecl is data an addon carries in its mount manifest under :addon/runtime, or that a host supplies for an addon that does not. A ClientProfile says where a client kind autoloads code from. An Effect is one step of a provisioning plan; plans are pure data run by hive-addon.runtime.boundary.

Rationale lives in hive memory (KG-linked), not here.

Value objects for CLIENT RUNTIMES: the editor-side code an addon ships (a
Vim runtime directory, and later elisp) and what a host does to make a
client load it when the addon is injected.

A RuntimeDecl is data an addon carries in its mount manifest under
:addon/runtime, or that a host supplies for an addon that does not. A
ClientProfile says where a client kind autoloads code from. An Effect is one
step of a provisioning plan; plans are pure data run by
hive-addon.runtime.boundary.

Rationale lives in hive memory (KG-linked), not here.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close