window, editor: take coords rather than iterators parameters
This commit is contained in:
parent
4f1ba860f8
commit
52b77c1915
|
@ -61,9 +61,8 @@ public:
|
|||
void flip_selections();
|
||||
void keep_selection(int index);
|
||||
void remove_selection(int index);
|
||||
void select(const BufferIterator& it,
|
||||
SelectMode mode = SelectMode::Replace)
|
||||
{ select(Selection{ it, it }, mode); }
|
||||
void select(const BufferCoord& c, SelectMode mode = SelectMode::Replace)
|
||||
{ auto it = m_buffer->iterator_at(c); select(Selection{ it, it }, mode); }
|
||||
void select(const Selection& sel,
|
||||
SelectMode mode = SelectMode::Replace);
|
||||
void select(const Selector& selector,
|
||||
|
|
|
@ -49,11 +49,8 @@ void goto_commands(Context& context)
|
|||
int count = context.numeric_param();
|
||||
if (count != 0)
|
||||
{
|
||||
BufferIterator target =
|
||||
context.editor().buffer().iterator_at_line_begin(count-1);
|
||||
|
||||
context.push_jump();
|
||||
context.editor().select(target);
|
||||
context.editor().select(BufferCoord{count - 1, 0});
|
||||
if (context.has_window())
|
||||
context.window().center_selection();
|
||||
}
|
||||
|
|
|
@ -176,20 +176,21 @@ void Window::scroll_to_keep_cursor_visible_ifn()
|
|||
}
|
||||
}
|
||||
|
||||
DisplayCoord Window::display_position(const BufferIterator& iterator)
|
||||
DisplayCoord Window::display_position(const BufferCoord& coord)
|
||||
{
|
||||
DisplayCoord res{0,0};
|
||||
for (auto& line : m_display_buffer.lines())
|
||||
{
|
||||
if (line.buffer_line() == iterator.line())
|
||||
if (line.buffer_line() == coord.line)
|
||||
{
|
||||
for (auto& atom : line)
|
||||
{
|
||||
auto& content = atom.content;
|
||||
if (content.has_buffer_range() and
|
||||
iterator.coord() >= content.begin() and iterator.coord() < content.end())
|
||||
coord >= content.begin() and coord < content.end())
|
||||
{
|
||||
res.column += utf8::distance(buffer().iterator_at(content.begin()), iterator);
|
||||
res.column += utf8::distance(buffer().iterator_at(content.begin()),
|
||||
buffer().iterator_at(coord));
|
||||
return res;
|
||||
}
|
||||
res.column += content.length();
|
||||
|
|
|
@ -37,7 +37,7 @@ public:
|
|||
void scroll(LineCount offset);
|
||||
void update_display_buffer();
|
||||
|
||||
DisplayCoord display_position(const BufferIterator& it);
|
||||
DisplayCoord display_position(const BufferCoord& coord);
|
||||
|
||||
HighlighterGroup& highlighters() { return m_highlighters; }
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user