Allow mode behaviours to be disabled at the editor level

This commit is contained in:
c-spencer 2011-05-22 02:59:28 +01:00
commit 8e7f4f2716

View file

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