Sha256: c06b5f1b05312b7d81a333ce9136ba3723f98b807890e94cf1ba723c28916aae

Contents?: true

Size: 1.32 KB

Versions: 3

Compression:

Stored size: 1.32 KB

Contents

_.def("Luca.tools.CoffeeEditor").extends("Luca.tools.CodeMirrorField").with
  name : "coffeescript_editor"

  compileOptions:
    bare: true

  hooks:[
    "editor:change"
  ]

  initialize: (@options)->
    Luca.tools.CodeMirrorField::initialize.apply(@, arguments)

    _.bindAll(@, "editorChange")

    editor = @

    @state = new Luca.Model
      currentMode: "coffeescript"
      coffeescript:""
      javascript:""

    @state.bind "change:coffeescript", (model)->
      editor.trigger("change:coffeescript")
      code = model.get("coffeescript")

      editor.compile code, (compiled)->
        model.set('javascript',compiled)

    @state.bind "change:javascript", (model)->
      editor.onJavascriptChange?.call(editor, model.get('javascript') )

  compile: (code, callback)->
    response = {}
    code ||= @getValue()

    try
      compiled = CoffeeScript.compile(code, @compileOptions)
      callback?.call(@, compiled)
      response =
        success: true
        compiled: compiled
    catch error
      @trigger("compile:error", error, code)

      response =
        success: false
        compiled: ''
        message: error.message

  currentMode: ()->
    @state.get("currentMode")

  fixTabs: ()->
    value = @getValue(false)
    debugger

  editorChange: ()->
    @fixTabs()
    @state.set( @currentMode(), @getValue() )

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
luca-0.9.2 src/tools/coffee_script_editor.coffee
luca-0.9.1 src/tools/coffee_script_editor.coffee
luca-0.9.0 src/tools/coffee_script_editor.coffee