Skip to content

Commit 4a8a4bd

Browse files
Fourslash
1 parent 5e66a09 commit 4a8a4bd

13 files changed

+28
-28
lines changed

src/harness/fourslashInterfaceImpl.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,6 +1015,11 @@ export namespace Completion {
10151015
kindModifiers: "declare",
10161016
sortText: SortText.GlobalsOrKeywords
10171017
});
1018+
const pseudoVarEntry = (name: string): ExpectedCompletionEntryObject => ({
1019+
name,
1020+
kind: "var",
1021+
sortText: SortText.GlobalsOrKeywords
1022+
});
10181023
const moduleEntry = (name: string): ExpectedCompletionEntryObject => ({
10191024
name,
10201025
kind: "module",
@@ -1065,8 +1070,9 @@ export namespace Completion {
10651070
sortText: SortText.GlobalsOrKeywords
10661071
});
10671072
}
1068-
export const keywordsWithUndefined: readonly ExpectedCompletionEntryObject[] = res;
1069-
export const keywords: readonly ExpectedCompletionEntryObject[] = keywordsWithUndefined.filter(k => k.name !== "undefined");
1073+
const pseudoVarKeywords = ["Infinity", "NaN", "undefined"];
1074+
export const keywordsWithPseudoVars: readonly ExpectedCompletionEntryObject[] = res;
1075+
export const keywords: readonly ExpectedCompletionEntryObject[] = keywordsWithPseudoVars.filter(k => pseudoVarKeywords.includes(k.name));
10701076

10711077
export const typeKeywords: readonly ExpectedCompletionEntryObject[] = [
10721078
"any",
@@ -1446,7 +1452,6 @@ export namespace Completion {
14461452
varEntry("Float32Array"),
14471453
varEntry("Float64Array"),
14481454
varEntry("Function"),
1449-
varEntry("Infinity"),
14501455
moduleEntry("Intl"),
14511456
varEntry("Int16Array"),
14521457
varEntry("Int32Array"),
@@ -1455,7 +1460,6 @@ export namespace Completion {
14551460
functionEntry("isNaN"),
14561461
varEntry("JSON"),
14571462
varEntry("Math"),
1458-
varEntry("NaN"),
14591463
varEntry("Number"),
14601464
varEntry("Object"),
14611465
functionEntry("parseFloat"),
@@ -1531,18 +1535,14 @@ export namespace Completion {
15311535
return ts.compareStringsCaseSensitiveUI(typeof a === "string" ? a : a.name, typeof b === "string" ? b : b.name);
15321536
}
15331537

1534-
export const undefinedVarEntry: ExpectedCompletionEntryObject = {
1535-
name: "undefined",
1536-
kind: "var",
1537-
sortText: SortText.GlobalsOrKeywords
1538-
};
1538+
export const pseudoVars: ExpectedCompletionEntryObject[] = pseudoVarKeywords.map(pseudoVarEntry);
15391539
// TODO: many of these are inappropriate to always provide
15401540
export const globalsInsideFunction = (plus: readonly ExpectedCompletionEntry[], options?: { noLib?: boolean }): readonly ExpectedCompletionEntry[] => [
15411541
{ name: "arguments", kind: "local var" },
15421542
...plus,
15431543
globalThisEntry,
15441544
...options?.noLib ? [] : globalsVars,
1545-
undefinedVarEntry,
1545+
...pseudoVars,
15461546
...globalKeywordsInsideFunction,
15471547
].sort(compareExpectedCompletionEntries);
15481548

@@ -1554,7 +1554,7 @@ export namespace Completion {
15541554
globalThisEntry,
15551555
...options?.noLib ? [] : globalsVars,
15561556
...plus,
1557-
undefinedVarEntry,
1557+
...pseudoVars,
15581558
...globalInJsKeywordsInsideFunction,
15591559
].sort(compareExpectedCompletionEntries);
15601560

@@ -1682,22 +1682,22 @@ export namespace Completion {
16821682
export const globals: readonly ExpectedCompletionEntryObject[] = [
16831683
globalThisEntry,
16841684
...globalsVars,
1685-
undefinedVarEntry,
1685+
...pseudoVars,
16861686
...globalKeywords
16871687
].sort(compareExpectedCompletionEntries);
16881688

16891689
export const globalsInJs: readonly ExpectedCompletionEntryObject[] = [
16901690
globalThisEntry,
16911691
...globalsVars,
1692-
undefinedVarEntry,
1692+
...pseudoVars,
16931693
...globalInJsKeywords
16941694
].sort(compareExpectedCompletionEntries);
16951695

16961696
export function globalsPlus(plus: readonly ExpectedCompletionEntry[], options?: { noLib?: boolean }) {
16971697
return combineExpectedCompletionEntries("globalsPlus", [
16981698
globalThisEntry,
16991699
...options?.noLib ? [] : globalsVars,
1700-
undefinedVarEntry,
1700+
...pseudoVars,
17011701
...globalKeywords,
17021702
], plus);
17031703
}
@@ -1706,7 +1706,7 @@ export namespace Completion {
17061706
return combineExpectedCompletionEntries("globalsInJsPlus", [
17071707
globalThisEntry,
17081708
...options?.noLib ? [] : globalsVars,
1709-
undefinedVarEntry,
1709+
...pseudoVars,
17101710
...globalInJsKeywords,
17111711
], plus);
17121712
}

tests/cases/fourslash/completionAfterGlobalThis.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ verify.completions({
77
unsorted: [
88
completion.globalThisEntry,
99
...completion.globalsVars,
10-
completion.undefinedVarEntry
10+
...completion.pseudoVars
1111
].map(e => {
1212
if (e.sortText === completion.SortText.Deprecated(completion.SortText.GlobalsOrKeywords)) {
1313
return { ...e, sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) };

tests/cases/fourslash/completionEntryForClassMembers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ verify.completions(
132132
"arguments",
133133
completion.globalThisEntry,
134134
"B", "C", "D", "D1", "D2", "D3", "D4", "D5", "D6", "E", "F", "F2", "G", "G2", "H", "I", "J", "K", "L", "L2", "M", "N", "O",
135-
completion.undefinedVarEntry,
135+
...completion.pseudoVars,
136136
...completion.insideMethodKeywords,
137137
],
138138
},

tests/cases/fourslash/completionListIsGlobalCompletion.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ verify.completions(
4949
{ marker: "10", exact: completion.classElementKeywords, isGlobalCompletion: false, isNewIdentifierLocation: true },
5050
{ marker: "13", exact: globals, isGlobalCompletion: false },
5151
{ marker: "15", exact: globals.filter(name => name !== 'x'), isGlobalCompletion: true, isNewIdentifierLocation: true },
52-
{ marker: "16", unsorted: [...x, completion.globalThisEntry, ...completion.globalsVars, completion.undefinedVarEntry].filter(name => name !== 'user'), isGlobalCompletion: false },
52+
{ marker: "16", unsorted: [...x, completion.globalThisEntry, ...completion.globalsVars, ...completion.pseudoVars].filter(name => name !== 'user'), isGlobalCompletion: false },
5353
{ marker: "17", exact: completion.globalKeywords, isGlobalCompletion: false },
5454
);

tests/cases/fourslash/completionsImport_filteredByPackageJson_reexport.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
verify.completions({
3838
marker: test.marker(""),
3939
includes: [
40-
completion.undefinedVarEntry,
40+
...completion.pseudoVars,
4141
{
4242
name: "css",
4343
source: "/node_modules/@emotion/core/index",

tests/cases/fourslash/completionsImport_filteredByPackageJson_reexport2.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
verify.completions({
4444
marker: test.marker(""),
4545
includes: [
46-
completion.undefinedVarEntry,
46+
...completion.pseudoVars,
4747
{
4848
name: "foo",
4949
source: "/node_modules/b_/index",

tests/cases/fourslash/completionsImport_filteredByPackageJson_reexport3.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
verify.completions({
3434
marker: test.marker(""),
3535
includes: [
36-
completion.undefinedVarEntry,
36+
...completion.pseudoVars,
3737
{
3838
name: "foo",
3939
source: "/node_modules/b/index",

tests/cases/fourslash/completionsImport_filteredByPackageJson_reexport4.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
verify.completions({
4343
marker: test.marker(""),
4444
includes: [
45-
completion.undefinedVarEntry,
45+
...completion.pseudoVars,
4646
{
4747
name: "foo",
4848
source: "/node_modules/c/index",

tests/cases/fourslash/completionsImport_keywords.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ verify.completions(
3636
unsorted: [
3737
completion.globalThisEntry,
3838
...completion.globalsVars,
39-
completion.undefinedVarEntry,
39+
...completion.pseudoVars,
4040
{
4141
name: "unique",
4242
source: "/a",

tests/cases/fourslash/completionsImport_ofAlias.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
verify.completions({
2626
marker: "",
2727
includes: [
28-
completion.undefinedVarEntry,
28+
...completion.pseudoVars,
2929
{
3030
name: "foo",
3131
source: "/a",

tests/cases/fourslash/completionsThisProperties_globalSameName.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ verify.completions({
3535
text: "var foot: string"
3636
},
3737
"Service",
38-
completion.undefinedVarEntry,
38+
...completion.pseudoVars,
3939
{
4040
name: "serve",
4141
insertText: "this.serve",

tests/cases/fourslash/fourslash.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -887,20 +887,20 @@ declare namespace completion {
887887
SwitchCases = "SwitchCases/",
888888
}
889889
export const globalThisEntry: Entry;
890-
export const undefinedVarEntry: Entry;
891890
export const globals: ReadonlyArray<Entry>;
892891
export const globalsInJs: ReadonlyArray<Entry>;
893892
export const globalKeywords: ReadonlyArray<Entry>;
894893
export const globalInJsKeywords: ReadonlyArray<Entry>;
895894
export const insideMethodKeywords: ReadonlyArray<Entry>;
896895
export const insideMethodInJsKeywords: ReadonlyArray<Entry>;
897896
export const globalsVars: ReadonlyArray<Entry>;
897+
export const pseudoVars: ReadonlyArray<Entry>;
898898
export function sorted(entries: ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>): ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>;
899899
export function globalsInsideFunction(plus: ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>, options?: GlobalsPlusOptions): ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>;
900900
export function globalsInJsInsideFunction(plus: ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>, options?: GlobalsPlusOptions): ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>;
901901
export function globalsPlus(plus: ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>, options?: GlobalsPlusOptions): ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>;
902902
export function globalsInJsPlus(plus: ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>, options?: GlobalsPlusOptions): ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>;
903-
export const keywordsWithUndefined: ReadonlyArray<Entry>;
903+
export const keywordsWithPseudoVars: ReadonlyArray<Entry>;
904904
export const keywords: ReadonlyArray<Entry>;
905905
export const typeKeywords: ReadonlyArray<Entry>;
906906
export function typeKeywordsPlus(plus: ReadonlyArray<FourSlashInterface.ExpectedCompletionEntry>): ReadonlyArray<Entry>;

tests/cases/fourslash/tsxCompletionOnOpeningTagWithoutJSX1.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
//// var x = 'something'
55
//// var y = </**/;
66

7-
verify.completions({ marker: "", unsorted: [completion.globalThisEntry, ...completion.globalsVars, "x", completion.undefinedVarEntry] });
7+
verify.completions({ marker: "", unsorted: [completion.globalThisEntry, ...completion.globalsVars, "x", ...completion.pseudoVars] });

0 commit comments

Comments
 (0)