From 8e7f4f2716aef74d188d78278c6d8afe0b0a5c95 Mon Sep 17 00:00:00 2001 From: c-spencer Date: Sun, 22 May 2011 02:59:28 +0100 Subject: [PATCH] Allow mode behaviours to be disabled at the editor level --- lib/ace/editor.js | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/lib/ace/editor.js b/lib/ace/editor.js index 4b1fdd29..098e2750 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -413,10 +413,12 @@ var Editor =function(renderer, session) { var cursor = this.getCursorPosition(); - // Get a transform if the current mode wants one. - var transform = mode.transformInsert(session.getState(cursor.row), this, session, text); - if (transform) - text = transform.text; + if (this.getBehavioursEnabled()) { + // Get a transform if the current mode wants one. + var transform = mode.transformInsert(session.getState(cursor.row), this, session, text); + if (transform) + text = transform.text; + } text = text.replace("\t", this.session.getTabString()); @@ -603,6 +605,15 @@ var Editor =function(renderer, session) { this.getReadOnly = function() { return this.$readOnly; }; + + this.$modeBehaviours = true; + this.setBehavioursEnabled = function (enabled) { + this.$modeBehaviours = enabled; + } + + this.getBehavioursEnabled = function () { + return this.$modeBehaviours; + } this.removeRight = function() { if (this.$readOnly) @@ -622,10 +633,12 @@ var Editor =function(renderer, session) { if (this.selection.isEmpty()) this.selection.selectLeft(); - var session = this.session; - var selection = this.getSelectionRange(); - var state = session.getState(selection.start.row); - var range = session.getMode().transformRemove(state, this, session, selection); + var range = this.getSelectionRange(); + if (this.getBehavioursEnabled()) { + var session = this.session; + var state = session.getState(range.start.row); + range = session.getMode().transformRemove(state, this, session, range); + } this.session.remove(range); this.clearSelection();