pub struct LexIncludeHandler { /* private fields */ }Expand description
Built-in handler for the lex.include label.
Implementations§
Source§impl LexIncludeHandler
impl LexIncludeHandler
Sourcepub fn new(loader: Arc<dyn Loader + Send + Sync>, config: ResolveConfig) -> Self
pub fn new(loader: Arc<dyn Loader + Send + Sync>, config: ResolveConfig) -> Self
Construct a handler from a loader (typically crate::lex::includes::FsLoader
in production, [crate::lex::includes::MemoryLoader] in tests)
and a resolve config bundling the resolution root plus depth /
total-include caps.
Depth and total-include limits are not enforced by the handler itself; they belong to the resolve-pass walker that wraps dispatches across the document. The handler stores the config so that future hooks (validate, render) can read its limits without an additional indirection.
Trait Implementations§
Source§impl LexHandler for LexIncludeHandler
impl LexHandler for LexIncludeHandler
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. Read moreSource§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_ir_build(&self, _ctx: &LabelCtx) -> Result<Option<WireNode>, HandlerError>
fn on_ir_build(&self, _ctx: &LabelCtx) -> Result<Option<WireNode>, HandlerError>
Returns a typed wire node consumed by the host while building its
in-memory IR from the parsed source. Fires during IR construction
(
from_lex), strictly after parsing and strictly before render.
Ok(None) falls back to the host’s generic verbatim/annotation IR. Read moreSource§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.Source§fn on_format(
&self,
_ctx: &FormatCtx,
) -> Result<Option<LexAnnotationOut>, HandlerError>
fn on_format( &self, _ctx: &FormatCtx, ) -> Result<Option<LexAnnotationOut>, HandlerError>
Returns the Lex-source representation of a typed AST subtree
owned by this handler’s namespace — the inverse of
on_resolve, and the reverse-direction
sibling of on_render for the Lex target
format. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for LexIncludeHandler
impl !UnwindSafe for LexIncludeHandler
impl Freeze for LexIncludeHandler
impl Send for LexIncludeHandler
impl Sync for LexIncludeHandler
impl Unpin for LexIncludeHandler
impl UnsafeUnpin for LexIncludeHandler
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