Skip to content

Add safe rename, references, and embedded Rhai/CEL editor assistance #398

Description

@jeremi

Tracked by #399. Depends on #393.

Outcome

The shared Registry Stack language server moves beyond MVP navigation to safe project-wide refactoring and useful assistance inside authored Rhai and CEL expressions.

Depends on the shared language-server MVP.

Scope

  • Find all references for integrations, entities, services, consultation aliases, outputs, claims, credential profiles, and fixtures.
  • Prepare and apply safe project-wide rename edits.
  • Reject renames that collide, violate identifier constraints, or would produce an invalid project graph.
  • Use the generated xw.v1 editor metadata for Rhai helper completion, hover, and signature help.
  • Provide context-aware completion for project symbols referenced inside supported CEL and authored expression strings.
  • Add targeted quick fixes where the compiler can identify an unambiguous correction.
  • Keep expression assistance aligned with the released compiler/runtime ABI rather than a handwritten editor-only function list.

Acceptance criteria

  • Find references returns all and only semantic references across a golden project workspace.
  • Rename produces a project that passes schema and compiler validation.
  • Invalid, ambiguous, or security-sensitive renames are refused with an actionable explanation.
  • Rhai xw.v1 completion, hover, and signature help are generated from the same registration catalogue used by Relay.
  • CEL completion is limited to symbols actually available in the selected authored context.
  • Expression parsing never executes authored code or resolves credentials.
  • Regression tests cover flow-style and block-style YAML, quoted scalars, aliases supported by the authoring parser, and multiple project roots.
  • VS Code and Zed expose equivalent LSP-backed behavior where each editor supports the protocol capability.

Non-goals

  • A general-purpose Rhai or CEL IDE
  • Runtime debugging
  • Live source inspection

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions