Nathan Vegdahl
f62ec6e51e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Nathan Vegdahl
5ee6ba5b38
Address some PR comments.
3 years ago
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
3 years ago
Nathan Vegdahl
01247acf0c
Start searches at the right side of the block cursor.
3 years ago
Nathan Vegdahl
0883b4fae0
Collect some common patterns into methods on `Range`.
3 years ago
gbaranski
a630fb5d20
fix: change primary cursor color in bogster theme
3 years ago
Ivan Tham
f7c8500797
Fix append newline indent
...
Fix #492
3 years ago
Blaž Hrastnik
63e54e30a7
Implement in-memory prompt history
...
Implementation is similar to kakoune: we store the entries into
a register.
3 years ago
Blaž Hrastnik
29cefa1be8
rust: Indent multi line call expressions one level deeper
3 years ago
Blaž Hrastnik
f24007b30f
Improve rust indentation queries
...
if/if let are already handled by block, and keeping these scopes would
indent else blocks one level too far.
3 years ago
Omnikar
112ae5cffe
Determine whether to use a margin of 0 or 1 when uncommenting ( #476 )
...
* Implement `margin` calculation for uncommenting
* Move `margin` calculation to `find_line_comment`
* Fix comment bug with multiple selections on a line
* Fix `find_line_comment` test for new return type
* Generate a single vec of lines for comment toggle
`toggle_line_comments` collects the lines covered by all selections into
a `Vec`, skipping duplicates. `find_line_comment` now returns the lines
to operate on, instead of returning the lines to skip.
* Fix test for `find_line_comment`
* Reserve length of `to_change` instead of `lines`
The length of `lines` includes blank lines which will be skipped, and as
such do not need space for a change reserved for them. `to_change`
includes only the lines which will be changed.
* Use `token.chars().count()` for token char length
* Create `changes` with capacity instead of reserving
* Remove unnecessary clones in `test_find_line_comment`
* Add test case for 0 margin comments
* Add comments explaining `find_line_comment`
3 years ago
Gokul Soumya
e07e42dcfb
fix(term): undo-ing code actions
3 years ago
gbaranski
8da58fe44a
fix(term): use existing implementation of edits_to_transaction
3 years ago
Yusuf Bera Ertan
41f62c3157
build(nix): fix build issues
3 years ago
Nathan Vegdahl
f96b8b769b
Switch to a cleaner range-head moving abstraction.
...
Also fix a bunch of bugs related to it.
3 years ago
Gokul Soumya
6a8a01df6b
Add missing keybinds to docs
3 years ago
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>
3 years ago
Nathan Vegdahl
20723495d3
Fixed find_till_char and find_char commands.
...
They worked correctly when extending, but not for normal cursor
movement.
3 years ago
Nathan Vegdahl
8f43dc4039
Fix surround replace command replacing the wrong position on the right.
3 years ago
Nathan Vegdahl
43594049dd
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Nathan Vegdahl
427ae6ac6c
Put selection in separate variable in commands code.
3 years ago
Nathan Vegdahl
ad814b8c2e
Fix append mode, and make insertion always happen at head of range.
3 years ago
Ivan Tham
bda4f5c1cd
Simplify replace dashes with underscore
3 years ago
Blaž Hrastnik
1789dfabfe
fix: ui/menu: Don't allow scrolling past the end of completion
...
Fixes #472
3 years ago
Blaž Hrastnik
e5d438705b
Add rustfmt.toml to force formatting to use rustfmt defaults
...
Closes #480
3 years ago
Blaž Hrastnik
817a7e0bd6
fix: Only try expanding directory completion if it makes sense
...
Fixes #487
3 years ago
Blaž Hrastnik
58d08d36ae
Simplify ui/menu.rs
3 years ago
Nathan Vegdahl
ffb8057a7f
Fix ocassional panic when matching brackets.
3 years ago
Shafkath Shuhan
25103833b2
mark reloaded buffers as unchanged
3 years ago
Nathan Vegdahl
fd684ef693
Revert display-width-based vertical cursor movement.
...
Still needs to be done, but should be part of a separate PR.
3 years ago
Nathan Vegdahl
5841954f58
Calculate the line that the range head is on correctly.
3 years ago
Nathan Vegdahl
673338bdb6
Use `Range::line_range()` in some more places I missed.
3 years ago
fossdd
d4bd5b3766
The item `fmt` was imported redundantly
...
Fixed warning:
```
warning: the item `fmt` is imported redundantly
--> helix-core/src/syntax.rs:98:9
|
16 | fmt,
| --- the item `fmt` is already imported here
...
98 | use std::fmt;
| ^^^^^^^^
|
```
3 years ago
Ivan Tham
eba0bbda2e
Resume last picker
...
Inspired by space ' in doom emacs.
3 years ago
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.
3 years ago
Nathan Vegdahl
063aa9452d
Fix yank not working with internally zero-width ranges.
3 years ago
Nathan Vegdahl
bc85c85501
Fix selections not being modified quite correctly with text edits.
3 years ago
Kirawi
df0ed80931
Update dark_plus.toml
...
Corrects primary selection color and makes matching cursor easier to spot.
3 years ago
Nathan Vegdahl
198fe40951
Don't insert a final line ending on file load/reload.
3 years ago
Nathan Vegdahl
c848ed7abc
Fixes for misc bugs with view movement.
3 years ago
Nathan Vegdahl
d5534a6d10
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Nathan Vegdahl
1194fc842a
Use new `Range::line_range()` method in more places, as appropriate.
3 years ago
Nathan Vegdahl
c9300ec35f
Fix comment toggle command also sometimes toggling the next line.
3 years ago
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.
3 years ago
Nathan Vegdahl
e8a3980e46
Fix line-wise `p` pasting before the current line instead of after.
3 years ago
Nathan Vegdahl
1910fa7723
Fix incorrect line hihglight when a selection is at the end of a line.
3 years ago
Ivan Tham
17f9dfce7e
Fix typo
3 years ago
Luctius
585d6f8242
Fixes toggle_comment not finding the correct language comment token
3 years ago
dependabot[bot]
d754c72b4d
Bump tokio from 1.8.1 to 1.8.2
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.8.1...tokio-1.8.2 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
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.
3 years ago