diff --git a/internal/lsp/source/format.go b/internal/lsp/source/format.go index c6aefeed23..6b0e409bd5 100644 --- a/internal/lsp/source/format.go +++ b/internal/lsp/source/format.go @@ -277,7 +277,7 @@ func trimToFirstNonImport(fset *token.FileSet, f *ast.File, src []byte) []byte { if firstDecl != nil { end = fset.File(f.Pos()).LineStart(fset.Position(firstDecl.Pos()).Line - 1) } - return src[fset.Position(f.Pos()).Offset:fset.Position(end).Offset] + return src[0:fset.Position(end).Offset] } // CandidateImports returns every import that could be added to filename. diff --git a/internal/lsp/testdata/imports/issue35458.go.golden b/internal/lsp/testdata/imports/issue35458.go.golden new file mode 100644 index 0000000000..59aaf148ff --- /dev/null +++ b/internal/lsp/testdata/imports/issue35458.go.golden @@ -0,0 +1,14 @@ +-- goimports -- +package imports //@import("package") + +func _() { + println("Hello, world!") +} + + + + + + + + diff --git a/internal/lsp/testdata/imports/issue35458.go.in b/internal/lsp/testdata/imports/issue35458.go.in new file mode 100644 index 0000000000..f9b07b8844 --- /dev/null +++ b/internal/lsp/testdata/imports/issue35458.go.in @@ -0,0 +1,22 @@ + + + + + +package imports //@import("package") + + + + + + +func _() { + println("Hello, world!") +} + + + + + + + diff --git a/internal/lsp/testdata/summary.txt.golden b/internal/lsp/testdata/summary.txt.golden index 4acd1f3adc..a875e5a8ed 100644 --- a/internal/lsp/testdata/summary.txt.golden +++ b/internal/lsp/testdata/summary.txt.golden @@ -9,7 +9,7 @@ CaseSensitiveCompletionsCount = 4 DiagnosticsCount = 22 FoldingRangesCount = 2 FormatCount = 6 -ImportCount = 6 +ImportCount = 7 SuggestedFixCount = 1 DefinitionsCount = 38 TypeDefinitionsCount = 2