package fourslash_test import ( "testing" "efprojects.com/kitten-ipc/kitcom/internal/tsgo/fourslash" . "efprojects.com/kitten-ipc/kitcom/internal/tsgo/fourslash/tests/util" "efprojects.com/kitten-ipc/kitcom/internal/tsgo/lsp/lsproto" "efprojects.com/kitten-ipc/kitcom/internal/tsgo/testutil" ) func TestCompletionsWithStringReplacementMode1(t *testing.T) { t.Parallel() defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `interface TFunction { (_: 'login.title', __?: {}): string; (_: 'login.description', __?: {}): string; (_: 'login.sendEmailAgree', __?: {}): string; (_: 'login.termsOfUse', __?: {}): string; (_: 'login.privacyPolicy', __?: {}): string; (_: 'login.sendEmailButton', __?: {}): string; (_: 'login.emailInputPlaceholder', __?: {}): string; (_: 'login.errorWrongEmailTitle', __?: {}): string; (_: 'login.errorWrongEmailDescription', __?: {}): string; (_: 'login.errorGeneralEmailTitle', __?: {}): string; (_: 'login.errorGeneralEmailDescription', __?: {}): string; (_: 'login.loginErrorTitle', __?: {}): string; (_: 'login.loginErrorDescription', __?: {}): string; (_: 'login.openEmailAppErrorTitle', __?: {}): string; (_: 'login.openEmailAppErrorDescription', __?: {}): string; (_: 'login.openEmailAppErrorConfirm', __?: {}): string; } const f: TFunction = (() => {}) as any; f('[|login./**/|]')` f := fourslash.NewFourslash(t, nil /*capabilities*/, content) f.VerifyCompletions(t, "", &fourslash.CompletionsExpectedList{ IsIncomplete: false, ItemDefaults: &fourslash.CompletionsExpectedItemDefaults{ CommitCharacters: &DefaultCommitCharacters, EditRange: Ignored, }, Items: &fourslash.CompletionsExpectedItems{ Exact: []fourslash.CompletionsExpectedItem{ &lsproto.CompletionItem{ Label: "login.title", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.title", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.description", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.description", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.sendEmailAgree", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.sendEmailAgree", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.termsOfUse", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.termsOfUse", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.privacyPolicy", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.privacyPolicy", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.sendEmailButton", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.sendEmailButton", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.emailInputPlaceholder", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.emailInputPlaceholder", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.errorWrongEmailTitle", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.errorWrongEmailTitle", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.errorWrongEmailDescription", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.errorWrongEmailDescription", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.errorGeneralEmailTitle", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.errorGeneralEmailTitle", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.errorGeneralEmailDescription", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.errorGeneralEmailDescription", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.loginErrorTitle", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.loginErrorTitle", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.loginErrorDescription", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.loginErrorDescription", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.openEmailAppErrorTitle", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.openEmailAppErrorTitle", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.openEmailAppErrorDescription", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.openEmailAppErrorDescription", Range: f.Ranges()[0].LSRange, }, }, }, &lsproto.CompletionItem{ Label: "login.openEmailAppErrorConfirm", TextEdit: &lsproto.TextEditOrInsertReplaceEdit{ TextEdit: &lsproto.TextEdit{ NewText: "login.openEmailAppErrorConfirm", Range: f.Ranges()[0].LSRange, }, }, }, }, }, }) }