Skip to content

Commit

Permalink
Load CodeMirror as early as possible. Disable run during auto-step (w…
Browse files Browse the repository at this point in the history
…hich causes an error).
  • Loading branch information
omphalos committed Mar 2, 2013
1 parent d9b1a47 commit 2c88c7b
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 16 deletions.
1 change: 1 addition & 0 deletions browser/index.html
Expand Up @@ -34,6 +34,7 @@ <h1>metajs: <small>visualize javascript AST execution</small></h1>
<button id='modalClose' type='button' class='close'>&times;</button>
<div class='modal-body' id='modalContent'></div>
</div>
<script type="text/javascript">CodeMirror.fromTextArea(document.getElementById('code'), { mode: 'javascript' })</script>
<script src='bundle.js'></script>
<script src='metajs.js'></script>
</body>
Expand Down
37 changes: 21 additions & 16 deletions browser/metajs.coffee
Expand Up @@ -3,18 +3,6 @@ esprima = require 'esprima'
interpreter = require './lib/interpreter'
{Environment} = interpreter

editor = CodeMirror.fromTextArea(document.getElementById('code'), mode: 'javascript')

disableEditing = () ->
if not $('.CodeMirror').hasClass('readOnly')
editor.setOption('readOnly', true)
$('.CodeMirror').addClass('readOnly')

enableEditing = () ->
if $('.CodeMirror').hasClass('readOnly')
editor.setOption('readOnly', false)
$('.CodeMirror').removeClass('readOnly')

Message = do ->
messageMap = {}
silence = {}
Expand Down Expand Up @@ -75,6 +63,18 @@ Message.listen 'interpreter:call-continue', ->

Message.listen 'interpreter:done', -> Message.send 'state:render'

editor = $('.CodeMirror')[0].CodeMirror

editor.disableEditing = () ->
if not $('.CodeMirror').hasClass('readOnly')
editor.setOption('readOnly', true)
$('.CodeMirror').addClass('readOnly')

editor.enableEditing = () ->
if $('.CodeMirror').hasClass('readOnly')
editor.setOption('readOnly', false)
$('.CodeMirror').removeClass('readOnly')

editor.on 'change', ->
activeStates = []
Message.send 'state:render'
Expand Down Expand Up @@ -179,7 +179,7 @@ $(document).keydown (e) ->
$('#modalClose').click -> $('#modal').hide()

$('#run-btn').click ->
disableEditing()
editor.disableEditing()
interpreter.continuer = Continuers.toFinish
Message.squelch 'state:render' # optimization
latestState = null
Expand All @@ -193,26 +193,31 @@ $('#run-btn').click ->
Continuations.next()

$('#step-btn').click ->
disableEditing()
editor.disableEditing()
interpreter.continuer = Continuers.toNextStep
Continuations.next()

$('#auto-step-btn').click ->
disableEditing()
editor.disableEditing()
if $(@).attr('value') is 'Pause'
interpreter.continuer = Continuers.toNextStep
$(@).attr 'value', 'Auto Step'
$('#example-box').removeAttr 'disabled'
$('#step-btn').removeAttr 'disabled'
$('#run-btn').removeAttr 'disabled', 'disabled'
else
interpreter.continuer = Continuers.autoStep
$(@).attr 'value', 'Pause'
$('#example-box').attr 'disabled', 'disabled'
$('#step-btn').attr 'disabled', 'disabled'
$('#run-btn').attr 'disabled', 'disabled'
Continuations.next()

Message.listen 'interpreter:done', ->
$('#auto-step-btn').removeAttr 'disabled'
$('#example-box').removeAttr 'disabled'
enableEditing()
$('#step-btn').removeAttr 'disabled'
$('#run-btn').removeAttr 'disabled'
$('#auto-step-btn').attr 'value', 'Auto Step'
editor.enableEditing()

0 comments on commit 2c88c7b

Please sign in to comment.