| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These special registers join and copy the values to the clipboards with
'*' corresponding to the system clipboard and '+' to the primary as
they are in Vim. This also uses the trick from PR6889 to save the values
in the register and re-use them without joining into one value when
pasting a value which was yanked and not changed.
These registers are not implemented in Kakoune but Kakoune also does
not have a built-in clipboard integration.
Co-authored-by: CcydtN <51289140+CcydtN@users.noreply.github.com>
Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
|
|
|
|
|
|
|
|
|
|
| |
This register also comes from Kakoune. It's read-only and produces the
current document's name, defaulting to the scratch buffer name
constant.
(Also see PR5577.)
Co-authored-by: Ivan Tham <pickfire@riseup.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These come from Kakoune:
* '#' is the selection index register. It's read-only and produces the
selection index numbers, 1-indexed.
* '.' is the selection contents register. It is also read-only and
mirrors the contents of the current selections when read.
We switch the iterators returned from Selection's `fragments` and
`slices` methods to ExactSizeIterators because:
* The selection contents register can simply return the fragments
iterator.
* ExactSizeIterator is already implemented for iterators over Vecs, so
it's essentially free.
* The `len` method can be useful on its own.
|
|
This sets up a new Registers type that will allow us to expand support
for special registers. (See the child commits.)
We start simple with the regular (`Vec<String>`) registers and the
simplest special register, the black hole. In the child commits we
will expand these match arms with more special registers.
The upcoming special registers will need a few things that aren't
possible with the current Registers type in helix-core:
* Access to the `Editor`. This is only necessary when reading from
registers, so the `&Editor` parameter is only added to
`Registers::read`.
* Returning owned values. Registers in helix-core returns references
to the values backed by the `Vec<String>` but future special registers
will need to return owned values. We refactor the return value of the
read operations to give `Cow<str>`s and iterators over those.
* Returning a `Result` for write/push functions. This will be used by
the clipboard special registers.
|