Skip to content

Add auto-import operation completion #74

Description

@itsfuad

Goal

Add auto-import support for operation completion after . and |>.

Required design

  • Extend operation discovery beyond current module and direct imports without rescanning dependency graph per request.
  • Preserve defining module, canonical module identity, import path, export visibility, and symbol identity in semantic operation catalog.
  • Generate import edits together with syntax-correct dot and pipe call edits.
  • Handle aliases, existing imports, name collisions, duplicate candidates, unavailable symbols, and private symbols deterministically.
  • Keep current-module methods separate from importable free functions.
  • Reuse cursor-local semantic context and indexed prefix lookup.

Constraints

  • Do not re-resolve symbols in LSP.
  • Do not mutate shared generic symbols with call-site types.
  • Do not replace non-empty argument lists.
  • Keep UTF-16 edit ranges and isolated completion compilation correct.
  • Reuse package resolver identity; do not create LSP-specific version resolution. Future MVS work is tracked by Adopt Go-style module version selection #58.

Relationships

Validation

  • Completion tests for unimported workspace and dependency functions.
  • Existing import, alias, collision, private symbol, and duplicate-path cases.
  • Applied-edit tests for dot and pipe syntax with empty and non-empty calls.
  • Large-catalog regression proving completion does not walk every module symbol.
  • LSP race test and bundled source fixture.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions