Skip to content

CEP-0045: LSP Feature Scope

Draft

Draft proposal for Catalyst language-server feature scope. V1 docs require tooling-visible semantics but do not define a complete LSP product.

Summary

Catalyst should eventually define the expected LSP feature set and how it consumes compiler metadata.

V1 language docs require semantic information to be inspectable, but LSP implementation scope is deferred.

Example

Illustrative hover payload:

fn map(comptime U: Type, f: *fn (T) U) Vec(U)
generated: no
dispatch: static

The proposal should decide which compiler facts are surfaced through hover, completion, go-to-definition, diagnostics, and generated declaration views.

Motivation

The language is designed around tooling visibility. LSP scope should be explicit so generated declarations, comptime evaluation, reflection, diagnostics, and formatting have consistent IDE behavior.

Proposed Direction

The proposal should cover:

  • go-to-definition and references;
  • hover and signature help;
  • autocomplete and member lists;
  • diagnostics and lint reporting;
  • generated declaration visibility;
  • formatting integration;
  • project/module graph handling.

V1 Compatibility

V1 compiler implementation can expose metadata without promising a full LSP feature set.