Run all linters per package. It allows unloading package data when it's processed. It dramatically reduces memory (and CPU because of GC) usage. Relates: #337
		
			
				
	
	
		
			39 lines
		
	
	
		
			937 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			937 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package linter
 | 
						|
 | 
						|
import (
 | 
						|
	"golang.org/x/tools/go/packages"
 | 
						|
 | 
						|
	"github.com/golangci/golangci-lint/pkg/lint/astcache"
 | 
						|
 | 
						|
	"github.com/golangci/golangci-lint/pkg/golinters/goanalysis/load"
 | 
						|
 | 
						|
	"github.com/golangci/golangci-lint/internal/pkgcache"
 | 
						|
 | 
						|
	"github.com/golangci/golangci-lint/pkg/fsutils"
 | 
						|
 | 
						|
	"github.com/golangci/golangci-lint/pkg/config"
 | 
						|
	"github.com/golangci/golangci-lint/pkg/logutils"
 | 
						|
)
 | 
						|
 | 
						|
type Context struct {
 | 
						|
	// Packages are deduplicated (test and normal packages) packages
 | 
						|
	Packages []*packages.Package
 | 
						|
 | 
						|
	// OriginalPackages aren't deduplicated: they contain both normal and test
 | 
						|
	// version for each of packages
 | 
						|
	OriginalPackages []*packages.Package
 | 
						|
 | 
						|
	Cfg       *config.Config
 | 
						|
	FileCache *fsutils.FileCache
 | 
						|
	LineCache *fsutils.LineCache
 | 
						|
	Log       logutils.Log
 | 
						|
 | 
						|
	PkgCache  *pkgcache.Cache
 | 
						|
	LoadGuard *load.Guard
 | 
						|
	ASTCache  *astcache.Cache
 | 
						|
}
 | 
						|
 | 
						|
func (c *Context) Settings() *config.LintersSettings {
 | 
						|
	return &c.Cfg.LintersSettings
 | 
						|
}
 |