Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
)

func TestImportNameCodeFix_jsx4(t *testing.T) {
t.Skip("Known failing fourslash test")
t.Parallel()
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
const content = `// @jsx: react
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (
)

func TestImportNameCodeFix_jsx6(t *testing.T) {
t.Skip("Known failing fourslash test")
t.Parallel()
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
const content = `// @lib: es5
Expand Down
35 changes: 35 additions & 0 deletions tsc/internal/fourslash/tests/importNameCodeFix_jsx8_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package fourslash_test

import (
"testing"

"github.com/microsoft/TypeScript/tsc/internal/fourslash"
"github.com/microsoft/TypeScript/tsc/internal/testutil"
)

func TestImportNameCodeFix_jsx8(t *testing.T) {
t.Parallel()
defer testutil.RecoverAndFail(t, "Panic on fourslash test")
const content = `// @jsx: react
// @module: esnext
// @esModuleInterop: true
// @moduleResolution: bundler
// @Filename: /node_modules/react/index.d.ts
export = React;
export as namespace React;
declare namespace React {
class Component {}
}
// @Filename: /a.tsx
import { Component } from "react";
<Component></Component>;`
f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content)
defer done()
f.GoToFile(t, "/a.tsx")
f.VerifyCodeFix(t, fourslash.VerifyCodeFixOptions{
Description: "Import 'React' from \"react\"",
NewFileContent: `import React, { Component } from "react";
<Component></Component>;`,
Index: 0,
})
}
7 changes: 7 additions & 0 deletions tsc/internal/ls/autoimport/fix.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ func (f *Fix) Edits(
formatOptions lsutil.FormatCodeSettings,
converters *lsconv.Converters,
preferences lsutil.UserPreferences,
includeSymbolNameInDescription bool,

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added extra coverage

) ([]*lsproto.TextEdit, string, bool) {
locale := locale.FromContext(ctx)
tracker := change.NewTracker(ctx, compilerOptions, formatOptions, converters)
Expand All @@ -75,6 +76,9 @@ func (f *Fix) Edits(
existingFix := getAddToExistingImportFix(file, f)
addToExistingImport(tracker, file, existingFix.importClauseOrBindingPattern, existingFix.defaultImport, core.SingleElementSlice(existingFix.namedImport), preferences)
edits, safe := fileEdits(tracker, file)
if includeSymbolNameInDescription {
return edits, diagnostics.Import_0_from_1.Localize(locale, f.Name, f.ModuleSpecifier), safe
}
Comment thread
Andarist marked this conversation as resolved.
return edits, diagnostics.Update_import_from_0.Localize(locale, f.ModuleSpecifier), safe
Comment thread
Copilot marked this conversation as resolved.
Comment thread
Copilot marked this conversation as resolved.
case lsproto.AutoImportFixKindAddNew:
var declarations []*ast.Statement
Expand Down Expand Up @@ -107,6 +111,9 @@ func (f *Fix) Edits(
// addNamespaceQualifier(tracker, file, qualification)
// }
edits, safe := fileEdits(tracker, file)
if includeSymbolNameInDescription {
return edits, diagnostics.Import_0_from_1.Localize(locale, f.Name, f.ModuleSpecifier), safe
}
Comment thread
Andarist marked this conversation as resolved.
return edits, diagnostics.Add_import_from_0.Localize(locale, f.ModuleSpecifier), safe
Comment thread
Copilot marked this conversation as resolved.
Comment thread
Andarist marked this conversation as resolved.
case lsproto.AutoImportFixKindPromoteTypeOnly:
promotedDeclaration := promoteFromTypeOnly(tracker, f.TypeOnlyAliasDeclaration, compilerOptions, file, preferences)
Expand Down
8 changes: 5 additions & 3 deletions tsc/internal/ls/codeactions_importfixes.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ func getImportCodeActions(ctx context.Context, fixContext *CodeFixContext) ([]*C
fixContext.LS.FormatOptions(),
fixContext.LS.converters,
fixContext.LS.UserPreferences(),
fixInfo.symbolName != fixInfo.errorIdentifierText,
)

if ok {
Expand Down Expand Up @@ -340,9 +341,10 @@ func getFixesInfoForNonUMDImport(fixContext *CodeFixContext, symbolToken *ast.No
fixes := view.GetFixes(export, isJSXTagName, isValidTypeOnlyUseSite, &usagePosition)
for _, fix := range fixes {
allInfo = append(allInfo, &fixInfo{
fix: fix,
symbolName: symbolName,
isJsxNamespaceFix: symbolName != symbolToken.Text(),
fix: fix,
symbolName: symbolName,
errorIdentifierText: symbolToken.Text(),
isJsxNamespaceFix: symbolName != symbolToken.Text(),
})
}
}
Expand Down
3 changes: 2 additions & 1 deletion tsc/internal/ls/completions.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ func (l *LanguageService) filterContentMappedAutoImports(ctx context.Context, pr
l.FormatOptions(),
l.converters,
l.UserPreferences(),
false, /*includeSymbolNameInDescription*/
)
if !ok {
continue
Expand Down Expand Up @@ -5544,7 +5545,7 @@ func (l *LanguageService) getCompletionItemDetails(
// Auto-imports in content-mapped files are evaluated eagerly so edits outside
// of verbatim spans can cause the completion item to be filtered out entirely.
// Only real files take this code path, so the final Edits() is guaranteed ok.
edits, description, _ := (&autoimport.Fix{AutoImportFix: data.AutoImport}).Edits(ctx, file, program.Options(), l.FormatOptions(), l.converters, l.UserPreferences())
edits, description, _ := (&autoimport.Fix{AutoImportFix: data.AutoImport}).Edits(ctx, file, program.Options(), l.FormatOptions(), l.converters, l.UserPreferences(), false /*includeSymbolNameInDescription*/)
item.AdditionalTextEdits = &edits
item.Detail = strPtrTo(description)
return item
Expand Down
Loading