improve ruby outdent
This commit is contained in:
parent
4872441bc6
commit
72a509e542
1 changed files with 13 additions and 6 deletions
|
|
@ -74,14 +74,21 @@ oop.inherits(Mode, TextMode);
|
|||
};
|
||||
|
||||
this.checkOutdent = function(state, line, input) {
|
||||
return /^\s+end$/.test(line + input) || /^\s+}$/.test(line + input) || /^\s+else$/.test(line + input);
|
||||
return /^\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input);
|
||||
};
|
||||
|
||||
this.autoOutdent = function(state, doc, row) {
|
||||
var indent = this.$getIndent(doc.getLine(row));
|
||||
var tab = doc.getTabString();
|
||||
if (indent.slice(-tab.length) == tab)
|
||||
doc.remove(new Range(row, indent.length-tab.length, row, indent.length));
|
||||
this.autoOutdent = function(state, session, row) {
|
||||
var line = session.getLine(row);
|
||||
if (/}/.test(line))
|
||||
return this.$outdent.autoOutdent(session, row);
|
||||
var indent = this.$getIndent(line);
|
||||
var prevLine = session.getLine(row - 1);
|
||||
var prevIndent = this.$getIndent(prevLine);
|
||||
var tab = session.getTabString();
|
||||
if (prevIndent.length <= indent.length) {
|
||||
if (indent.slice(-tab.length) == tab)
|
||||
session.remove(new Range(row, indent.length-tab.length, row, indent.length));
|
||||
}
|
||||
};
|
||||
|
||||
this.$id = "ace/mode/ruby";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue