@@ -17,6 +17,11 @@ import (
1717
1818var errConfigDisabled = errors .New ("config is disabled by --no-config" )
1919
20+ const (
21+ modeLinters = "linters"
22+ modeFormatters = "formatters"
23+ )
24+
2025type LoaderOptions struct {
2126 Config string // Flag only. The path to the golangci config file, as specified with the --config argument.
2227 NoConfig bool // Flag only.
@@ -33,9 +38,25 @@ type Loader struct {
3338 fs * pflag.FlagSet
3439
3540 cfg * Config
41+
42+ mode string
43+ }
44+
45+ func NewLintersLoader (log logutils.Log , v * viper.Viper , fs * pflag.FlagSet , opts LoaderOptions , cfg * Config , args []string ) * Loader {
46+ loader := newLoader (log , v , fs , opts , cfg , args )
47+ loader .mode = modeLinters
48+
49+ return loader
3650}
3751
38- func NewLoader (log logutils.Log , v * viper.Viper , fs * pflag.FlagSet , opts LoaderOptions , cfg * Config , args []string ) * Loader {
52+ func NewFormattersLoader (log logutils.Log , v * viper.Viper , fs * pflag.FlagSet , opts LoaderOptions , cfg * Config , args []string ) * Loader {
53+ loader := newLoader (log , v , fs , opts , cfg , args )
54+ loader .mode = modeFormatters
55+
56+ return loader
57+ }
58+
59+ func newLoader (log logutils.Log , v * viper.Viper , fs * pflag.FlagSet , opts LoaderOptions , cfg * Config , args []string ) * Loader {
3960 return & Loader {
4061 BaseLoader : NewBaseLoader (log , v , opts , cfg , args ),
4162 fs : fs ,
@@ -44,18 +65,15 @@ func NewLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderO
4465}
4566
4667func (l * Loader ) Load (opts LoadOptions ) error {
47- err := l .setConfigFile ()
68+ err := l .BaseLoader . Load ()
4869 if err != nil {
4970 return err
5071 }
5172
52- err = l .parseConfig ()
53- if err != nil {
54- return err
73+ if l .mode == modeLinters {
74+ l .applyStringSliceHack ()
5575 }
5676
57- l .applyStringSliceHack ()
58-
5977 if l .cfg .Linters .Exclusions .Generated == "" {
6078 l .cfg .Linters .Exclusions .Generated = GeneratedModeStrict
6179 }
0 commit comments