Directives

class esbonio.server.features.directives.DirectiveFeature(*args, **kwargs)[source]

‘Backend’ support for directives.

It’s this language feature’s responsibility to provide an API that exposes the information a “frontend” language feature may want.

add_directive_argument_provider(name, provider)[source]

Register a directive argument provider.

Parameters:

provider (DirectiveArgumentProvider) – The directive argument provider

add_directive_provider(provider)[source]

Register a directive provider.

Parameters:

provider (DirectiveProvider) – The directive provider

async get_directive(uri, name)[source]

Return the definition of the given directive name.

Parameters:
  • uri (Uri) – The uri of the document in which the directive name appears

  • name (str) – The name of the directive, as the user would type into a document.

Returns:

The directive’s definition, if known

Return type:

types.Directive | None

async suggest_arguments(context, directive_name)[source]

Suggest directive arguments that may be used, given a completion context.

Parameters:
  • context (CompletionContext) – The completion context

  • directive_name (str) – The directive to suggest arguments for

async suggest_directives(context)[source]

Suggest directives that may be used, given a completion context.

Parameters:

context (CompletionContext) – The completion context.

Providers

class esbonio.server.features.directives.providers.DirectiveArgumentProvider(esbonio)[source]

Base class for directive argument providers.

suggest_arguments(context, **kwargs)[source]

Given a completion context, suggest directive arguments that may be used.

class esbonio.server.features.directives.providers.ValuesProvider(esbonio)[source]

Simple completions provider that supports a static list of values.

suggest_arguments(context, *, values)[source]

Given a completion context, suggest directive arguments that may be used.

class esbonio.server.features.directives.providers.FilepathProvider(esbonio)[source]

Argument provider for filepaths.

suggest_arguments(context, *, root='/', pattern=None)[source]

Given a completion context, suggest files (or folders) that may be used.

Parameters:
  • root (str) – If the user provides an absolute path, generate suggestions relative to this directory.

  • pattern (str | None) – If set, limit suggestions only to matching files.

Returns:

A list of completion items to suggest.

Return type:

list[lsp.CompletionItem]