Skip to content

Commit 38f3b05

Browse files
31304 - Autocomplete for enum values fails when typing "/" (#31362)
31304 - Autocomplete for enum values fails when typing "/"
2 parents b724c13 + 8965650 commit 38f3b05

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

src/services/completions.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ namespace ts.Completions {
4949
const compilerOptions = program.getCompilerOptions();
5050

5151
const contextToken = findPrecedingToken(position, sourceFile);
52-
if (triggerCharacter && !isValidTrigger(sourceFile, triggerCharacter, contextToken, position)) return undefined;
52+
if (triggerCharacter && !isInString(sourceFile, position, contextToken) && !isValidTrigger(sourceFile, triggerCharacter, contextToken, position)) {
53+
return undefined;
54+
}
5355

5456
const stringCompletions = StringCompletions.getStringLiteralCompletions(sourceFile, position, contextToken, typeChecker, compilerOptions, host, log, preferences);
5557
if (stringCompletions) {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
//// type A = "a/b" | "b/a";
4+
//// const a: A = "a/*1*/";
5+
////
6+
//// type B = "a@b" | "b@a";
7+
//// const a: B = "a@/*2*/";
8+
////
9+
//// type C = "a.b" | "b.a";
10+
//// const c: C = "a./*3*/";
11+
////
12+
//// type D = "a'b" | "b'a";
13+
//// const d: D = "a'/*4*/";
14+
////
15+
//// type E = "a`b" | "b`a";
16+
//// const e: E = "a`/*5*/";
17+
////
18+
//// type F = 'a"b' | 'b"a';
19+
//// const f: F = 'a"/*6*/';
20+
////
21+
//// type G = "a<b" | "b<a";
22+
//// const g: G = 'a</*7*/';
23+
24+
verify.completions({ marker: '1', exact: ["a/b", "b/a"], triggerCharacter: "/" });
25+
verify.completions({ marker: "2", exact: ["a@b", "b@a"], triggerCharacter: "@" });
26+
verify.completions({ marker: "3", exact: ["a.b", "b.a"], triggerCharacter: "." });
27+
verify.completions({ marker: "4", exact: ["a'b", "b'a"], triggerCharacter: "'" });
28+
verify.completions({ marker: "5", exact: ["a`b", "b`a"], triggerCharacter: "`" });
29+
verify.completions({ marker: "6", exact: ['a"b', 'b"a'], triggerCharacter: '"' });
30+
verify.completions({ marker: "7", exact: ["a<b", "b<a"], triggerCharacter: '<' });

0 commit comments

Comments
 (0)