diff --git a/internal/lsp/cache/check.go b/internal/lsp/cache/check.go index f7b1b3ee..0f99248d 100644 --- a/internal/lsp/cache/check.go +++ b/internal/lsp/cache/check.go @@ -91,7 +91,13 @@ func (v *View) checkMetadata(ctx context.Context, f *File) ([]packages.Error, er if err == nil { err = fmt.Errorf("no packages found for %s", f.filename) } - return nil, err + // Return this error as a diagnostic to the user. + return []packages.Error{ + { + Msg: err.Error(), + Kind: packages.ListError, + }, + }, err } for _, pkg := range pkgs { // If the package comes back with errors from `go list`, don't bother diff --git a/internal/lsp/cache/file.go b/internal/lsp/cache/file.go index 0c9b0b2c..d7429c9f 100644 --- a/internal/lsp/cache/file.go +++ b/internal/lsp/cache/file.go @@ -89,8 +89,7 @@ func (f *File) GetPackage(ctx context.Context) source.Package { f.view.mu.Lock() defer f.view.mu.Unlock() if f.pkg == nil || len(f.view.contentChanges) > 0 { - errs, err := f.view.parse(ctx, f) - if err != nil { + if errs, err := f.view.parse(ctx, f); err != nil { // Create diagnostics for errors if we are able to. if len(errs) > 0 { return &Package{errors: errs}