* readline style insert mode
* update keymap.md
* don't save change history in insert mode
* Revert "don't save change history in insert mode"
This reverts commit cb47f946d7fb62ceda68e7d1692a3914d0be7762.
* don't affect register and history in insert mode
* add insert_register
* don't call exit_select_mode in insert mode
* avoid set_selection
* avoid duplicated current!
* Add arrow keys to view mode
* Drop C-up and C-down
* Update docs for #987
* Format correctly
* Drop other keymaps
* Correct keymap.md
* Add arrow keys to view mode
Drop C-up and C-down
Update docs for #987
Format correctly
Drop other keymaps
Correct keymap.md
Rebase
Co-authored-by: Rust & Python <nexinov@localhost.gud-o15>
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* add wonly
* Update book/src/keymap.md
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* add `wonly` to space w mode too
* remove the TODO
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Add reverse search functionality
* Change keybindings for extend to be in select mode, incorporate Movement and Direction enums
* Fix accidental revert of #948 in rebase
* Add reverse search to docs, clean up mismatched whitespace
* Reverse search optimization
* More optimization via github feedback
* Add prompt shourtcut to book
Add completions to search
Add c-s to pick word under doc cursor to prompt line
* limit 20 last items of search completion, update book
* Update book/src/keymap.md
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* limit search completions 200
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add `A-,` to `keymap.md`, and remove out-of-place commas
* Update book/src/keymap.md
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add slashes in place of previous commas in `keymap.md`
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* initial implementation of global search
* use tokio::sync::mpsc::unbounded_channel instead of Arc, Mutex, Waker poll_fn
* use tokio_stream::wrappers::UnboundedReceiverStream to collect all search matches
* regex_prompt: unified callback; refactor
* global search doc
* Implement shell interaction commands
* Use slice instead of iterator for shell invocation
* Default to `sh` instead of `$SHELL` for shell commands
* Enforce trailing comma in `commands` macro
* Use `|` register for shell commands
* Move shell config to `editor` and use in command
* Update shell command prompts
* Remove clone of shell config
* Change shell function names to match prompts
* Log stderr contents upon external command error
* Remove `unwrap` calls on potential common errors
`shell` will no longer panic if:
* The user-configured shell cannot be found
* The shell command does not output UTF-8
* Remove redundant `pipe` parameter
* Rename `ShellBehavior::None` to `Ignore`
* Display error when shell command is used and `shell = []`
* Document shell commands in `keymap.md`
* Added change_case command
* Added switch_to_uppercase and switch_to_lowercase
Renamed change_case to switch_case.
* Updated the Keymap section of the Book
* Use flat_map instead of map + flatten
* Fix switch_to_uppercase using to_lowercase
* Switched 'Alt-`' to uppercase and '`' to lowercase
Co-authored-by: Cor <prive@corpeters.nl>
* Add textobjects for word
* Add textobjects for surround characters
* Apply clippy lints
* Remove ThisWordPrevBound in favor of PrevWordEnd
It's the same as PrevWordEnd except for taking the current char
into account, so use a "flag" to capture that usecase
* Add tests for PrevWordEnd movement
* Remove ThisWord* movements
They did not preserve anchor positions and were only used
for textobject boundary search anyway so replace them with
simple position finding functions
* Rewrite tests of word textobject
* Add tests for surround textobject
* Add textobject docs
* Refactor textobject word position functions
* Apply clippy lints on textobject
* Fix overflow error with textobjects
* add alternate file
inspired by vim ctrl-6/kak ga commands. the alternate file is kept per view
* apply feedback from #223
* rename to last_accessed
* add ga doc
* add fail message for ga
* Add convenience/clarity wrapper for Range initialization
* Test horizontal moves
* Add column jumping tests
* Add failing movement conditions for multi-word moves
* Refactor skip_over_next
* Add complex forward movement unit tests
* Add strict whitespace checks and edge case tests
* Restore formatting
* Remove unused function
* Add empty test case for deletion and fix nth_prev_word_boundary
* Add tests for backward motion
* Refactor word movement
* Address review comments and finish refactoring backwards move
* Finish unit test suite
* Fmt pass
* Fix lint erors
* Clean up diff restoring bad 'cargo fmt' actions
* Simplify movement closures (thanks Pickfire)
* Fmt pass
* Replace index-based movement with iterator based movement, ensuring that each move incurs a single call to the RopeSlice API
* Break down tuple function
* Extract common logic to all movement functions
* Split iterator helpers away into their own module
* WIP reducing clones
* Operate on spans
* WIP simplifying iterators
* Simplify motion helpers
* Fix iterator
* Fix all unit tests
* Refactor and simplify
* Simplify fold