           Stagehand.showProjectTemplates().then (projectTemplate) =>
             Stagehand.generate(projectTemplate)
 
+  onBoot: (callback) =>
+    @emitter.on 'boot', callback
+
   dispose: =>
     @subscriptions?.dispose()
     @analysisComponent?.disable()

{CompositeDisposable} = require 'atom'
Utils = require './utils'
AutoCompletePlusProvider = require './autocomplete/provider'
_ = require 'lodash'


  consumeLinter: (@linter) =>
    LinterComponent = require './linter/linter_component'
    setupLinter = =>
      @linterComponent = new LinterComponent(@linter, @errorRepository)
    if @hasBooted
      setupLinter()
    else
      onBoot => setupLinter()

  # TODO: becoming massive, refactor.
  boot: =>
    return if @hasBooted

    # HACK: for some reason Atom is saving every dart-tools marker
    # This code flushes all pre-existing markers...
