Sha256: 171cf122c46a86832fdeacddad9a75e8aeb4471982af9eba7038c3555f2fabb1

Contents?: true

Size: 921 Bytes

Versions: 1

Compression:

Stored size: 921 Bytes

Contents

class AceInput
  constructor: ->
    @editor   = ace.edit("input")
    @session  = @editor.getSession()
    @renderer = @editor.renderer
    @textarea = $('textarea.ace')
    @setOptions()
    @updateMode()
    @updateTheme()
    @bindTextarea()

  setOptions: =>
    @renderer.setShowPrintMargin false
    @renderer.setHScrollBarAlwaysVisible false
    @session.setUseWorker false
    @session.setTabSize 2
    @session.setUseSoftTabs true
    @session.setFoldStyle "markbeginend"

  updateMode: (mode = @textarea.data('ace-mode'))=>
    if mode
      mode = require("ace/mode/#{mode}").Mode
      @session.setMode new mode()

  updateTheme: (theme = @textarea.data('ace-theme'))=>
    if theme
      @editor.setTheme "ace/theme/#{theme}"

  bindTextarea: =>
    ace = @
    ace.session.setValue ace.textarea.val()
    ace.session.on "change", ->
      ace.textarea.val ace.session.getValue()

window.AceInput = AceInput

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple_ace_input-0.0.1.rc app/assets/javascripts/simple_ace_input/controller.js.coffee