Nathan Vegdahl
e6e0d31be0
Fix incorrect behavior of find_char
command and friends.
...
The non-extending variants of the commands weren't selecting from the range head.
Fixes #527 .
2021-07-30 09:39:18 +08:00
Nathan Vegdahl
3fda350494
Fixes for new clippy lints in Rust 1.54.
2021-07-29 22:47:18 +02:00
Blaž Hrastnik
05d20e196f
Merge pull request #376 from cessen/great_line_ending_and_cursor_range_cleanup
...
The Great Line Ending & Cursor Range Cleanup
2021-07-29 18:43:20 +09:00
Nathan Vegdahl
e4d41d06e3
Fix typo in comment.
2021-07-28 19:20:23 -07:00
Gokul Soumya
8a2fa692f2
Refactor case where key event is solely a character
2021-07-29 08:39:58 +08:00
Nathan Vegdahl
285aba2de5
Fix bug with /
searching after non-ascii characters.
...
Forgot to convert from char indices to byte indices before passing
to the regex engine.
2021-07-28 16:03:34 -07:00
Nathan Vegdahl
cd7302ffd3
Enforce cursor/selection invariants in one place.
...
Rather than per-command like before.
2021-07-28 15:57:00 -07:00
Nathan Vegdahl
a873e719d5
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-28 14:11:08 -07:00
Gokul Soumya
b90450b9e8
Fix goto line number
...
Regression from #454 . Go to line 10 with `10gg` or `10G`.
2021-07-28 21:33:18 +08:00
Nathan Vegdahl
f62ec6e51e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-26 11:19:10 -07:00
Gokul Soumya
88d6f65239
Allow multi key remappings in config file ( #454 )
...
* Use tree like structure to store keymaps
* Allow multi key keymaps in config file
* Allow multi key keymaps in insert mode
* Make keymap state self contained
* Add keymap! macro for ergonomic declaration
* Add descriptions for editor commands
* Allow keymap! to take multiple keys
* Restore infobox display
* Fix keymap merging and add infobox titles
* Fix and add tests for keymaps
* Clean up comments and apply suggestions
* Allow trailing commas in keymap!
* Remove mode suffixes from keymaps
* Preserve order of keys when showing infobox
* Make command descriptions smaller
* Strip infobox title prefix from items
* Strip infobox title prefix from items
2021-07-27 01:07:13 +09:00
Nathan Vegdahl
01247acf0c
Start searches at the right side of the block cursor.
2021-07-26 08:50:26 -07:00
Nathan Vegdahl
0883b4fae0
Collect some common patterns into methods on Range
.
2021-07-26 08:40:30 -07:00
Blaž Hrastnik
63e54e30a7
Implement in-memory prompt history
...
Implementation is similar to kakoune: we store the entries into
a register.
2021-07-26 11:19:33 +09:00
Gokul Soumya
e07e42dcfb
fix(term): undo-ing code actions
2021-07-25 19:49:05 +09:00
gbaranski
8da58fe44a
fix(term): use existing implementation of edits_to_transaction
2021-07-25 19:49:05 +09:00
Nathan Vegdahl
f96b8b769b
Switch to a cleaner range-head moving abstraction.
...
Also fix a bunch of bugs related to it.
2021-07-24 07:44:11 -07:00
Grzegorz Baranski
48e344a2a8
feat: code actions - document edits ( #478 )
...
* wip: Code actions
* fix(term): use current macro instead Context::context
* feat(lsp): set code_action capabilities
* feat(term): set SPC-a to code_action
* feat(term): wip on applying code actions
* deps: `cargo update`
* feat(term): applying code actions edits
* fix(term): cleanup of apply_edit
* fix(term): applying edits as a whole thing instead one by one
* refactor(term): move apply_edits below
* fix(term): improve unimplemented messages for further investigation
* fix(term): change code action command comment
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* fix(term): add matching `}`
* fix(term): cleanup, todo!() on workspace edit
* fix(term): remove unrelated workspace_symbol_picker
* fix(term): apply cargo-clippy suggestions
* fix(term): replace todo!'s with editor.set_error
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-07-24 10:26:43 +09:00
Nathan Vegdahl
20723495d3
Fixed find_till_char and find_char commands.
...
They worked correctly when extending, but not for normal cursor
movement.
2021-07-23 18:03:40 -07:00
Nathan Vegdahl
8f43dc4039
Fix surround replace command replacing the wrong position on the right.
2021-07-23 17:52:45 -07:00
Nathan Vegdahl
43594049dd
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-23 17:23:16 -07:00
Nathan Vegdahl
427ae6ac6c
Put selection in separate variable in commands code.
2021-07-23 17:06:14 -07:00
Nathan Vegdahl
ad814b8c2e
Fix append mode, and make insertion always happen at head of range.
2021-07-23 14:27:12 -07:00
Nathan Vegdahl
5841954f58
Calculate the line that the range head is on correctly.
2021-07-22 11:17:03 -07:00
Nathan Vegdahl
673338bdb6
Use Range::line_range()
in some more places I missed.
2021-07-22 10:50:12 -07:00
Ivan Tham
eba0bbda2e
Resume last picker
...
Inspired by space ' in doom emacs.
2021-07-22 11:22:27 +09:00
Nathan Vegdahl
7d07704e6f
Fix append mode not editing correctly.
...
This is currently a bit of a hack, and still doesn't behave quite how we
probably want. Left a TODO.
2021-07-21 09:56:21 -07:00
Nathan Vegdahl
063aa9452d
Fix yank not working with internally zero-width ranges.
2021-07-21 09:32:48 -07:00
Nathan Vegdahl
c848ed7abc
Fixes for misc bugs with view movement.
2021-07-20 18:15:34 -07:00
Nathan Vegdahl
1194fc842a
Use new Range::line_range()
method in more places, as appropriate.
2021-07-20 12:40:58 -07:00
Nathan Vegdahl
1c6b5581f0
Fix various bugs related to goto-end-of-line command.
...
This also fixes a bug with `Selection::normalize()`, that could
result in an out-of-bounds primary index.
2021-07-20 11:58:56 -07:00
Nathan Vegdahl
e8a3980e46
Fix line-wise p
pasting before the current line instead of after.
2021-07-20 10:56:27 -07:00
Nathan Vegdahl
1792dc6f93
Make search work a little nicer when there are already selections.
...
Specifically, if you have text like "aaaaaaaaa" and you search
for "a", the new behavior will actually progress through all of the
"a"s, whereas the previous behavior would be stuck on a single one.
2021-07-19 18:29:26 -07:00
Nathan Vegdahl
13b0784009
Fix extend line behavior.
2021-07-19 17:44:18 -07:00
Nathan Vegdahl
b0311f4fc2
Fixed primary cursor position calculation to use 1-width semantics.
...
This had a bunch of knock-on effects that were buggy, such as bracket
match highlighting.
2021-07-19 09:25:10 -07:00
Nathan Vegdahl
e462f32723
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-18 22:02:12 -07:00
Nathan Vegdahl
6c038bb015
Update word selection/navigation to work with gap indexing.
...
Also tweaked some of the existing behavior that seemed inconsistent
and/or buggy. It's mostly identical, just a few corner cases are
different.
2021-07-18 21:59:31 -07:00
Cor Peters
cd65a48635
Made toggle_comments language dependent ( #463 )
...
* Made toggle_comments language dependent
* Fixed Test Cases
* Added clippy suggestion
* Small Fixes
* Clippy Suggestion
Co-authored-by: Cor <prive@corpeters.nl>
2021-07-19 01:33:38 +09:00
Nathan Vegdahl
c2fd55e168
Update extend_line command to work with gap indexing.
2021-07-17 11:28:20 -07:00
Nathan Vegdahl
954314a7c9
Update change-case commands to work with gap indexing.
2021-07-17 11:03:39 -07:00
Nathan Vegdahl
a77274e8bb
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-17 10:49:03 -07:00
Cor Peters
722cfedb38
Added change_case command ( #441 )
...
* 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>
2021-07-17 01:12:59 +09:00
Blaž Hrastnik
4a5cb0e04b
Restore C-w shortcut
2021-07-11 16:42:23 +09:00
Blaž Hrastnik
d530d6e39d
Further simplify error handling in :commands
2021-07-11 16:36:36 +09:00
Lionel Flandrin
9c02a1b070
Make command implementation return a Result<()>
...
The error message is displayed with cx.editor.set_error.
2021-07-11 16:36:20 +09:00
Ivan Tham
3e4cd8f8e6
Add infobox for view
2021-07-11 11:12:04 +09:00
Nathan Vegdahl
b4c59b444c
Update surround commands to work with gap indexing.
2021-07-08 16:47:20 -07:00
Ivan Tham
1c71fced0e
Add more modes to infobox
2021-07-08 09:37:18 +09:00
Nathan Vegdahl
85d5b399de
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-05 20:27:49 -07:00
Blaž Hrastnik
a4e28c6927
Implement X
as extend selection to line bounds
2021-07-05 10:12:34 +09:00