Skip to content

Commit 2be6aaf

Browse files
author
Andy
authored
Support '/' as a trigger character in path completions (microsoft#24042)
1 parent 6ae4d3a commit 2be6aaf

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/services/completions.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2218,7 +2218,9 @@ namespace ts.Completions {
22182218
// Opening JSX tag
22192219
return contextToken.kind === SyntaxKind.LessThanToken && contextToken.parent.kind !== SyntaxKind.BinaryExpression;
22202220
case "/":
2221-
return isJsxClosingElement(contextToken.parent);
2221+
return isStringLiteralLike(contextToken)
2222+
? !!tryGetImportFromModuleSpecifier(contextToken)
2223+
: contextToken.kind === SyntaxKind.SlashToken && isJsxClosingElement(contextToken.parent);
22222224
default:
22232225
return Debug.assertNever(triggerCharacter);
22242226
}

tests/cases/fourslash/completionsTriggerCharacter.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,20 @@
99

1010
////// "/*quoteInComment*/ </*lessInComment*/
1111

12+
// @Filename: /foo/importMe.ts
13+
////whatever
14+
1215
// @Filename: /a.tsx
1316
////declare namespace JSX {
1417
//// interface Element {}
1518
//// interface IntrinsicElements {
1619
//// div: {};
1720
//// }
1821
////}
19-
////const ctr = </*openTag*/
20-
////const less = 1 </*lessThan*/
21-
////const closeTag = <div> foo <//*closeTag*/
22+
////const ctr = </*openTag*/;
23+
////const less = 1 </*lessThan*/;
24+
////const closeTag = <div> foo <//*closeTag*/;
25+
////import something from "./foo//*path*/";
2226
////const divide = 1 //*divide*/
2327

2428
verify.completions(
@@ -37,5 +41,6 @@ verify.completions(
3741
{ marker: "openTag", includes: "div", triggerCharacter: "<" },
3842
{ marker: "lessThan", exact: undefined, triggerCharacter: "<" },
3943
{ marker: "closeTag", exact: "div", triggerCharacter: "/" },
44+
{ marker: "path", exact: "importMe", triggerCharacter: "/", isNewIdentifierLocation: true },
4045
{ marker: "divide", exact: undefined, triggerCharacter: "/" },
4146
);

0 commit comments

Comments
 (0)