Skip to content

Commit

Permalink
compiledGopFiles
Browse files Browse the repository at this point in the history
  • Loading branch information
xushiwei committed Oct 9, 2023
1 parent 1917515 commit e096cc6
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 27 deletions.
31 changes: 21 additions & 10 deletions gopls/internal/lsp/cache/check.go
Original file line number Diff line number Diff line change
Expand Up @@ -1303,7 +1303,8 @@ type typeCheckInputs struct {
goVersion string // packages.Module.GoVersion, e.g. "1.18"

// goxls: Go+ files
gopFiles []source.FileHandle
gopFiles []source.FileHandle
compiledGopFiles []source.FileHandle

// Used for type check diagnostics:
relatedInformation bool
Expand All @@ -1330,6 +1331,10 @@ func (s *snapshot) typeCheckInputs(ctx context.Context, m *source.Metadata) (typ
if err != nil {
return typeCheckInputs{}, err
}
compiledGopFiles, err := readFiles(ctx, s, m.CompiledGopFiles) // goxls: Go+ files
if err != nil {
return typeCheckInputs{}, err
}
compiledGoFiles, err := readFiles(ctx, s, m.CompiledGoFiles)
if err != nil {
return typeCheckInputs{}, err
Expand All @@ -1341,15 +1346,16 @@ func (s *snapshot) typeCheckInputs(ctx context.Context, m *source.Metadata) (typ
}

return typeCheckInputs{
id: m.ID,
pkgPath: m.PkgPath,
name: m.Name,
goFiles: goFiles,
gopFiles: gopFiles, // goxls: Go+ files
compiledGoFiles: compiledGoFiles,
sizes: m.TypesSizes,
depsByImpPath: m.DepsByImpPath,
goVersion: goVersion,
id: m.ID,
pkgPath: m.PkgPath,
name: m.Name,
goFiles: goFiles,
gopFiles: gopFiles, // goxls: Go+ files
compiledGopFiles: compiledGopFiles, // goxls: Go+ files
compiledGoFiles: compiledGoFiles,
sizes: m.TypesSizes,
depsByImpPath: m.DepsByImpPath,
goVersion: goVersion,

relatedInformation: s.options.RelatedInformationSupported,
linkTarget: s.options.LinkTarget,
Expand Down Expand Up @@ -1526,6 +1532,11 @@ func doTypeCheck(ctx context.Context, b *typeCheckBatch, inputs typeCheckInputs)
if err != nil {
return nil, err
}
// goxls: Go+ files
pkg.compiledGopFiles, err = b.parseCache.parseGopFiles(ctx, b.fset, parserutil.ParseFull, false, inputs.compiledGopFiles...)
if err != nil {
return nil, err
}
pkg.compiledGoFiles, err = b.parseCache.parseFiles(ctx, b.fset, source.ParseFull, false, inputs.compiledGoFiles...)
if err != nil {
return nil, err
Expand Down
20 changes: 9 additions & 11 deletions gopls/internal/lsp/cache/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -437,18 +437,16 @@ func buildMetadata(updates map[PackageID]*source.Metadata, pkg *packages.Package
uri := span.URIFromPath(filename)
m.GoFiles = append(m.GoFiles, uri)
}
/*
if true { // goxls: Go+ files
for _, filename := range pkg.GopFiles {
uri := span.URIFromPath(filename)
m.GopFiles = append(m.GopFiles, uri)
}
for _, filename := range pkg.CompiledGopFiles {
uri := span.URIFromPath(filename)
m.CompiledGopFiles = append(m.CompiledGopFiles, uri)
}
if true { // goxls: Go+ files
for _, filename := range pkg.GopFiles {
uri := span.URIFromPath(filename)
m.GopFiles = append(m.GopFiles, uri)
}
*/
for _, filename := range pkg.CompiledGopFiles {
uri := span.URIFromPath(filename)
m.CompiledGopFiles = append(m.CompiledGopFiles, uri)
}
}
for _, filename := range pkg.IgnoredFiles {
uri := span.URIFromPath(filename)
m.IgnoredFiles = append(m.IgnoredFiles, uri)
Expand Down
5 changes: 4 additions & 1 deletion gopls/internal/lsp/cache/pkg.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"go/types"
"sync"

"golang.org/x/tools/gopls/internal/goxls/typesutil"
"golang.org/x/tools/gopls/internal/lsp/source"
"golang.org/x/tools/gopls/internal/lsp/source/methodsets"
"golang.org/x/tools/gopls/internal/lsp/source/xrefs"
Expand Down Expand Up @@ -43,7 +44,9 @@ type syntaxPackage struct {
id PackageID

// goxls: Go+ files
gopFiles []*source.ParsedGopFile
gopTypesInfo *typesutil.Info
gopFiles []*source.ParsedGopFile
compiledGopFiles []*source.ParsedGopFile

// -- outputs --
fset *token.FileSet // for now, same as the snapshot's FileSet
Expand Down
10 changes: 5 additions & 5 deletions gopls/internal/lsp/cache/pkg_gox.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ import (
"golang.org/x/tools/gopls/internal/span"
)

func (p *Package) GopFile(uri span.URI) (*source.ParsedGopFile, error) {
return p.pkg.GopFile(uri)
}

func (p *Package) GopTypesInfo() *typesutil.Info {
// return p.pkg.typesInfo
panic("todo")
// return p.pkg.gopTypesInfo
}

func (p *Package) GopFile(uri span.URI) (*source.ParsedGopFile, error) {
return p.pkg.GopFile(uri)
}

func (pkg *syntaxPackage) GopFile(uri span.URI) (*source.ParsedGopFile, error) {
Expand Down

0 comments on commit e096cc6

Please sign in to comment.