Skip to content

Commit

Permalink
Improve smart backspace. Fixes #105
Browse files Browse the repository at this point in the history
  • Loading branch information
wyozi committed Oct 18, 2015
1 parent 37c3f1d commit f28b44a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 17 deletions.
38 changes: 22 additions & 16 deletions ace-src/mode-lua.js
Original file line number Diff line number Diff line change
Expand Up @@ -794,27 +794,33 @@ var LuaBehaviour = function() {

this.add("smartbackspace", "deletion", function(state, action, editor, session, range) {
var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && /\s/.test(selected)) {
var line = session.doc.getLine(range.start.row);

// check if we have more indentation than we should
if (range.start.row > 0) {
var targIndent = this.getNextLineIndent("start", session.doc.getLine(range.start.row-1), "\t");
var curIndent = this.$getIndent(line);
if (targIndent.length < curIndent.length) {
range.start.column = targIndent.length;
return range;
}
}
if (range.isMultiLine() || !/\s/.test(selected))
return;

var line = session.doc.getLine(range.start.row);
var lineStart = line.substring(0, range.start.column + 1);

// otherwise we straight hop to previous line
var lineStart = line.substring(0, range.start.column + 1);
if (/^\s+$/.test(lineStart) && range.start.row > 0) {
range.start.row--;
range.start.column = session.doc.getLine(range.start.row).length;
// make sure we're only dealing with whitespace
if (!/^\s+$/.test(lineStart))
return;

// check if we have more indentation than we should
if (range.start.row > 0) {
var targIndent = this.getNextLineIndent("start", session.doc.getLine(range.start.row-1), "\t");
var curIndent = this.$getIndent(line);
if (targIndent.length < curIndent.length) {
range.start.column = targIndent.length;
return range;
}
}

// otherwise we straight hop to previous line
if (range.start.row > 0) {
range.start.row--;
range.start.column = session.doc.getLine(range.start.row).length;
return range;
}
});

};
Expand Down
Loading

0 comments on commit f28b44a

Please sign in to comment.