       # No style path!
       @executablePath = path.resolve(__dirname, 'no-style.js')
 
-  formatDevDepsExecPath: (devDeps, styleSettings) ->
+  checkDevDeps: () ->
+    # This get devDependencies property
+    # from the nearest package.json
+    devDeps = pkgConfig(null, { cwd: @filePath, root: 'devDependencies' })
+
+    if devDeps and (devDeps.standard or devDeps.semistandard)
+      if devDeps.standard
+        # Set execPath to standard bin
+        # and change linter name
+        @linterName = 'js-standard'
+        @executablePath = binPath.standard
+
+      else
+        # Set execPath to semistandard bin
+        # and change linter name
+        @linterName = 'js-semistandard'
+        @executablePath = binPath.semiStandard
+    else
+      @executablePath = false
+
+  checkStyleSettings: () ->
     # Default value
-    execPath = false
+    styleSettings = false
 
     # This is the absolute path
     # of the project path relative

    if typeof config == 'undefined'
      return

    styleSettings =
      standard: pkgConfig(null, { cwd: @filePath, root: 'standard' })
      semistandard: pkgConfig(null, { cwd: @filePath, root: 'semistandard' })

    # see if setting checkStyleDevDependencies is true
    # if not fallback to style value to decide which bin
    # we should use
    if config.checkStyleDevDependencies
      devDeps = pkgConfig(null, { cwd: @filePath, root: 'devDependencies' })
      @executablePath = @formatDevDepsExecPath(devDeps, styleSettings)
    else
      if config.style == 'standard'
        @linterName = 'js-standard'

    relativeFilePath = @filePath.replace(projectPath, '')
    relativeFilePath = relativeFilePath.substring(1)

    if @linterName == 'js-standard'
      styleSettings = pkgConfig(null, { cwd: @filePath, root: 'standard' })
    else if @linterName == 'js-semistandard'
      styleSettings = pkgConfig(null, { cwd: @filePath, root: 'semistandard' })

    if styleSettings
      # Check parser
      if styleSettings.parser
        @cmd.push '--parser', styleSettings.parser

      # If ignore glob patterns are present
      if styleSettings.ignore
        ignoreGlobPatterns = []
        ignoreGlobPatterns = ignoreGlobPatterns.concat styleSettings.ignore

        testGlobPatterns = ignoreGlobPatterns.some (pattern) ->
          return minimatch(relativeFilePath, pattern)

        if testGlobPatterns
          @executablePath = false

  formatMessage: (match) ->
    if !match.error && !match.warning
