code: func processConfig(config *Config) (include *regexp.Regexp, exclude *regexp.Regexp) {
  	tmpl, err := template.New("output").Parse(config.Format)
  	kingpin.FatalIfError(err, "invalid format %q", config.Format)
  	config.formatTemplate = tmpl
  
  	// Ensure that gometalinter manages threads, not linters.
  	os.Setenv("GOMAXPROCS", "1")
  	// Force sorting by path if checkstyle mode is selected
  	// !jsonFlag check is required to handle:
  	// 	gometalinter --json --checkstyle --sort=severity
  	if config.Checkstyle && !config.JSON {
  		config.Sort = []string{"path"}
  	}
  
  	// PlaceHolder to skipping "vendor" directory if GO15VENDOREXPERIMENT=1 is enabled.
  	// TODO(alec): This will probably need to be enabled by default at a later time.
  	if os.Getenv("GO15VENDOREXPERIMENT") == "1" || config.Vendor {
  		if err := os.Setenv("GO15VENDOREXPERIMENT", "1"); err != nil {
  			warning("setenv GO15VENDOREXPERIMENT: %s", err)
  		}
  		config.Skip = append(config.Skip, "vendor")
  		config.Vendor = true
  	}
  	if len(config.Exclude) > 0 {
  		exclude = regexp.MustCompile(strings.Join(config.Exclude, "|"))
  	}
  
  	if len(config.Include) > 0 {
  		include = regexp.MustCompile(strings.Join(config.Include, "|"))
  	}
  
  	runtime.GOMAXPROCS(config.Concurrency)
  	return include, exclude
  }
docs: // nolint: gocyclo