diff --git a/app/styles/play/level/tome/spell.sass b/app/styles/play/level/tome/spell.sass index db95705ab..aca7c5f88 100644 --- a/app/styles/play/level/tome/spell.sass +++ b/app/styles/play/level/tome/spell.sass @@ -33,7 +33,7 @@ .ace_editor @include box-sizing(border-box) margin-top: 40px - width: 100% + width: 98% height: 83% height: -webkit-calc(100% - 60px - 40px) height: calc(100% - 60px - 40px) @@ -63,7 +63,7 @@ .executing background-color: rgba(216, 255, 255, 0.85) .executed - background-color: rgba(200, 200, 255, 0.25) + background-color: rgba(245, 255, 6, 0.18) .problem-marker-info background-color: rgba(96, 63, 84, 0.25) .problem-marker-warning @@ -79,7 +79,7 @@ .ace_marker-layer .ace_bracket // Override faint gray - border-color: #8FF + border-color: #BFF .ace_identifier - background-color: rgba(255, 128, 128, 0.15) + border-bottom: 1px dotted rgba(255, 128, 128, 0.45) diff --git a/app/views/play/level/tome/spell_debug_view.coffee b/app/views/play/level/tome/spell_debug_view.coffee index a676daa5f..5174a5cc4 100644 --- a/app/views/play/level/tome/spell_debug_view.coffee +++ b/app/views/play/level/tome/spell_debug_view.coffee @@ -25,18 +25,19 @@ module.exports = class DebugView extends View afterRender: -> super() @ace.on "mousemove", @onMouseMove - #@ace.on "click", onClick # same ACE API as mousemove setVariableStates: (@variableStates) -> @update() onMouseMove: (e) => pos = e.getDocumentPosition() + endOfDoc = pos.row is @ace.getSession().getDocument().getLength() - 1 it = new TokenIterator e.editor.session, pos.row, pos.column isIdentifier = (t) -> t and (t.type is 'identifier' or t.value is 'this') while it.getCurrentTokenRow() is pos.row and not isIdentifier(token = it.getCurrentToken()) it.stepBackward() break unless token + break if endOfDoc # Don't iterate backward on last line, since we might be way below. if isIdentifier token # This could be a property access, like "enemy.target.pos" or "this.spawnedRectangles". # We have to realize this and dig into the nesting of the objects. diff --git a/app/views/play/level/tome/spell_view.coffee b/app/views/play/level/tome/spell_view.coffee index f9acd8b3b..c02d350be 100644 --- a/app/views/play/level/tome/spell_view.coffee +++ b/app/views/play/level/tome/spell_view.coffee @@ -446,21 +446,19 @@ module.exports = class SpellView extends View marked = {} lastExecuted = lastExecuted[0 .. @toolbarView.statementIndex] if @toolbarView?.statementIndex? for state, i in lastExecuted - #clazz = if state.executing then 'executing' else 'executed' # doesn't work + [start, end] = [offsetToPos(state.range[0]), offsetToPos(state.range[1])] clazz = if i is lastExecuted.length - 1 then 'executing' else 'executed' if clazz is 'executed' - key = state.range[0] + '_' + state.range[1] - continue if marked[key] > 2 # don't allow more than three of the same marker - marked[key] ?= 0 - ++marked[key] + continue if marked[start.row] + marked[start.row] = true + markerType = "fullLine" else @debugView.setVariableStates state.variables - #console.log "at", state.userInfo.time, "vars are now:", state.variables - [start, end] = [offsetToPos(state.range[0]), offsetToPos(state.range[1])] + markerType = "text" markerRange = new Range(start.row, start.column, end.row, end.column) markerRange.start = @aceDoc.createAnchor markerRange.start markerRange.end = @aceDoc.createAnchor markerRange.end - markerRange.id = @aceSession.addMarker markerRange, clazz, "text" + markerRange.id = @aceSession.addMarker markerRange, clazz, markerType @markerRanges.push markerRange @aceSession.addGutterDecoration start.row, clazz if clazz is 'executing' null