Blaž Hrastnik
fd1eaafff5
Add :tree-sitter-scopes, useful when developing indents.toml
2021-08-13 13:15:53 +09:00
Blaž Hrastnik
3de40de0a9
fix build...
2021-08-13 01:28:11 +09:00
Blaž Hrastnik
733ee06b7b
Release v0.4.0
2021-08-13 01:24:04 +09:00
Gokul Soumya
d84f8b5fde
Show file preview in split pane in fuzzy finder ( #534 )
...
* Add preview pane for fuzzy finder
* Fix picker preview lag by caching
* Add picker preview for document symbols
* Cache picker preview per document instead of view
* Use line instead of range for preview doc
* Add picker preview for buffer picker
* Fix render bug and refactor picker
* Refactor picker preview rendering
* Split picker and preview and compose
The current selected item is cloned on every event, which is
undesirable
* Refactor out clones in previewed picker
* Retrieve doc from editor if possible in filepicker
* Disable syntax highlight for picker preview
Files already loaded in memory have syntax highlighting enabled
* Ignore directory symlinks in file picker
* Cleanup unnecessary pubs and derives
* Remove unnecessary highlight from file picker
* Reorganize buffer rendering
* Use normal picker for code actions
* Remove unnecessary generics and trait impls
* Remove prepare_for_render and make render mutable
* Skip picker preview if screen small, less padding
2021-08-12 16:00:42 +09:00
Dmitry Sharshakov
7d51805e94
Support primary clipboard ( #548 )
...
* clipboard-none: add in-memory fallback buffer
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* view: add Wayland primary clipboard
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Format
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: copy to primary selection after mouse move stops
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: don't update primary selection if it is a single character
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: discard result of setting primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: add commands for interaction with primary clipboard
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* editor: implement primary selection copy/paste using commands
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: support xsel for primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: support xclip for primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: multiple cursor support for middle click paste
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* rename primary selection to primary clipboard in scope of PR
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: make middle click paste optional
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Format
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Update helix-term/src/ui/editor.rs
* fix formatting
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: correct defaults if terminal prop is not set
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* refactor: merge clipboard and primary selection implementations
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Tidy up code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* view: remove names for different clipboard/selection providers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Update helix-view/src/clipboard.rs
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* helix-view: tidy macros
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: refactor paste-replace commands
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: use new config for middle-click-paste
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: remove memory fallback for command and windows providers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard-win: fix build
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: return empty string when primary clipboard is missing
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: fix errors in Windows build
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2021-08-12 11:53:48 +09:00
Blaž Hrastnik
d03982ee43
cargo fmt
2021-08-12 10:18:37 +09:00
Blaž Hrastnik
6d52424303
fix: Adjust scroll offset/padding calculation to prevent wobble
...
Fixes #324
2021-08-11 13:53:38 +09:00
Blaž Hrastnik
627b899315
ui: completion: Insert suggestions when tabbing over them
...
Fixes #498
2021-08-11 10:56:32 +09:00
Blaž Hrastnik
f917b5a441
ui: completion: Use sort_text to sort the completions
2021-08-11 10:56:32 +09:00
Nathan Vegdahl
dde2be9395
Fix surround_replace replacing the wrong character on the right. ( #571 )
...
Fixes #569 .
2021-08-11 09:17:59 +09:00
Dmitry Sharshakov
27b551d345
helix-term: handle scrolling when mouse is enabled ( #554 )
...
* helix-term: handle scrolling when mouse is enabled
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: configure scrolling speed
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: use new config for scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: defaults for edtior config
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: add scroll-lines property
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: scroll hovered view
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: support inverted scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: remove duplicating code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: do not focus view while scrolled
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: refactor mouse events and scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* simplify
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
2021-08-10 14:35:20 +09:00
Blaž Hrastnik
86209c93a3
Appease clippy
2021-08-10 10:58:46 +09:00
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
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
1910fa7723
Fix incorrect line hihglight when a selection is at the end of a line.
2021-07-20 10:26:00 -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
079d4ed86d
Properly fix last_line
view calculation.
...
Turned out to be simpler than I thought. Didn't even need to change the
other use-sites.
2021-07-19 08:39:48 -07:00
Nathan Vegdahl
1a9ae72fcb
Fix last line number being drawn in the status bar.
2021-07-18 23:09:55 -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
Blaž Hrastnik
5292fe0f7d
Calculate completion popup sizing
...
Fixes #220
2021-07-19 11:29:51 +09: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
9fcbbfa467
Changed startup behaviour to only open a single view when multiple files are specified on the commandline.
...
Changed the behaviour; the first argument on the commandline is the file on display
2021-07-18 00:29:05 +09: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
Cor
e2bcef718a
Removed double entry of extend_line
2021-07-15 23:25:00 +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
Kirawi
bb121a3e4b
Injection Query Support ( #430 )
...
* wip
* wip
* fixed unsafe
* fix clippy
* move out reference variable
* fmt
* remove arc
* change safety comment
2021-07-11 10:40:18 +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
Ivan Tham
a0a5bd555b
More responsive key input
...
Use biased select!, don't eagerly process lsp message since we want to
prioritize user input rather than lsp messages, but still limit rendering
for lsp messages.
2021-07-06 10:07:01 +09:00
Nathan Vegdahl
4952d6f801
Fix phantom lines in some CRLF files.
...
Fixes #415 . The issue was that cursor highlighting wasn't extending
to encompass the entire CRLF grapheme, and therefore ended up splitting
it. This presumably was messing up other grapheme rendering as
well, and this fixes that as well.
2021-07-05 20:07:06 +08:00
Blaž Hrastnik
cb4bab8903
Remove outdated comment
2021-07-05 10:12:46 +09:00
Blaž Hrastnik
a4e28c6927
Implement X
as extend selection to line bounds
2021-07-05 10:12:34 +09:00
Ivan Tham
d02bbb7bae
Fix info panic on small terminal
2021-07-05 00:19:56 +09:00
Blaž Hrastnik
ebccc96cd4
Factor out goto t/m/b into a single function again
2021-07-04 18:07:58 +09:00
Blaž Hrastnik
6ce303977c
Revert back to 'gm'
...
top / middle / bottom mnemonic.
2021-07-04 18:02:42 +09:00
Ivan Tham
bbbbfa9bcf
Goto mode use infobox
...
In the meantime, change gm to gc.
Remove extra space in mode title.
2021-07-04 18:01:59 +09:00
Ivan Tham
5977b07e19
Reduce calculation and improve pattern in infobox
...
- switch to use static OnceCell to calculate Info once
- pass Vec<(&[KeyEvent], &str)> rather than Vec<(Vec<KeyEvent>, &str)>
- expr -> tt to allow using | as separator, make it more like match
2021-07-04 18:01:59 +09:00
Ivan Tham
64f83dfcbd
Support infobox doc gen on stable release
2021-07-04 18:01:59 +09:00
Ivan Tham
61e925cbed
Add infobox doc generation and improve ergonomics
2021-07-04 18:01:59 +09:00
Ivan Tham
6710855eac
Fix rendering issues for infobox
2021-07-04 18:01:59 +09:00
Ivan Tham
9effe71b7d
Apply suggestions from blaz for infobox
2021-07-04 18:01:59 +09:00
Ivan Tham
4c190ec9d9
Suggestions for infobox changes
...
Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
2021-07-04 18:01:59 +09:00
Ivan Tham
8985c58fd3
Add infobox
2021-07-04 18:01:59 +09:00
Blaž Hrastnik
83e7dd8602
fix: Temporary fix for #402
2021-07-03 12:30:13 +09:00
Gokul Soumya
c68fe1f2a3
Add object selection (textobjects) ( #385 )
...
* 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
2021-07-03 10:07:49 +09:00
Nathan Vegdahl
28d2d68804
Make horizontal selection movement work properly.
2021-07-02 09:51:29 -07:00
Kirawi
c5b2973739
:reload
(#374 )
...
* reloading functionality
* fn with_newline_eof()
* fmt
* wip
* wip
* wip
* wip
* moved to core, added simd feature for encoding_rs
* wip
* rm
* .gitignore
* wip
* local wip
* wip
* wip
* no features
* wip
* nit
* remove simd
* doc
* clippy
* clippy
* address comments
* add indentation & line ending change
2021-07-02 23:54:50 +09:00
Nathan Vegdahl
22dca3b111
Allow last line in file to lack a line break character.
2021-07-01 23:36:09 -07:00
Nathan Vegdahl
2224a1527e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
2021-07-01 19:37:28 -07:00
Nathan Vegdahl
0b2d51cf5a
Fix unused Result
warnings in helix-term.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
efa3389b6a
Fix unused variable, parameter, and mut
warnings in helix-term.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
702a0491db
Remove #[allow(unused)] from helix-term, and fix unused imports.
...
Lots of other warning still left. Will address in subsequent commits.
2021-07-01 19:06:52 -07:00
Nathan Vegdahl
e725957704
Ensure a minimum selection width on commands that need it.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
7c7be6d583
Make Selection
's normalize and transform methods self-consuming only.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
0ae522f3df
Clean up Selection
to not use so many allocations.
2021-07-01 14:22:28 -07:00
Nathan Vegdahl
d07074740b
Add Range
methods for various kinds of validation.
2021-07-01 14:22:28 -07:00
Blaž Hrastnik
2a92dd8d4d
If completion arrives after we already stopped editing, ignore it
2021-06-30 17:49:42 +09:00
Joe Neeman
b39e452d77
Make set_unmodified an enum.
2021-06-30 17:08:50 +09:00
Joe Neeman
2902a10a3e
Make Document's format API a little nicer.
2021-06-30 17:08:50 +09:00
Joe Neeman
ffa2f2590b
Satisfy clippy.
2021-06-30 17:08:50 +09:00
Joe Neeman
d64d75e724
Add some async job infrastructure.
2021-06-30 17:08:50 +09:00
Joe Neeman
c9be480bf8
Make formatting happen asynchronously.
2021-06-30 17:08:50 +09:00
Blaž Hrastnik
e9159887a9
ui: Use a box drawing character vertical line for splits
2021-06-30 01:01:28 +09:00
PabloMansanet
de8745aea7
Incorporate long word commands into keymap
2021-06-30 00:56:19 +09:00
Blaž Hrastnik
6214d707f3
fix: Don't panic on Enter on an empty document.
...
Refs #386
2021-06-28 17:52:57 +09:00
Blaž Hrastnik
d94410a678
Sort the files in descending order
2021-06-28 13:08:38 +09:00
Blaž Hrastnik
82fc28a0ce
ui: Simplify conditional
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
bcca152ad5
Merge tab & char rendering code
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
01b1a62e2c
This char_index is unused
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
4edfac21f6
Allocate the tab stop only once
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
1b102d5532
Extract the merge "operator" into helix-core
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
ae58d813b2
Appease clippy
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
c832aa5a49
There is no direct dirs-next dependency in term
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
f9cdb2afe2
Turn diagnostics rendering into span injection too
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
90d675fb15
Fix AnyComponent test
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
057bd630d8
Simplify selection rendering by injecting highlight scopes
2021-06-27 23:28:22 +09:00
Blaž Hrastnik
44566ea812
Release 0.3.0
2021-06-27 13:27:47 +09:00
Blaž Hrastnik
cad14c6b46
Address nightly clippy warnings
2021-06-27 13:27:47 +09:00
Nathan Vegdahl
a6cadddef4
Fix silly mistake in previous phantom line bug fix.
...
Fixes #381 . I was trying to change an index value that... wasn't
even an index value.
2021-06-26 14:26:18 +09:00
Nathan Vegdahl
2dba228c76
Fix highlight code splitting graphemes.
...
This resulted in phantom blank lines in files with CRLF line
endings, but could potentially have manifested with other
graphemes as well.
2021-06-26 11:09:50 +09:00
Wojciech Kępka
eb6fb63e74
Sort files in file picker by access, modification and creation date ( #336 )
...
* Sort files in file picker by access date
* Fallback file time to modified then created then UNIX_EPOCH
* Use `sort_by_key`
* Refactor
2021-06-26 11:09:17 +09:00
Blaž Hrastnik
f2d8ce3415
Use a deadline when eagerly processing notifications
2021-06-25 13:22:50 +09:00
Blaž Hrastnik
503ca112ae
fix: jumping to location did not convert the URI correctly
...
thus breaking Windows
2021-06-25 13:20:15 +09:00
Keith Simmons
4418e17547
reverse the dependency between helix-tui and helix-view ( #366 )
...
* reverse the dependency between helix-tui and helix-view by moving a fiew types to view
* fix tests
* clippy and format fixes
Co-authored-by: Keith Simmons <keithsim@microsoft.com>
2021-06-25 12:58:15 +09:00
Ivan Tham
c2b937481f
Fix goto line end
...
Should not goto newline.
2021-06-24 18:34:23 -07:00
Gokul Soumya
18beda38ac
Add … when chars are truncated in picker
2021-06-25 09:28:24 +09:00
Ivan Tham
10548bf0e3
Fix previous broken refactor key into helix-view
...
Need to be used for autoinfo
Revert "Revert "Refactor key into helix-view""
This reverts commit 10f9f72232
.
2021-06-25 00:39:03 +09:00
Kirawi
15ae2e7ef1
Update helix-term/src/commands.rs
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-06-24 22:38:38 +09:00
Kirawi
7ae21b98ce
Update helix-term/src/commands.rs
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
2021-06-24 22:38:38 +09:00
Shafkath Shuhan
629df6124d
Blocking :wq
2021-06-24 22:38:38 +09:00
Nathan Vegdahl
8935e7a879
Fix open-new-line command for CRLF, as well as other bugs.
...
Fixes #363 .
I set out to fix issue #363 , but after fixing it discovered some
other things were wrong with the command while testing. In
summary:
- #363 was because it was still assuming a line ending width
of 1 char in its indexing calculations, even when actually
inserting CRLF.
- Aside from #363 , it actually needed to set `line_end_index`
to zero for *all* calculations that use it when line == 0,
but it was only doing so for a single calculation.
2021-06-24 18:25:56 +09:00
Gokul Soumya
fb8e7dc25b
Fix picker item width overflow
...
Fixes #352
2021-06-24 12:00:08 +09:00
Benoît CORTIER
14f61fb6ac
Fix lsp config deserialization case
...
It should have been in kebab-case, but it was the default snake_case.
2021-06-24 10:04:18 +09:00
Blaž Hrastnik
0f55e67576
fix: ok, needs to be the end of the previous line
2021-06-24 01:35:36 +09:00
Blaž Hrastnik
7366fe81e0
open: Use the correct function
...
Still not correct but at least it doesn't append at EOF
2021-06-24 01:06:17 +09:00
Blaž Hrastnik
4ad7b61c69
fix: Better fix that also fixes crashes on o
2021-06-24 00:58:14 +09:00
Blaž Hrastnik
655c1aeb73
fix: panic on O at the start of the file ( fixes #354 )
2021-06-24 00:50:52 +09:00
Blaž Hrastnik
39dc09e6c4
ui: Paginate prompt completion
2021-06-23 21:55:13 +09:00
wojciechkepka
3606d8bd24
Patch the primary cursor with insert and select styles
2021-06-23 21:55:02 +09:00
wojciechkepka
c534fdefdc
Refactor, add ui.cursor.primary
2021-06-23 21:55:02 +09:00
wojciechkepka
d70be55f70
Add ability to theme primary selecition
2021-06-23 21:55:02 +09:00
wojciechkepka
ac1e98d088
Add ability to theme cursor
2021-06-23 21:55:02 +09:00
Shafkath Shuhan
fd98e743e8
Handle non-UTF8 files
2021-06-23 15:40:27 +09:00
Blaž Hrastnik
9706f1121d
Fix small screen panics
2021-06-23 13:13:56 +09:00
Nathan Vegdahl
848cc1b438
Fix extend_line() behavior.
...
It would always extend to the next line if the cursor was at the
end of the current line, even if the current line wasn't fully
selected yet.
2021-06-23 12:43:09 +09:00
Nathan Vegdahl
481c4ba044
Increment char_index by grapheme char count.
...
It was just assuming single-char graphemes before.
2021-06-23 12:43:09 +09:00
Nathan Vegdahl
38bf9c2576
Missed some items in the CRLF PR.
2021-06-23 12:43:09 +09:00
Blaž Hrastnik
7511110d82
Fix build on master
2021-06-23 10:15:57 +09:00
Joe Neeman
fd1ae35051
Make the prompt callback take a Context.
2021-06-23 10:03:11 +09:00
Lionel Flandrin
16883e7543
Implement show_current_directory command
2021-06-22 19:20:51 -04:00
Lionel Flandrin
b56174d738
Implement change_current_directory command
2021-06-22 19:20:51 -04:00
Blaž Hrastnik
20f33ead67
minor: Remove old TODOs
2021-06-22 23:26:34 +09:00
Gokul Soumya
e0fd08d6df
Rename surround to match_mode
2021-06-22 14:27:51 +09:00
Gokul Soumya
753ed4cbc5
Add documentation for surround
2021-06-22 14:27:51 +09:00
Gokul Soumya
b00e9fc227
Handle line endings correctly in surround
2021-06-22 14:27:51 +09:00
Gokul Soumya
b79b5e66f2
Move match_bracket to mm
2021-06-22 14:27:51 +09:00
Gokul Soumya
13648d28b9
Add surround keybinds
2021-06-22 14:27:51 +09:00
Blaž Hrastnik
2f321b9335
lsp: Eagerly process notifications/server calls to avoid re-rendering
2021-06-22 13:47:57 +09:00
Blaž Hrastnik
a70de6e980
Merge pull request #224 from helix-editor/line_ending_detection
...
Line ending detection
2021-06-22 11:09:19 +09:00
Nathan Vegdahl
a18d50b777
Add command to set the document's default line ending.
2021-06-21 12:36:01 -07:00
Nathan Vegdahl
7c4fa18764
Fix clippy warnings.
2021-06-21 12:02:44 -07:00
Nathan Vegdahl
d33355650f
Convert remaining commands to use the document's line ending setting.
2021-06-21 11:59:03 -07:00
Nathan Vegdahl
e436c30ed7
Make split_selection_on_newline command handle all line endings.
2021-06-21 11:22:07 -07:00
Nathan Vegdahl
23d6188535
Update replace
command to use document line ending setting.
2021-06-21 11:08:05 -07:00
Nathan Vegdahl
07e28802f6
Add function to get the line ending of a str slice.
...
This is needed in some places.
2021-06-21 10:29:29 -07:00
Nathan Vegdahl
714002048c
Don't need getters/setters for line_ending property.
...
It's plain-old-data. If we want to do fancier things later, it's
easy to switch back.
2021-06-21 09:52:21 -07:00
Wojciech Kępka
ee80fa8ea9
Cleanup spinners and messages on progress end
2021-06-21 18:51:04 +09:00
wojciechkepka
aca9d73fe4
Hold Config
in Application
, expect at least one editor view
2021-06-21 12:59:06 +09:00
wojciechkepka
cc357d5096
Add progress spinners to status line
2021-06-21 12:59:06 +09:00
wojciechkepka
b2804b14b1
Add a Spinner
2021-06-21 12:59:06 +09:00
Nathan Vegdahl
e686c3e462
Merge branch 'master' of github.com:helix-editor/helix into line_ending_detection
...
Rebasing was making me manually fix conflicts on every commit, so
merging instead.
2021-06-20 16:09:14 -07:00
Nathan Vegdahl
4efd6713c5
Work on moving code over to LineEnding instead of assuming '\n'.
...
Also some general cleanup and some minor fixes along the way.
2021-06-20 15:33:02 -07:00
Ivan Tham
985625763a
Fix doc warnings
2021-06-20 23:13:36 +08:00
Blaž Hrastnik
eaf259f8aa
Fix build..
2021-06-20 23:40:48 +09:00