I am creating a new simple mode for codemirror.
I would like that when the user presses "tab", the whole line gets indented (as opposed to only the part of the line that is after the cursor, "splitting" the line in two).
What would be the simplest way to do this ?
note : the corresponding code does not have to be defined in the mode. Any other approach (e.g. add on or configuration) would work as well.
This should work. jsfiddle
extraKeys: {
"Tab": function(cm){
// get cursor position
var pos = cm.getCursor();
// set cursor position to the begining of the line.
cm.setCursor({ line: pos.line, ch: 0 });
// insert a tab
cm.replaceSelection("\t", "end");
// set cursor position to original.
cm.setCursor({ line: pos.line, ch: pos.ch + 1 });
}
}