```coffeescript
###
Requires https://github.com/jaspervdj/stylish-haskell
###

"use strict"
Beautifier = require('./beautifier')

module.exports = class Crystal extends Beautifier
  name: "Crystal"
  link: "http://crystal-lang.org"
  isPreInstalled: false

  options: {
    Crystal: false
  }

  beautify: (text, language, options) ->
    # Seems that Crystal dosen't have Windows support yet.
    if @isWindows
      @Promise.reject(@commandNotFoundError(
        'crystal'
        {
        link: "http://crystal-lang.org"
        program: "crystal"
        })
      )
    else
      @run("crystal", [
        'tool',
        'format',
        tempFile = @tempFile("temp", text)
        ], {ignoreReturnCode: true})
        .then(=>
          @readFile(tempFile)
        )
```

Switch Crystal beautifier to using Executables
user
```coffeescript
###
Requires https://github.com/jaspervdj/stylish-haskell
###

"use strict"
Beautifier = require('./beautifier')

module.exports = class Crystal extends Beautifier
  name: "Crystal"
  link: "http://crystal-lang.org"
  executables: [
    {
      name: "Crystal"
      cmd: "crystal"
      homepage: "http://crystal-lang.org"
      installation: "https://crystal-lang.org/docs/installation/"
      version: {
        parse: (text) -> text.match(/Crystal (\d+\.\d+\.\d+)/)[1]
      }
    }
  ]

  options: {
    Crystal: false
  }

  beautify: (text, language, options) ->
    @exe("crystal").run([
      'tool',
      'format',
      tempFile = @tempFile("temp", text)
      ], {ignoreReturnCode: true})
      .then(=>
        @readFile(tempFile)
      )
```
assistant