Commit Graph

666 Commits (a4b077e9b901f19583ad04282ac502f99599f2cc)

Author SHA1 Message Date
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.
3 years ago
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
3 years ago
Blaž Hrastnik f2d8ce3415 Use a deadline when eagerly processing notifications 3 years ago
Blaž Hrastnik 503ca112ae fix: jumping to location did not convert the URI correctly
thus breaking Windows
3 years ago
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>
3 years ago
Ivan Tham c2b937481f Fix goto line end
Should not goto newline.
3 years ago
Gokul Soumya 18beda38ac Add … when chars are truncated in picker 3 years ago
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.
3 years ago
Kirawi 15ae2e7ef1 Update helix-term/src/commands.rs
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Kirawi 7ae21b98ce Update helix-term/src/commands.rs
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Shafkath Shuhan 629df6124d Blocking :wq 3 years ago
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.
3 years ago
Gokul Soumya fb8e7dc25b Fix picker item width overflow
Fixes #352
3 years ago
Benoît CORTIER 14f61fb6ac Fix lsp config deserialization case
It should have been in kebab-case, but it was the default snake_case.
3 years ago
Blaž Hrastnik 0f55e67576 fix: ok, needs to be the end of the previous line 3 years ago
Blaž Hrastnik 7366fe81e0 open: Use the correct function
Still not correct but at least it doesn't append at EOF
3 years ago
Blaž Hrastnik 4ad7b61c69 fix: Better fix that also fixes crashes on `o` 3 years ago
Blaž Hrastnik 655c1aeb73 fix: panic on O at the start of the file (fixes #354) 3 years ago
Blaž Hrastnik 39dc09e6c4 ui: Paginate prompt completion 3 years ago
wojciechkepka 3606d8bd24 Patch the primary cursor with insert and select styles 3 years ago
wojciechkepka c534fdefdc Refactor, add `ui.cursor.primary` 3 years ago
wojciechkepka d70be55f70 Add ability to theme primary selecition 3 years ago
wojciechkepka ac1e98d088 Add ability to theme cursor 3 years ago
Shafkath Shuhan fd98e743e8 Handle non-UTF8 files 3 years ago
Blaž Hrastnik 9706f1121d Fix small screen panics 3 years ago
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.
3 years ago
Nathan Vegdahl 481c4ba044 Increment char_index by grapheme char count.
It was just assuming single-char graphemes before.
3 years ago
Nathan Vegdahl 38bf9c2576 Missed some items in the CRLF PR. 3 years ago
Blaž Hrastnik 7511110d82 Fix build on master 3 years ago
Joe Neeman fd1ae35051 Make the prompt callback take a Context. 3 years ago
Lionel Flandrin 16883e7543 Implement show_current_directory command 3 years ago
Lionel Flandrin b56174d738 Implement change_current_directory command 3 years ago
Blaž Hrastnik 20f33ead67 minor: Remove old TODOs 3 years ago
Gokul Soumya e0fd08d6df Rename surround to match_mode 3 years ago
Gokul Soumya 753ed4cbc5 Add documentation for surround 3 years ago
Gokul Soumya b00e9fc227 Handle line endings correctly in surround 3 years ago
Gokul Soumya b79b5e66f2 Move match_bracket to mm 3 years ago
Gokul Soumya 13648d28b9 Add surround keybinds 3 years ago
Blaž Hrastnik 2f321b9335 lsp: Eagerly process notifications/server calls to avoid re-rendering 3 years ago
Blaž Hrastnik a70de6e980
Merge pull request #224 from helix-editor/line_ending_detection
Line ending detection
3 years ago
Nathan Vegdahl a18d50b777 Add command to set the document's default line ending. 3 years ago
Nathan Vegdahl 7c4fa18764 Fix clippy warnings. 3 years ago
Nathan Vegdahl d33355650f Convert remaining commands to use the document's line ending setting. 3 years ago
Nathan Vegdahl e436c30ed7 Make split_selection_on_newline command handle all line endings. 3 years ago
Nathan Vegdahl 23d6188535 Update `replace` command to use document line ending setting. 3 years ago
Nathan Vegdahl 07e28802f6 Add function to get the line ending of a str slice.
This is needed in some places.
3 years ago
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.
3 years ago
Wojciech Kępka ee80fa8ea9 Cleanup spinners and messages on progress end 3 years ago
wojciechkepka aca9d73fe4 Hold `Config` in `Application`, expect at least one editor view 3 years ago
wojciechkepka cc357d5096 Add progress spinners to status line 3 years ago
wojciechkepka b2804b14b1 Add a `Spinner` 3 years ago
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.
3 years ago
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.
3 years ago
Ivan Tham 985625763a Fix doc warnings 3 years ago
Blaž Hrastnik eaf259f8aa Fix build.. 3 years ago
Blaž Hrastnik f41688d960 Merge `x` and `X` 3 years ago
Benoît CORTIER f50261c944 Add mappable commands for system clipboard
System clipboard integration exists now in two favors: typable and
mappable.

Default mappings are:
- SPC p: paste clipboard after
- SPC P: paste clipboard before
- SPC y: join and yank selection to clipboard
- SPC Y: yank main selection to clipboard
- SPC R: replace selections by clipboard contents
3 years ago
Benoît CORTIER a2b8cfca34 Add system clipboard yank and paste commands
This commit adds six new commands to interact with system clipboard:
- clipboard-yank
- clipboard-yank-join
- clipboard-paste-after
- clipboard-paste-before
- clipboard-paste-replace
- show-clipboard-provider

System clipboard provider is detected by checking a few environment
variables and executables. Currently only built-in detection is
supported.

`clipboard-yank` will only yank the "main" selection, which is currently the first
one. This will need to be revisited later.

Closes https://github.com/helix-editor/helix/issues/76
3 years ago
wojciechkepka fc39a6c40d Add comment, statusline + commandline = 2 3 years ago
wojciechkepka 0882712b45 Use full screen size 3 years ago
wojciechkepka 980e602352 Make completion window move to top when cursor is below half 3 years ago
Nathan Vegdahl 5d22e3c4e5 Misc fixes and clean up of line ending detect code. 3 years ago
Blaž Hrastnik 34ebe82654 ui: prompt: Add more keymappings 3 years ago
Blaž Hrastnik e9a3245aae Re-export unicode crates from helix_core 3 years ago
Blaž Hrastnik 9275021497 ui: prompt: Better unicode support
We copied over eval_movement from wezterm, that already solves most of
our problems. self.cursor is now byte-based.
3 years ago
wojciechkepka 59c59deb46 Add missing `theme` to toml config 3 years ago
Jan Hrastnik 8634e04a31 added the line_end helper function 3 years ago
Jan Hrastnik 701eb0dd68 changed some hardcoded newlines, removed a else if in line_ending.rs 3 years ago
wojciechkepka 2d629a880c Fix overflow 3 years ago
Blaž Hrastnik 28d9673a8e Fix compilation 3 years ago
wojciechkepka 42e13bd542 Add `:theme <name>` command 3 years ago
wojciechkepka b1a41c4cc8 Add `theme` to global configuration 3 years ago
wojciechkepka a2db161d5a Add theme completer 3 years ago
wojciechkepka ce97a2f05f Add ability to change theme on editor 3 years ago
Blaž Hrastnik 10f9f72232 Revert "Refactor key into helix-view"
Did not use defaults when custom keymap was used

This reverts commit ca806d4f85.
3 years ago
wojciechkepka 11f20af25f Make `home` and `end` work in insert mode 3 years ago
Jan Hrastnik 1e80fbb602 fix merge issue 3 years ago
Jan Hrastnik cdd9347457 Merge remote-tracking branch 'origin/master' into line_ending_detection 3 years ago
Jan Hrastnik 97323dc2f9 ran cargo fmt 3 years ago
Jan Hrastnik ecb884db98 added get_line_ending from pr comment 3 years ago
Ivan Tham ca806d4f85 Refactor key into helix-view
Now also make use of Deserialize for Config.
3 years ago
wojciechkepka 1c25852021 Make arrow keys and page up/down work in insert mode 3 years ago
wojciechkepka c5a2fd5da3 Add `close_language_servers` method on `Editor` 3 years ago
wojciechkepka c2aad859b1 Handle language server shutdown with timeout 3 years ago
Benoît CORTIER 03d1ca7b0a cargo: add more metadata to manifests 3 years ago
Benoît CORTIER db5bdf4f2d Run cargo-diet
cargo-diet is a helper for computing the optimal `include` directives
for Cargo.toml manifests.
https://github.com/the-lean-crate/cargo-diet
3 years ago
Benoît CORTIER b48054f3ee cargo: add version to local dependencies
First step towards enabling us to publish on crates.io.

See: https://github.com/helix-editor/helix/issues/42
3 years ago
wojciechkepka 1c1474c3b8 Add `ui.statusline.inactive`, use `ui.statusline` for statusline text 3 years ago
Wojciech Kępka 1bb3b778ad
Don't derive `Default` for `GlobalConfig` (#297)
We shouldn't derive Default because `lsp_progress` by default should be turned on (opt out).
4 years ago
Gokul Soumya b1cb98283d Fix indent regression issue with o, O
Indents were no longer respected with `o` and `O`. Using counts resulted
in multiple cursors in the same line instead of cursors on each line.

Introduced by 47d2e3ae
4 years ago
wojciechkepka a3cb79ebaa Use kebab-case for config 4 years ago
wojciechkepka bbefc1db63 Add an option to disable display of progress in status bar 4 years ago
wojciechkepka 612511dc98 Handle workDoneProgress/create request 4 years ago
wojciechkepka e1109a5a01 Update handling of progress notification 4 years ago
wojciechkepka 38cb934d8f Add unique id to each lsp client/server pair 4 years ago
wojciechkepka a6d39585d8 Add `work_done_token` as parameter to lsp methods 4 years ago
Wojciech Kępka 41b07486ad
Fix expansion of `~` (#284)
* Fix expansion of `~`, dont use directory relative to cwd.

* Add `expand_tilde`

* Bring back `canonicalize_path`, use `expand_tilde` to `normalize`

* Make `:open ~` completion work

* Fix clippy

* Fold home dir into tilde in Document `realitve_path`
4 years ago
Benoît CORTIER 42142cf680 Fix panic when entering unicode in command prompt
It was attempted to use `String::insert` and `String::remove` to insert
without taking care of unicodes.

Fixes https://github.com/helix-editor/helix/issues/282
4 years ago
Benoît CORTIER 8664d70e73 Replace `Editor::current` by a macro
This is necessary to workaround ownership issues across function calls.
The issue notably arised when implementing the registers into `Editor`
and I was getting annoyed again when implementing copy/pasting into
system clipboard.
The problem is addressed by using macro calls instead of function calls.
There is no notable side effect.
4 years ago
Jan Hrastnik 8bccd6df30 applied changes from pr review 4 years ago