Commit Graph

2202 Commits (1d0f5d7e262f44d7720bf6b07f89458cec43a14b)

Author SHA1 Message Date
SoraTenshi 1d0f5d7e26 Refactor rendering
(+ make it more correct)
11 months ago
Sora a7952e284c
Fix broken offset calculation
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
11 months ago
SoraTenshi 1b3c5fee17 fixup! Create own file for the StickyContext implementation 11 months ago
SoraTenshi 23ebfb542d Create own file for the StickyContext implementation 11 months ago
SoraTenshi 32db110d65 Adjust changes to be in parity with the new @context.params queries 11 months ago
Alexis (Poliorcetics) Bourget 80596f81a2 factorise duplicated call 11 months ago
Alexis (Poliorcetics) Bourget cfc64fa178 Only allocates the end_node vector when first needed 11 months ago
Alexis (Poliorcetics) Bourget 37033b7756 remove the need for cloning the end_nodes vector 11 months ago
Alexis (Poliorcetics) Bourget b0060ee826 replace flat_map+next by find_map 11 months ago
Alexis (Poliorcetics) Bourget c78ab494d6 transform filter_map to for loop equivalent 11 months ago
SoraTenshi 7aa1da2660 Fix some formatting issues 11 months ago
SoraTenshi 3d2aae089f Disable softwrap for text formats when rendering sticky nodes 11 months ago
SoraTenshi f8fb90b487 Rework the sticky @context.end captures, and make them more clear 11 months ago
SoraTenshi af40c5ac7c Make the priorization a bit easier to comprehend 11 months ago
Sora d097bfe57d
Use cloned
Co-authored-by: Poliorcetics <poliorcetics@users.noreply.github.com>
11 months ago
SoraTenshi dd4fa2b227 Use default instead of new 11 months ago
SoraTenshi bd39b50b58 Fix review comments 11 months ago
SoraTenshi f07ca77d26 We do have to ensure uniqueness, so re-add BTreeSet 11 months ago
SoraTenshi 726a4ca323 Use Vec instead of BTreeSet / HashSet
In favour of unstable_sort
11 months ago
SoraTenshi 9f4f0ce8a2 Apply basic suggestions 11 months ago
SoraTenshi 92d2067fe9 Fix an issue with cache where the last node jitter on new frame 11 months ago
SoraTenshi f818a042a7
Merge branch 'master' into sticky-context 12 months ago
Tudyx 9893a1fbcc
Auto indent change if selection is linewise (#7316) 12 months ago
Yomain 8afc0282f2
Fix crash when cwd is deleted (#7185) 12 months ago
Pascal Kuthe 1adb19464f
search buffer contents during global search (#5652) 12 months ago
dependabot[bot] ac57e93583
build(deps): bump smallvec from 1.10.0 to 1.11.0 (#7597)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
12 months ago
Gabriel Hansson c1488267e5
(Updated) Apply motion API refinements (#6078)
* _apply_motion generalization where possible

API encourages users to not forget setting `editor.last_motion` when
applying a motion. But also not setting `last_motion` without applying a
motion first.

* (rename) will_find_char -> find_char

method name makes it sound like it would be returning a boolean.

* use _apply_motion in find_char

Feature that falls out from this is that repetitions of t,T,f,F are
saved with the context extention/move and count. (Not defaulting to extend
by 1 count).

* Finalize apply_motion API

last_motion is now a private field and can only be set by calling
Editor.apply_motion(). Removing need (and possibility) of writing:

`motion(editor); editor.last_motion = motion`

Now it's just: `editor.apply_motion(motion)`

* editor.last_message: rm Box wrap around Arc

* Use pre-existing `Direction` rather than custom `SearchDirection`.

* `LastMotion` type alias for `Option<Arc<dyn Fn(&mut Editor)>>`

* Take motion rather than cloning it.

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>

* last_motion as Option<Motion>.

* Use `Box` over `Arc` for `last_motion`.

---------

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
12 months ago
Alex Vinyals 28452e1f2a
Initialize log and config files right after parsing arguments (#7585) 12 months ago
Ryan Fowler 828c7432e3
Implement the wa! command (#7577) 12 months ago
Alex Vinyals 1698992de6
Fix `:log-open` when `--log` is specified (#7573) 12 months ago
Alberto Romero 507dd50860
Add filename completer for shell prompt (#7569) 1 year ago
Pascal Kuthe 618620b369
use redraw handle for debouncing LSP messages (#7538) 1 year ago
dependabot[bot] 83e59197ac
build(deps): bump indoc from 2.0.1 to 2.0.2 (#7529)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 year ago
Michael Davis 4fab60030f
LSP: Use negotiated position encoding for workspace edits (#7469)
Previously this was hard-coded to UTF-8 but we might have negotiated
another position encoding.
1 year ago
Michael Davis d3f8e0592b
LSP: Discard publishDiagnostic from uninitialized servers (#7467)
The spec explicitly disallows publishDiagnostic to be sent before
the initialize response:

> ... the server is not allowed to send any requests or notifications to
> the client until it has responded with an InitializeResult ...

(https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#initialize)

But if a non-compliant server sends this we currently panic because we
'.expect()' the server capabilities to be known to fetch the position
encoding. Instead of panicking we can discard the notification and log
the non-compliant behavior.
1 year ago
dependabot[bot] d8f9b901dd
build(deps): bump libc from 0.2.146 to 0.2.147 (#7463)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.146 to 0.2.147.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.146...0.2.147)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 year ago
Pascal Kuthe a0359f7f22 make TS matching fallback to plaintext 1 year ago
Michael Davis 9690e0b733
Fix Component implementations for Picker (#7382) 1 year ago
Gokul Soumya f18acadbd0
Completely remove old Picker and rename FilePicker to Picker 1 year ago
Michael Davis 545acfda88
Make file preview callback optional
When Picker and FilePicker are merged, not all Pickers will be able to
show a preview.

Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
1 year ago
Gokul Soumya fc111213b5
Move FilePicker struct def closer to impl block 1 year ago
Gokul Soumya 15cc09fc81
Render the preview in FilePicker 1 year ago
Gokul Soumya 34c8f9ab73
Move Picker::render into FilePicker::render 1 year ago
Gokul Soumya 49fbf8df53
Move Component methods except render() to FilePicker 1 year ago
Gokul Soumya 1e66e9198c
Move handle_event methods from Picker to FilePicker 1 year ago
Gokul Soumya 8516f43837
Move navigation methods from Picker to FilePicker 1 year ago
Gokul Soumya 7a058c7361
Move scoring functions from Picker to FilePicker 1 year ago
Gokul Soumya 104036bd7f
Copy struct fields and new() from Picker to FilePicker 1 year ago
Gokul Soumya 40916dff63
Move FilePicker::render from Component impl to normal impl
Merges the code for the Picker and FilePicker into a single Picker that
can show a file preview if a preview callback is provided. This change
was mainly made to facilitate refactoring out a simple skeleton of a
picker that does not do any filtering to be reused in a normal Picker
and a DynamicPicker (see #5714; in particular [mikes-comment] and
[gokuls-comment]).

The crux of the issue is that a picker maintains a list of predefined
options (eg. list of files in the directory) and (re-)filters them every
time the picker prompt changes, while a dynamic picker (eg. interactive
global search, #4687) recalculates the full list of options on every
prompt change. Using a filtering picker to drive a dynamic picker hence
does duplicate work of filtering thousands of matches for no reason. It
could also cause problems like interfering with the regex pattern in the
global search.

I tried to directly extract a PickerBase to be reused in Picker and
FilePicker and DynamicPicker, but the problem is that DynamicPicker is
actually a DynamicFilePicker (i.e. it can preview file contents) which
means we would need PickerBase, Picker, FilePicker, DynamicPicker and
DynamicFilePicker and then another way of sharing the previewing code
between a FilePicker and a DynamicFilePicker. By merging Picker and
FilePicker into Picker, we only need PickerBase, Picker and
DynamicPicker.

[gokuls-comment]: https://github.com/helix-editor/helix/issues/5714#issuecomment-1410949578
[mikes-comment]: https://github.com/helix-editor/helix/issues/5714#issuecomment-1407451963
1 year ago
spectre256 d8b7232a47
Add yank_joined command (#7195)
Resolves issue #6888 by adding a command to join all selections and yank
them to the specified register. The typed command takes an argument as
the separator to use when joining the selections.
1 year ago