pub struct LexBuiltinsHandler { /* private fields */ }Expand description
Composite handler for the lex.* namespace.
Registry::register_namespace accepts one handler per namespace; the
composite shape lets every lex.* built-in live under a single
namespace registration while keeping per-label logic isolated.
Implementations across hooks:
on_resolve: onlyLexIncludeHandler(#532) — thelex.tabular.*/lex.media.*/lex.metadata.*labels return the defaultOk(None)because the legacyfrom_lexdirection inlex-babelalready hydrates the AST.on_format: implemented forlex.tabular.tableandlex.media.{image,video,audio}(#570 Phase 4b).lex.includeis resolve-only and falls back;lex.metadata.*flows through the render hook + legacy frontmatter promotion.
Implementations§
Trait Implementations§
Source§impl LexHandler for LexBuiltinsHandler
impl LexHandler for LexBuiltinsHandler
Source§fn on_format(
&self,
ctx: &FormatCtx,
) -> Result<Option<LexAnnotationOut>, HandlerError>
fn on_format( &self, ctx: &FormatCtx, ) -> Result<Option<LexAnnotationOut>, HandlerError>
Phase 4b of #570: emit the canonical Lex-source shape for the
built-in lex.tabular.* and lex.media.* labels.
The verbatim labels round-trip as :: lex.<family>.<kind> ::
closers with the body text and parameters carried verbatim from
the supplied WireNode::Verbatim. Anything else (e.g.
lex.include, metadata labels, unrecognised labels) returns
Ok(None) so the host falls back to its built-in formatter.
Source§fn on_resolve(&self, ctx: &LabelCtx) -> Result<Option<WireNode>, HandlerError>
fn on_resolve(&self, ctx: &LabelCtx) -> Result<Option<WireNode>, HandlerError>
Returns an AST replacement subtree, which the host splices into the
parent in place of the labelled node. Fires during the resolve phase,
before analyse.
Ok(None) leaves the original node in place.Source§fn on_label(&self, _ctx: &LabelCtx)
fn on_label(&self, _ctx: &LabelCtx)
Informational notification fired during the analyse phase. No response
is expected. Use this for handlers that maintain external state
(caches, indices, link graphs).
Source§fn on_validate(&self, _ctx: &LabelCtx) -> Result<Vec<Diagnostic>, HandlerError>
fn on_validate(&self, _ctx: &LabelCtx) -> Result<Vec<Diagnostic>, HandlerError>
Returns diagnostics for a labelled node. Fires during analyse, after
resolve.
Source§fn on_render(
&self,
_ctx: &LabelCtx,
_fmt: Format,
) -> Result<Option<RenderOut>, HandlerError>
fn on_render( &self, _ctx: &LabelCtx, _fmt: Format, ) -> Result<Option<RenderOut>, HandlerError>
Returns the labelled node’s representation in a target format. Fires
during
lexd convert or library-driven rendering. Ok(None) falls
back to default rendering of the underlying node.Source§fn on_hover(&self, _ctx: &LabelCtx) -> Result<Option<Hover>, HandlerError>
fn on_hover(&self, _ctx: &LabelCtx) -> Result<Option<Hover>, HandlerError>
Returns hover content for a labelled node. Fires in response to
textDocument/hover LSP requests.Source§fn on_completion(
&self,
_ctx: &LabelCtx,
) -> Result<Vec<Completion>, HandlerError>
fn on_completion( &self, _ctx: &LabelCtx, ) -> Result<Vec<Completion>, HandlerError>
Returns completion items for a position inside a labelled node’s
params or body. Fires in response to
textDocument/completion.Source§fn on_code_action(
&self,
_ctx: &LabelCtx,
) -> Result<Vec<CodeAction>, HandlerError>
fn on_code_action( &self, _ctx: &LabelCtx, ) -> Result<Vec<CodeAction>, HandlerError>
Returns code actions for a labelled node. Fires in response to
textDocument/codeAction.Auto Trait Implementations§
impl Freeze for LexBuiltinsHandler
impl !RefUnwindSafe for LexBuiltinsHandler
impl Send for LexBuiltinsHandler
impl Sync for LexBuiltinsHandler
impl Unpin for LexBuiltinsHandler
impl UnsafeUnpin for LexBuiltinsHandler
impl !UnwindSafe for LexBuiltinsHandler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more