AceEditorWidget: Implement getRange

Depends on I109a666679 in OOUI.

Change-Id: Ie40a30a3743237c1c1cd59dd2165d313363e04cb
This commit is contained in:
Ed Sanders 2015-11-13 18:23:16 -08:00 committed by Jforrester
parent b17029ccd9
commit a5d700807a

View file

@ -131,6 +131,40 @@ ve.ui.MWAceEditorWidget.prototype.setEditorValue = function ( value ) {
}
};
/**
* @inheritdoc
*/
ve.ui.MWAceEditorWidget.prototype.getRange = function () {
var selection, range, lines, start, end, isBackwards;
function posToOffset( row, col ) {
var r, offset = 0;
for ( r = 0; r < row; r++ ) {
offset += lines[ r ].length;
offset++; // for the newline character
}
return offset + col;
}
if ( this.editor ) {
lines = this.editor.getSession().getDocument().getAllLines();
selection = this.editor.getSelection();
isBackwards = selection.isBackwards();
range = selection.getRange();
start = posToOffset( range.start.row, range.start.column );
end = posToOffset( range.end.row, range.end.column );
return {
from: isBackwards ? end : start,
to: isBackwards ? start : end
};
} else {
return ve.ui.MWAceEditorWidget.super.prototype.getRange.call( this );
}
};
/**
* @inheritdoc
*/