| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-03-26 | Make sure captures are taken into account when comparing selections | Maxime Coste | |
| sel1 == sel2 was using BasicSelection::operator==, ignoring captures, which led to selection history deciding that selection did not change in some cases where only the captures had been updated and for the new selection not to be properly applied, leading to missing capture. | |||
| 2024-08-12 | Reduce headers dependency graph | Maxime Coste | |
| Move more code into the implementation files to reduce the amount of code pulled by headers. | |||
| 2023-12-12 | Fix stray semicolon | Maxime Coste | |
| 2023-10-25 | Remove redundant comparison operators | Maxime Coste | |
| Since C++20 (a != b) get automatically rewritten as !(a == b) if the != operator does not exist. | |||
| 2023-08-14 | Change `+` command not to duplicate identical selections more than once | Maxime Coste | |
| The current exponential behaviour does not seem that useful, it seems more predictible that pressing `+` twice would end up with 3 copies of the original selections instead of 4. Fixes #4533 | |||
| 2022-11-28 | Fix pasting after when selections are overlapping | Maxime Coste | |
| With overlapping selections, pasting after breaks assumption of SelectionList::for_each as our changes are no longer happening in increasing locations. We hence cannot rely on the ForwardChangeTracker in that case and have to rely on the more general (and more costly) ranges update logic. This interacts poorly with paste linewise pastes and we try to preserve the current behaviour by tracking the last paste position. Overall, this change really begs for overlapping selections to be removed, but we will fix them like that for now. Fixes #4779 | |||
| 2022-07-05 | Distinguish between non-eol max column target and plain max column | Maxime Coste | |
| 2022-03-06 | src: Select the data inserted by `!` and `<a-!>` | Frank LENORMAND | |
| Closes #1468 | |||
| 2021-10-10 | Split InsertMode into InsertMode and PasteMode | Maxime Coste | |
| They are quite different use cases, and this allow moving InsertMode to input_handler.hh which is what uses it. This also cleans up the code as we can get rid of get_insert_pos and rely more on SelectionList::for_each. | |||
| 2021-09-30 | rework selection insert/replace using a for_each method | Maxime Coste | |
| expose that method so that various commands can take advantage of it for performance or simplicity purposes. | |||
| 2021-08-30 | Take a function SelectionList::insert to get string to insert | Maxime Coste | |
| This makes it unnecessary to allocate Vector<String> to insert and allows to remove the insert_pos pointer hack by passing it to the callback. | |||
| 2021-01-03 | Add missing limits includes | Maxime Coste | |
| Fixes #4003 | |||
| 2020-05-29 | Avoid to_remove vector in select helper function | Maxime Coste | |
| Remove the need to allocate anything when removing selections. | |||
| 2019-11-12 | Fix display column computations | Jason Felice | |
| Closes #3201 | |||
| 2019-11-12 | Add support for selecting and exporting selections in display columns | Maxime Coste | |
| Fixes #2724 | |||
| 2019-11-12 | Add support for a -codepoint switch to the select command | Maxime Coste | |
| 2019-11-12 | Implement %val{selections_char_desc} | Jason Felice | |
| Fixes #3194 | |||
| 2019-11-09 | Add static or const where useful | Jason Felice | |
| 2019-11-07 | Merge selection list parsing into selection_list_from_strings | Jason Felice | |
| 2019-05-29 | Do not merge selections on backspace in insert mode | Maxime Coste | |
| Fixes #2861 | |||
| 2019-04-01 | Add -timestamp switch support to the select command | Maxime Coste | |
| Fixes #2829 | |||
| 2019-02-11 | Fix bug in 'itersel' handling that could result in unsorted selections | Maxime Coste | |
| 2019-02-04 | Remove references to SelectionList from selectors | Maxime Coste | |
| 2019-02-04 | Remove target_eol and small code cleanups | Maxime Coste | |
| 2019-01-23 | Change pipe diffing to work linewise | Maxime Coste | |
| This should greatly improve performances as we only need to diff lines instead of individual characters. Closes #2678 Fixes #2037 | |||
| 2018-07-05 | Tolerate restoring invalid coordinates from register | Maxime Coste | |
| Clamp those selection after updating them to the current timestamp Fixes #2078 | |||
| 2018-07-05 | Store each selection as a separate element in a register | Maxime Coste | |
| It makes more sense to use the list nature of the register to store the selections instead of storing them as a single string separated by spaces. | |||
| 2018-07-05 | Make selection lists use the option list syntax | Maxime Coste | |
| 2018-03-04 | Remove SelectionList::update_timestamp() | Maxime Coste | |
| This single line member function was only used once, inline it directly. | |||
| 2018-02-25 | Remove avoidance of end of lines | Maxime Coste | |
| Various places in Kakoune code used to modify selections so that cursors would not lie on an end of line. Remove those to increase Kakoune's consistency and simplicity. Now that end of lines are highlighted separately, they should not be handled specially in most commands. | |||
| 2018-01-12 | Save/restore main selection from/to strings | Maxime Coste | |
| Always consider that the first selection in the list is the main one, save selections that way. This approach was suggested by PR #1786 but the implementation here is different, and is used more generally whenever we save selections to strings. This is also the prefered way to work only on the main selection: save selections with Z, reduce to main with <space>, restore with z. Closes #1786 Fixes #1750 | |||
| 2017-08-18 | Remove now trivial Selection::merge_with method | Maxime Coste | |
| 2017-07-14 | Fix an assert in compute modified ranges when merging single char ranges | Maxime Coste | |
| Due to the way Selection::min/max worked, we were creating backward selections, with cursor < anchor, which was triggering an assert when trying to move cursor back one char when it was already on the first char of the buffer. | |||
| 2017-03-15 | Move SelectionList::set implementation out of the header | Maxime Coste | |
| 2017-03-03 | Ensure main selection index is correct directly in SelectionList::remove | Maxime Coste | |
| 2017-02-01 | Use <a-'> for backward rotate selection and move rotate content to <a-"> | Maxime Coste | |
| 2017-01-13 | Fix capture group handling | Maxime Coste | |
| Fixes #1129 | |||
| 2017-01-03 | Fix bug relying on undefined arg evaluation order. | Maxime Coste | |
| 2017-01-03 | Fix handling of main selection when copying selection to next/previous lines | Maxime Coste | |
| Fixes #1095 | |||
| 2017-01-01 | Refactor SelectionList::insert a bit | Maxime Coste | |
| 2016-10-01 | Support codepoints of variable width | Maxime Coste | |
| Add a ColumnCount type and use it in place of CharCount whenever more appropriate, take column size of codepoints into account for vertical movements and docstring wrapping. Fixes #811 | |||
| 2016-08-27 | Support merging consecutive selections with <a-m> | Maxime Coste | |
| Fixes #773 | |||
| 2016-07-30 | Support sorting and merging overlapping separately, fix bug in move | Maxime Coste | |
| Fixes #754 | |||
| 2016-07-08 | Keep modified selections in non-draft exec/eval -itersel | Maxime Coste | |
| Fixes #727 | |||
| 2015-12-27 | Fix uses of non-keyword logical operators (replace &&, || and ! with and, or ↵ | Maxime Coste | |
| and not) | |||
| 2015-09-12 | Add some missing memory domains | Maxime Coste | |
| 2015-06-27 | Initial selection saving/restoring support bound to ^ and alt-^ | Maxime Coste | |
| 2015-04-13 | Add support for string <-> selection list serialization | Maxime Coste | |
| 2015-03-09 | ArrayView content is not const anymore | Maxime Coste | |
| As in upcoming std c++ array_view, ArrayView<T> points to mutable data, use ArrayView<const T> or alias ConstArrayView<T> for const data. | |||
| 2015-02-19 | Rename safe_ptr and ref_ptr to SafePtr and RefPtr | Maxime Coste | |
