@@ -294,9 +294,7 @@ func GetAllLintersForPreset(p string) []Linter {
294
294
return ret
295
295
}
296
296
297
- func getEnabledLintersSet (cfg * config.Config ) map [string ]Linter { // nolint:gocyclo
298
- lcfg := & cfg .Linters
299
-
297
+ func getEnabledLintersSet (lcfg * config.Linters , enabledByDefaultLinters []Linter ) map [string ]Linter { // nolint:gocyclo
300
298
resultLintersSet := map [string ]Linter {}
301
299
switch {
302
300
case len (lcfg .Presets ) != 0 :
@@ -306,7 +304,7 @@ func getEnabledLintersSet(cfg *config.Config) map[string]Linter { // nolint:gocy
306
304
case lcfg .DisableAll :
307
305
break
308
306
default :
309
- resultLintersSet = lintersToMap (getAllEnabledByDefaultLinters () )
307
+ resultLintersSet = lintersToMap (enabledByDefaultLinters )
310
308
}
311
309
312
310
// --presets can only add linters to default set
@@ -332,12 +330,24 @@ func getEnabledLintersSet(cfg *config.Config) map[string]Linter { // nolint:gocy
332
330
}
333
331
334
332
for _ , name := range lcfg .Disable {
333
+ if name == "megacheck" {
334
+ for _ , ln := range getAllMegacheckSubLinterNames () {
335
+ delete (resultLintersSet , ln )
336
+ }
337
+ }
335
338
delete (resultLintersSet , name )
336
339
}
337
340
338
341
return resultLintersSet
339
342
}
340
343
344
+ func getAllMegacheckSubLinterNames () []string {
345
+ unusedName := golinters.Megacheck {UnusedEnabled : true }.Name ()
346
+ gosimpleName := golinters.Megacheck {GosimpleEnabled : true }.Name ()
347
+ staticcheckName := golinters.Megacheck {StaticcheckEnabled : true }.Name ()
348
+ return []string {unusedName , gosimpleName , staticcheckName }
349
+ }
350
+
341
351
func optimizeLintersSet (linters map [string ]Linter ) {
342
352
unusedName := golinters.Megacheck {UnusedEnabled : true }.Name ()
343
353
gosimpleName := golinters.Megacheck {GosimpleEnabled : true }.Name ()
@@ -375,7 +385,7 @@ func GetEnabledLinters(cfg *config.Config) ([]Linter, error) {
375
385
return nil , err
376
386
}
377
387
378
- resultLintersSet := getEnabledLintersSet (cfg )
388
+ resultLintersSet := getEnabledLintersSet (& cfg . Linters , getAllEnabledByDefaultLinters () )
379
389
optimizeLintersSet (resultLintersSet )
380
390
381
391
var resultLinters []Linter
0 commit comments