Added configuring of behaviors to the editor config.

This commit is contained in:
Nick Winter 2014-03-14 10:14:48 -07:00
parent 3c0b496033
commit 5c76ca71e3
5 changed files with 35 additions and 19 deletions

View file

@ -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"

View file

@ -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

View file

@ -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()

View file

@ -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

View file

@ -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'