Omnikar
21e5662125
Make exit_select_mode
check current mode ( #568 )
...
Change `exit_select_mode` to check that the current mode is select mode
before switching to normal mode
2021-08-10 10:57:07 +09:00
Blaž Hrastnik
a4564adadd
fix: Don't crash if language servers time out
2021-08-10 10:52:53 +09:00
Blaž Hrastnik
0a7add4ad4
Only recalculate resize during rendering, this stops flashing on resize
2021-08-10 10:52:52 +09:00
Kirawi
815ee9e334
fix small terminal size panic with info popup ( #563 )
...
* fix small terminal size panic with info popup
* remove unused enumerator
* fix subtraction overflow panic
2021-08-09 15:46:58 +09:00
Blaž Hrastnik
a2ccfffda1
config: Rename [terminal] to [editor] and pass it into Editor
2021-08-08 14:10:01 +09:00
Blaž Hrastnik
f0eb6ed96a
Resolve a couple TODOs
2021-08-08 14:08:54 +09:00
Blaž Hrastnik
02cba2a7f4
Implement alt-( and alt-) to rotate selection contents
2021-08-08 13:26:13 +09:00
Luctius
8714b71991
Do not shutdown lsp during claim_term
...
Fixes a bug where the language server is told to shutdown directly after application start.
2021-08-07 10:41:41 +09:00
Blaž Hrastnik
b20a5c4c0e
ui: menu: Allow wrapping around on ctrl-p/shift tab
2021-08-06 11:22:23 +09:00
Blaž Hrastnik
66a90130a5
Implement selection rotation with (
and )
2021-08-06 11:22:01 +09:00
Ivan Tham
10c77cdc03
Exit extend after yank
...
Yank should proceed with normal mode.
2021-08-05 17:25:23 +09:00
Blaž Hrastnik
0793841ac3
Refactor copy selection vertically
2021-08-05 17:04:26 +09:00
Cor
f160008add
Vertical Selection
2021-08-05 17:04:26 +09:00
Nathan Vegdahl
8c3a5b14de
Add goto_last_line
command, and bind it to ge
.
...
Resolves #529 .
2021-08-04 09:47:22 +09:00
Blaž Hrastnik
585793eb46
Use an empty stream on Windows to remove duplication
2021-08-03 09:32:21 +09:00
Ivan Tham
821565e4ef
Add ctrl-z to suspend
2021-08-03 09:32:21 +09:00
Blaž Hrastnik
adb5d842ba
Use nicer filepaths instead of URIs in goto picker
2021-08-03 09:30:51 +09:00
Blaž Hrastnik
62eb8c6b40
mouse: Remove verify_screen_coords, refactor primary selection modification
2021-07-30 16:52:14 +09:00
Blaž Hrastnik
6bb744aeac
Remove the jump
2021-07-30 16:52:10 +09:00
Dmitry Sharshakov
8361de45dc
Mouse selection support ( #509 )
...
* Initial mouse selection support
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Disable mouse event capture if editor crashes
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Translate screen coordinates to view position
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Select full lines by dragging on line numbers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* editor: don't register dragging as a jump
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Count graphemes correctly
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Do not select lines when dragging on the line number bar
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Split out verify_screen_coords
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Do not iterate over the graphemes twice
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Switch view by clicking on it
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Add disable-mouse config option
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Support multiple selections with mouse
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Remove unnecessary check
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Refactor using match expression
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Rename local variable
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Rename mouse option
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Refactor code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix dragging selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix crash when clicking past last line
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Count characters better
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Remove comparison not needed anymore
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Validate coordinates before resolving position
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Tidy up references to editor tree
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Better way to determine line end and avoid overflow
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix for last line
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Add unit tests for text_pos_at_screen_coords
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-07-30 16:52:00 +09:00
Blaž Hrastnik
0fdb626c2c
Remove embed_runtime feature
...
It's no longer practical to maintain. Closes #451
2021-07-30 16:27:22 +09:00
Nathan Vegdahl
f88d4c1e20
Move indent-style code into helix_core::indent
.
2021-07-30 12:22:59 +09:00
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
Gokul Soumya
1493313750
Show pending keys in status line ( #515 )
...
* Show pending keys and counts in status line
* Refactor pending key display
2021-07-28 13:57:07 +09: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
Blaž Hrastnik
1789dfabfe
fix: ui/menu: Don't allow scrolling past the end of completion
...
Fixes #472
2021-07-23 18:12:33 +09:00
Blaž Hrastnik
817a7e0bd6
fix: Only try expanding directory completion if it makes sense
...
Fixes #487
2021-07-23 18:10:30 +09:00
Blaž Hrastnik
58d08d36ae
Simplify ui/menu.rs
2021-07-23 18:10:17 +09:00
Nathan Vegdahl
5841954f58
Calculate the line that the range head is on correctly.
2021-07-22 11:17:03 -07:00