mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-13 22:49:51 -04:00
Added configuring of behaviors to the editor config.
This commit is contained in:
parent
3c0b496033
commit
5c76ca71e3
5 changed files with 35 additions and 19 deletions
|
@ -216,6 +216,8 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
|
|||
editor_config_invisibles_description: "Displays invisibles such as spaces or tabs."
|
||||
editor_config_indentguides_label: "Show Indent Guides"
|
||||
editor_config_indentguides_description: "Displays vertical lines to see indentation better."
|
||||
editor_config_behaviors_label: "Smart Behaviors"
|
||||
editor_config_behaviors_description: "Autocompletes brackets, braces, and quotes."
|
||||
|
||||
admin:
|
||||
av_title: "Admin Views"
|
||||
|
|
|
@ -6,22 +6,28 @@
|
|||
.modal-body
|
||||
.form
|
||||
.form-group.select-group
|
||||
label.control-label(for="keyBindings" data-i18n="play_level.editor_config_keybindings_label") Key Bindings
|
||||
select#keyBindings(name="keyBindings", type="checkbox", checked=multiplayer)
|
||||
label.control-label(for="tome-key-bindings" data-i18n="play_level.editor_config_keybindings_label") Key Bindings
|
||||
select#tome-key-bindings(name="keyBindings", type="checkbox", checked=multiplayer)
|
||||
option(value="default" selected=(keyBindings === "default") data-i18n="play_level.editor_config_keybindings_default") Default (Ace)
|
||||
option(value="vim" selected=(keyBindings === "vim")) Vim
|
||||
option(value="emacs" selected=(keyBindings === "emacs")) Emacs
|
||||
span.help-block(data-i18n="play_level.editor_config_keybindings_description") Adds additional shortcuts known from the common editors.
|
||||
.form-group.checkbox
|
||||
label(for="invisibles")
|
||||
input#invisibles(name="invisibles", type="checkbox", checked=invisibles)
|
||||
label(for="tome-invisibles")
|
||||
input#tome-invisibles(name="invisibles", type="checkbox", checked=invisibles)
|
||||
span(data-i18n="play_level.editor_config_invisibles_label") Show Invisibles
|
||||
span.help-block(data-i18n="play_level.editor_config_invisibles_description") Displays invisibles such as spaces or tabs.
|
||||
.form-group.checkbox
|
||||
label(for="indentGuides")
|
||||
input#indentGuides(name="indentGuides", type="checkbox", checked=indentGuides)
|
||||
label(for="tome-indent-guides")
|
||||
input#tome-indent-guides(name="indentGuides", type="checkbox", checked=indentGuides)
|
||||
span(data-i18n="play_level.editor_config_indentguides_label") Show Indent Guides
|
||||
span.help-block(data-i18n="play_level.editor_config_indentguides_description") Displays vertical lines to see indentation better.
|
||||
.form-group.checkbox
|
||||
label(for="tome-behaviors")
|
||||
input#tome-behaviors(name="behaviors", type="checkbox", checked=behaviors)
|
||||
span(data-i18n="play_level.editor_config_behaviors_label") Smart Behaviors
|
||||
span.help-block(data-i18n="play_level.editor_config_behaviors_description") Autocompletes brackets, braces, and quotes.
|
||||
|
||||
.modal-footer
|
||||
a(href='#', data-dismiss="modal", aria-hidden="true", data-i18n="modal.close").btn.btn-primary Close
|
||||
|
||||
|
|
|
@ -11,11 +11,13 @@ module.exports = class EditorConfigModal extends View
|
|||
keyBindings: 'default'
|
||||
invisibles: false
|
||||
indentGuides: false
|
||||
behaviors: false
|
||||
|
||||
events:
|
||||
'change #invisibles': 'updateInvisiblesSelection'
|
||||
'change #keyBindings': 'updateKeyBindingsSelection'
|
||||
'change #indentGuides': 'updateIndentGuides'
|
||||
'change #tome-invisibles': 'updateInvisiblesSelection'
|
||||
'change #tome-key-bindings': 'updateKeyBindingsSelection'
|
||||
'change #tome-indent-guides': 'updateIndentGuides'
|
||||
'change #tome-behaviors': 'updateBehaviors'
|
||||
|
||||
constructor: (options) ->
|
||||
super(options)
|
||||
|
@ -27,24 +29,29 @@ module.exports = class EditorConfigModal extends View
|
|||
c.keyBindings = @aceConfig.keyBindings
|
||||
c.invisibles = @aceConfig.invisibles
|
||||
c.indentGuides = @aceConfig.indentGuides
|
||||
c.behaviors = @aceConfig.behaviors
|
||||
c
|
||||
|
||||
updateInvisiblesSelection: ->
|
||||
@aceConfig.invisibles = @$el.find('#invisibles').prop('checked')
|
||||
@aceConfig.invisibles = @$el.find('#tome-invisibles').prop('checked')
|
||||
|
||||
updateKeyBindingsSelection: ->
|
||||
@aceConfig.keyBindings = @$el.find('#keyBindings').val()
|
||||
@aceConfig.keyBindings = @$el.find('#tome-key-bindings').val()
|
||||
|
||||
updateIndentGuides: ->
|
||||
@aceConfig.indentGuides = @$el.find('#indentGuides').prop('checked')
|
||||
@aceConfig.indentGuides = @$el.find('#tome-indent-guides').prop('checked')
|
||||
|
||||
updateBehaviors: ->
|
||||
@aceConfig.behaviors = @$el.find('#tome-behaviors').prop('checked')
|
||||
|
||||
afterRender: ->
|
||||
super()
|
||||
|
||||
onHidden: ->
|
||||
@aceConfig.invisibles = @$el.find('#invisibles').prop('checked')
|
||||
@aceConfig.keyBindings = @$el.find('#keyBindings').val()
|
||||
@aceConfig.indentGuides = @$el.find('#indentGuides').prop('checked')
|
||||
@aceConfig.invisibles = @$el.find('#tome-invisibles').prop('checked')
|
||||
@aceConfig.keyBindings = @$el.find('#tome-key-bindings').val()
|
||||
@aceConfig.indentGuides = @$el.find('#tome-indent-guides').prop('checked')
|
||||
@aceConfig.behaviors = @$el.find('#tome-behaviors').prop('checked')
|
||||
me.set 'aceConfig', @aceConfig
|
||||
Backbone.Mediator.publish 'change:editor-config'
|
||||
me.save()
|
||||
|
|
|
@ -73,12 +73,12 @@ module.exports = class SpellView extends View
|
|||
@aceSession.setNewLineMode "unix"
|
||||
@aceSession.setUseSoftTabs true
|
||||
@ace.setTheme 'ace/theme/textmate'
|
||||
@ace.setDisplayIndentGuides aceConfig.indentGuides # default false
|
||||
@ace.setDisplayIndentGuides aceConfig.indentGuides
|
||||
@ace.setShowPrintMargin false
|
||||
@ace.setShowInvisibles aceConfig.invisibles # default false
|
||||
@ace.setBehavioursEnabled false
|
||||
@ace.setShowInvisibles aceConfig.invisibles
|
||||
@ace.setBehavioursEnabled aceConfig.behaviors
|
||||
@ace.setAnimatedScroll true
|
||||
@ace.setKeyboardHandler (@keyBindings[aceConfig.keyBindings] || null)
|
||||
@ace.setKeyboardHandler @keyBindings[aceConfig.keyBindings ? 'default']
|
||||
@toggleControls null, @writable
|
||||
@aceSession.selection.on 'changeCursor', @onCursorActivity
|
||||
$(@ace.container).find('.ace_gutter').on 'click', '.ace_error, .ace_warning, .ace_info', @onAnnotationClick
|
||||
|
|
|
@ -49,6 +49,7 @@ UserSchema = c.object {},
|
|||
keyBindings: {type: 'string', 'default': 'default', 'enum': ['default', 'vim', 'emacs']}
|
||||
invisibles: {type: 'boolean', 'default': false}
|
||||
indentGuides: {type: 'boolean', 'default': false}
|
||||
behaviors: {type: 'boolean', 'default': false}
|
||||
|
||||
c.extendBasicProperties UserSchema, 'user'
|
||||
|
||||
|
|
Loading…
Reference in a new issue