ExAthena.Lsp.Supervisor (ExAthena v0.6.0)

Copy Markdown View Source

Top-level supervisor for the LSP subsystem.

Starts three children in :rest_for_one order:

  1. Registry (unique, named ExAthena.Lsp.Registry) — clients register under {root, language} via-tuples so the Manager can look them up without holding a mutable pid map.
  2. DynamicSupervisor (named ExAthena.Lsp.ClientSupervisor) — owns client lifecycle; restarts failed clients up to 3 times per 60 s.
  3. ExAthena.Lsp.Manager — the public façade for spawning and locating clients.

Enabled by default; set config :ex_athena, enable_lsp: false to skip (used in test config so individual tests opt in via start_supervised!/1).

Summary

Functions

Returns a specification to start this module under a supervisor.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts)