 
   exec: (command, options = {stream: 'stdout'}) ->
     throw new Error "Nothing to execute." if not arguments.length
-    child_process = require 'child_process'
     return new Promise (resolve, reject) ->
       process = child_process.exec(command, options)
       data = []

    for result in results
      unless result.type
        throw new Error "Missing type field on Linter Response, Got: #{Object.keys(result)}"
      {Range} = require('atom')
      result.range = Range.fromObject result.range if result.range?
      result.class = result.type.toLowerCase().replace(' ', '-')
      Helpers.validateResults(result.trace) if result.trace

  # We place priority on `lineStart` and `lineEnd` over `line.`
  # We place priority on `colStart` and `colEnd` over `col.`
  parse: (data, regex, options = {baseReduction: 1}) ->
    new Promise (resolve, reject) ->
      toReturn = []
      regex = XRegExp(regex)
