29 lines
690 B
Dart
29 lines
690 B
Dart
class Cursor {
|
|
Cursor({this.line = 0, this.column = 0, this.anchorLine = 0, this.anchorColumn = 0});
|
|
|
|
int line = 0;
|
|
int column = 0;
|
|
int anchorLine = 0;
|
|
int anchorColumn = 0;
|
|
|
|
Cursor copy() {
|
|
return Cursor(line: line, column: column, anchorLine: anchorLine, anchorColumn: anchorColumn);
|
|
}
|
|
|
|
Cursor normalized() {
|
|
Cursor res = copy();
|
|
if (line > anchorLine || (line == anchorLine && column > anchorColumn)) {
|
|
res.line = anchorLine;
|
|
res.column = anchorColumn;
|
|
res.anchorLine = line;
|
|
res.anchorColumn = column;
|
|
return res;
|
|
}
|
|
return res;
|
|
}
|
|
|
|
bool hasSelection() {
|
|
return line != anchorLine || column != anchorColumn;
|
|
}
|
|
}
|