Repository navigation
Conversation
Completions now use the text up to the cursor to find the directory to list, and replace the whole path segment under the cursor rather than VS Code's default word range. Also pass filenames to git check-ignore as arguments instead of via a shell, and continue completing into directories after selecting one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WKPZdizxX2RkqTQYLj6HcK
|
Cause: Starting with VS Code 1.110, the macOS app bundle names its executable Fix: None exists yet. - "@vscode/test-electron": "^2.3.9",
+ "@vscode/test-electron": "^3.1.0",
...
"volta": {
- "node": "18.14.2"
+ "node": "22.x.y"
}and regenerate Generated by Claude Code |
Problem
Picking a path completion while editing an existing path in CODEOWNERS added text after what was there instead of replacing it. There were two causes:
parseAbsolutePatternFromLineread the whole path on the line and ignored the cursor position. With/src/comp|onents/Button.tsx(|is the cursor) it tried to list/src/components/Button.tsxas a folder and returned nothing. With/src/comp|onentsit listed the contents ofcomponents/, one level too deep.range, so VS Code used its default word range, which splits on/,.and-. Pickingfile.test.tswith the cursor insidemy-fi|le.test.tsreplaced only part of the name and left the rest behind.Changes
parsePathSegmentAtCursoruses only the text before the cursor. The folder to list is everything up to the last/. The part being completed runs from there to the next/, whitespace,#or end of line, and every item'srangecovers that whole part, so selecting one replaces it.name/and opens the next list of suggestions. It skips the/if one already follows.git check-ignorenow runs throughexecFilewith a list of arguments instead of a shell string. File names with spaces or shell characters no longer break the command or get run by the shell.git check-ignoreoutput are no longer added to the ignored set.fs.promises.readdirinstead ofreaddirSync, and drops the extra lodash sort becausesortTextalready sets the order.Testing
test/suite/path-completion-item-provider.test.tswith unit tests forparsePathSegmentAtCursor.npm testunder xvfb: 12 passing.npm run typecheckand eslint are clean.Generated by Claude Code