mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-09-25 11:16:51 +00:00
AceEditorWidget: Implement getRange
Depends on I109a666679 in OOUI. Change-Id: Ie40a30a3743237c1c1cd59dd2165d313363e04cb
This commit is contained in:
parent
b17029ccd9
commit
a5d700807a
|
@ -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
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue