         options:
           spawn: false
 
-  grunt.loadNpmTasks('grunt-contrib-watch')
+  grunt.loadNpmTasks 'grunt-coffeelint'
+  grunt.loadNpmTasks 'grunt-contrib-coffee'
+  grunt.loadNpmTasks 'grunt-contrib-watch'
+  grunt.loadNpmTasks 'grunt-shell'
+  grunt.loadTasks 'tasks'
 
   grunt.registerTask 'clean', ->
-    grunt.file.delete('lib') if grunt.file.exists('lib')
-    grunt.file.delete('gen') if grunt.file.exists('gen')
+    grunt.file.delete 'lib' if grunt.file.exists 'lib'
+    grunt.file.delete 'gen' if grunt.file.exists 'gen'
 
-  grunt.registerTask('lint', ['coffeelint'])
-  grunt.registerTask('default', ['coffeelint', 'coffee'])
-  grunt.registerTask('test', ['default', 'lint', 'shell:test'])
-  grunt.registerTask('prepublish', ['clean', 'build-grammars', 'test'])
+  grunt.registerTask 'lint', ['coffeelint']
+  grunt.registerTask 'build', ['coffeelint', 'coffee']
+  grunt.registerTask 'default', ['build']
+  grunt.registerTask 'test', ['build', 'lint', 'shell:test']
+  grunt.registerTask 'prepublish', ['clean', 'build-grammars', 'test']

module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON('package.json')

    coffee:
      glob_to_multiple:

          stderr: true
          failOnError: true

    watch:
      scripts:
        files: ['src/*.coffee'],
