* feat: improve information on the amount of files loaded
* refactor: naming consitency Doc and not Buf
* fix: correct name of method
* chore: appease clippy
* feat: more human error information when Helix cannot start
* refatcor: use if guard on match arm
Terminals which support the enhanced keyboard protocol send events for
keys pressed with the Super modifier (Windows/Linux key or the Command
key). The only changes that are needed to support this in Helix are:
* Mapping the modifier from crossterm's KeyModifiers to Helix's
KeyModifiers.
* Representing and parsing the modifier from the KeyEvent text
representation.
* Documenting the ability to remap it.
When writing keybindings, use 'Meta-', 'Cmd-' or 'Win-' which are all
synonymous. For example:
[keys.normal]
Cmd-s = ":write"
will trigger for the Windows or Linux keys and the Command key plus 's'.
This should make it easier to figure out why the theme-check CI job
fails. Previously the message didn't include the failing key so you
were left searching or guessing where the error occurred.
This fixes reading from the clipboard when using the termcode provider.
Reading isn't implemented for the termcode provider so `get_contents`
returns `ClipboardError::ReadingNotSupported`. `read_from_clipboard`
needs to recognize this case and use the saved values instead of
emitting an error log and returning nothing.
Follow-up of #10839
Also see #12142
The configuration here is not super intuitive - in order to yank from
a clipboard provider we want it to paste the clipboard and in order to
paste to the clipboard we want it to yank the contents we pass.
This swaps the programs for yank and paste to align with that.
Ref #10839
* Add: xtask to check themes for validation warnings
* Update: tidied up runtime paths
* Update: test build workflow
* Update: address clippy lints
* Revert: only trigger workflow on push to master branch
* Add: Theme::from_keys factory method to construct theme from Toml keys
* Update: returning validation failures in Loader.load method
* Update: commented out invalid keys from affected themes
* Update: correct invalid keys so that valid styles still applied
* Update: include default and base16_default themes in check
* Update: renamed validation_failures to load_errors
* Update: introduce load_with_warnings helper function and centralise logging of theme warnings
* Update: use consistent naming throughout
* Handle window/showMessage and display it bellow status line
* Enable `editor.lsp.display_messages` by default
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
We clone this type very often in LSP pickers, for example diagnostics
and symbols. We can use a single Arc in many cases to avoid the
unnecessary clones.
Closes#11351
Also fixed some minor issues related to log
message contents, and removed unnecessary use
of `.as_mut()` as per code review comments on
the PR.
* don't use backup files with hardlinks
* check if the inodes remain the same in the test
* move funcs to faccess and use AsRawHandle
* use a copy as a backup for hardlinks
* delete backup after copy
In the case of network file systems, if the server time is ahead
of the local system time, then helix could annoy with messages
that the file has already been modified by another application.
These changes are ported from
<https://redirect.github.com/helix-editor/helix/pull/9801>. It's a
cleanup of `Document::apply_impl` that uses some early returns to
reduce nesting and some reordering of the steps. The early returns
bail out of `apply_impl` early if the transaction fails to apply or
if the changes are empty (in which case we emit the SelectionDidChange
event). It's a somewhat cosmetic refactor that makes the function easier
to reason about but it also makes it harder to introduce bugs by mapping
positions through empty changesets for example.
Co-authored-by: Pascal Kuthe <pascalkuthe@pm.me>
* replicate t-monaghan's changes
* remove View.offset in favour of Document.view_data.view_position
* improve access patterns for Document.view_data
* better borrow checker wrangling with doc_mut!()
* reintroduce ensure_cursor_in_view in handle_config_events
since we sorted out the borrow checker issues using partial borrows,
there's nothing stopping us from going back to the simpler implementation
* introduce helper functions on Document .view_offset, set_view_offset
* fix rebase breakage
This commit brings the text decoration API inline with the
LineAnnotation API (so they are consistent) resulting in a single
streamlined API instead of multiple ADHOK callbacks.