Use simple SelectionList for the Context::JumpList
This commit is contained in:
parent
ea3e92aa5e
commit
a06094b00e
|
@ -103,8 +103,7 @@ void Context::push_jump()
|
||||||
if (m_current_jump != m_jump_list.end())
|
if (m_current_jump != m_jump_list.end())
|
||||||
{
|
{
|
||||||
auto begin = m_current_jump;
|
auto begin = m_current_jump;
|
||||||
if (&buffer() != &begin->buffer() or
|
if (&buffer() != &begin->buffer() or *begin != jump)
|
||||||
(const SelectionList&)(*begin) != jump)
|
|
||||||
++begin;
|
++begin;
|
||||||
m_jump_list.erase(begin, m_jump_list.end());
|
m_jump_list.erase(begin, m_jump_list.end());
|
||||||
}
|
}
|
||||||
|
@ -114,21 +113,27 @@ void Context::push_jump()
|
||||||
m_current_jump = m_jump_list.end();
|
m_current_jump = m_jump_list.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
const DynamicSelectionList& Context::jump_forward()
|
const SelectionList& Context::jump_forward()
|
||||||
{
|
{
|
||||||
if (m_current_jump != m_jump_list.end() and
|
if (m_current_jump != m_jump_list.end() and
|
||||||
m_current_jump + 1 != m_jump_list.end())
|
m_current_jump + 1 != m_jump_list.end())
|
||||||
return *++m_current_jump;
|
{
|
||||||
|
SelectionList& res = *++m_current_jump;
|
||||||
|
res.update();
|
||||||
|
return res;
|
||||||
|
}
|
||||||
throw runtime_error("no next jump");
|
throw runtime_error("no next jump");
|
||||||
}
|
}
|
||||||
|
|
||||||
const DynamicSelectionList& Context::jump_backward()
|
const SelectionList& Context::jump_backward()
|
||||||
{
|
{
|
||||||
if (m_current_jump != m_jump_list.end() and
|
if (m_current_jump != m_jump_list.end() and
|
||||||
*m_current_jump != selections())
|
*m_current_jump != selections())
|
||||||
{
|
{
|
||||||
push_jump();
|
push_jump();
|
||||||
return *--m_current_jump;
|
SelectionList& res = *--m_current_jump;
|
||||||
|
res.update();
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
if (m_current_jump != m_jump_list.begin())
|
if (m_current_jump != m_jump_list.begin())
|
||||||
{
|
{
|
||||||
|
@ -137,7 +142,9 @@ const DynamicSelectionList& Context::jump_backward()
|
||||||
push_jump();
|
push_jump();
|
||||||
--m_current_jump;
|
--m_current_jump;
|
||||||
}
|
}
|
||||||
return *--m_current_jump;
|
SelectionList& res = *--m_current_jump;
|
||||||
|
res.update();
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
throw runtime_error("no previous jump");
|
throw runtime_error("no previous jump");
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,8 +64,8 @@ public:
|
||||||
void print_status(DisplayLine status) const;
|
void print_status(DisplayLine status) const;
|
||||||
|
|
||||||
void push_jump();
|
void push_jump();
|
||||||
const DynamicSelectionList& jump_forward();
|
const SelectionList& jump_forward();
|
||||||
const DynamicSelectionList& jump_backward();
|
const SelectionList& jump_backward();
|
||||||
void forget_jumps_to_buffer(Buffer& buffer);
|
void forget_jumps_to_buffer(Buffer& buffer);
|
||||||
|
|
||||||
const String& name() const { return m_name; }
|
const String& name() const { return m_name; }
|
||||||
|
@ -89,7 +89,7 @@ private:
|
||||||
|
|
||||||
String m_name;
|
String m_name;
|
||||||
|
|
||||||
using JumpList = std::vector<DynamicSelectionList>;
|
using JumpList = std::vector<SelectionList>;
|
||||||
JumpList m_jump_list;
|
JumpList m_jump_list;
|
||||||
JumpList::iterator m_current_jump = m_jump_list.begin();
|
JumpList::iterator m_current_jump = m_jump_list.begin();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user