 {three_way_merge} = require('smc-util/syncstring')
 
 {debounce} = require('underscore')
+
+{cm_options} = require('../jupyter/cm_options')
 
 misc = require('smc-util/misc')
 

        node = $(ReactDOM.findDOMNode(@)).find("textarea")[0]
        if not node?
            return
        options = misc.deep_copy(CM_OPTIONS)
        save_to_disk = => @props.actions.save()
        options.extraKeys =
            "Shift-Enter" : @stop_editing
            Esc           : @stop_editing
            Tab           : => @cm.tab_as_space()
            "Cmd-S"       : save_to_disk
            "Alt-S"       : save_to_disk
            "Ctrl-S"      : save_to_disk

        @cm = CodeMirror.fromTextArea(node, options)
        $(@cm.getWrapperElement()).css(height:'auto')

        is_current : rtypes.bool
        font_size  : rtypes.number  # used only to cause refresh

    reduxProps :
        account :
            editor_settings : rtypes.immutable.Map

    shouldComponentUpdate: (next) ->
        return @props.task_id    != next.task_id    or \
               @props.desc       != next.desc       or \
