forked from microsoft/TypeScript
/
completionsOverridingMethod8.ts
56 lines (49 loc) · 1.35 KB
/
completionsOverridingMethod8.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/// <reference path="fourslash.ts" />
// @newline: LF
// @Filename: /types1.ts
//// export interface I { foo: string }
// @Filename: /types2.ts
//// import { I } from "./types1";
//// export interface Base { method(p: I): void }
// @Filename: /index.ts
//// import { Base } from "./types2";
//// export class C implements Base {
//// /**/
//// }
goTo.marker("");
verify.completions({
marker: "",
isNewIdentifierLocation: true,
preferences: {
includeCompletionsWithInsertText: true,
includeCompletionsWithSnippetText: false,
includeCompletionsWithClassMemberSnippets: true,
},
includes: [{
name: "method",
sortText: completion.SortText.LocationPriority,
replacementSpan: {
fileName: "",
pos: 0,
end: 0,
},
insertText: "method(p: I): void {\n}",
hasAction: true,
source: completion.CompletionSource.ClassMemberSnippet,
}],
});
verify.applyCodeActionFromCompletion("", {
preferences: {
includeCompletionsWithInsertText: true,
includeCompletionsWithSnippetText: false,
includeCompletionsWithClassMemberSnippets: true,
},
name: "method",
source: completion.CompletionSource.ClassMemberSnippet,
description: "Includes imports of types referenced by 'method'",
newFileContent:
`import { I } from "./types1";
import { Base } from "./types2";
export class C implements Base {
}`
});