diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2013-12-14 13:21:07 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2013-12-14 14:38:17 +0000 |
| commit | dad27fe1a0d3cf7382675e9fb2c64a0a4f874a59 (patch) | |
| tree | bcb63fc2186360c8fb27a13b3f24b3e8b689228e /src/editor.cc | |
| parent | f53ba0baede2aade92b4267f416bf1a4965064f6 (diff) | |
Remove simple selectors, always go through a multi selector
Diffstat (limited to 'src/editor.cc')
| -rw-r--r-- | src/editor.cc | 42 |
1 files changed, 1 insertions, 41 deletions
diff --git a/src/editor.cc b/src/editor.cc index f4153122..4f925374 100644 --- a/src/editor.cc +++ b/src/editor.cc @@ -235,52 +235,12 @@ void Editor::select(SelectionList selections) check_invariant(); } -void Editor::select(const Selector& selector, SelectMode mode) -{ - if (mode == SelectMode::Append) - { - auto& sel = m_selections.main(); - auto res = selector(*m_buffer, sel); - if (res.captures().empty()) - res.captures() = sel.captures(); - m_selections.push_back(res); - m_selections.set_main_index(m_selections.size() - 1); - } - else if (mode == SelectMode::ReplaceMain) - { - auto& sel = m_selections.main(); - auto res = selector(*m_buffer, sel); - sel.first() = res.first(); - sel.last() = res.last(); - if (not res.captures().empty()) - sel.captures() = std::move(res.captures()); - } - else - { - for (auto& sel : m_selections) - { - auto res = selector(*m_buffer, sel); - if (mode == SelectMode::Extend) - sel.merge_with(res); - else - { - sel.first() = res.first(); - sel.last() = res.last(); - } - if (not res.captures().empty()) - sel.captures() = std::move(res.captures()); - } - } - m_selections.sort_and_merge_overlapping(); - check_invariant(); -} - struct nothing_selected : public runtime_error { nothing_selected() : runtime_error("nothing was selected") {} }; -void Editor::multi_select(const MultiSelector& selector) +void Editor::select(const MultiSelector& selector) { selector(*m_buffer, m_selections); check_invariant(); |
