             obj = []
             for line in lines
               match = dubErrorFormat.exec(line)
-              if match? && match.length >= 6
+              if match
                 obj.push
                   type: match[4],
                   text: match[5],
                   filePath: path.join(atom.project.getPaths()[0], match[1]),
                   range: [
                     [parseInt(match[2]) - 1, parseInt(match[3]) - 1],
-                    [parseInt(match[2]) - 1, parseInt(match[3]) - 1] # Whole line
+                    [parseInt(match[2]) - 1, parseInt(match[3]) + 300]
                   ]
+              else
+                if line.indexOf("from here") != -1 or line.indexOf("from argument types") != -1
+                  match = dubErrorFormatRel.exec(line)
+                  if match
+                    obj.push
+                      type: "error",
+                      text: match[4],
+                      filePath: path.join(atom.project.getPaths()[0], match[1]),
+                      range: [
+                        [parseInt(match[2]) - 1, parseInt(match[3]) - 1],
+                        [parseInt(match[2]) - 1, parseInt(match[3]) + 300]
+                      ]
             resolve obj
 
         proc.onWillThrowError ({error,handle}) ->

path = require "path"

# path(lineNumber): (Deprecation|Warning|Error): <message>
dubErrorFormat = /(.*?)\((\d+)(?:,(\d+))?\): (Deprecation|Warning|Error): (.*)/g;

module.exports =
  class DubLinter

    lint: (textEditor) =>
      return new Promise (resolve, reject) =>
        output = ""
        args = ["build", "--nodeps", "--combined", "-q"]

        if global.buildName?
          args.push "--config=" + global.buildName

        env = Object.create(process.env)
        env.DFLAGS = "-vcolumns -o-"

        proc = new BufferedProcess
          command: @dubPath
