Skip to content

Strip matching prefix in path mapping completions#4053

Open
gabritto wants to merge 2 commits into
mainfrom
gabritto/issue3981
Open

Strip matching prefix in path mapping completions#4053
gabritto wants to merge 2 commits into
mainfrom
gabritto/issue3981

Conversation

@gabritto
Copy link
Copy Markdown
Member

@gabritto gabritto commented May 25, 2026

Fixes #3981.

Nice to notice Strada didn't have this problem because this scenario was just completely broken then. 😅

Copilot AI review requested due to automatic review settings May 25, 2026 22:28
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes an issue in the language service’s module-specifier/path-mapping completion logic where completion items could repeat already-typed path components (e.g. suggesting unstable/ast when completing under .../unstable/, leading to unstable/unstable/... after commit).

Changes:

  • Strip the already-typed fragment directory prefix from path-mapping completion item names when the completion target already includes the fragment.
  • Add fourslash regression tests covering partial-path completions for relative imports and package deep-imports (with and without exports, including wildcard patterns).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
internal/ls/string_completions.go Adjusts path-mapping completion name shaping to trim the fragment directory prefix and avoid duplicated path components.
internal/fourslash/tests/pathCompletionsPartialPath_test.go Adds regression tests verifying expected completion items for partial-path module specifiers across several scenarios.

@gabritto gabritto requested a review from andrewbranch May 25, 2026 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Excess path components suggested in completions

2 participants