Commit Graph

484 Commits (d8b5d1181f3d735023508369d519e707eb7464a1)

Author SHA1 Message Date
Wojciech Kępka d8b5d1181f Add `Copy` derive to `PromptEvent` 4 years ago
Wojciech Kępka b500a2a138 commands: Add more write commands 4 years ago
Yusuf Bera Ertan a3f01503e2 build(nix): use nix-cargo-integration, make shell.nix use flake devshell 4 years ago
Ivan Tham 9640ed1425 Add clarification to last buffer 4 years ago
Robin 9baf1ecc90
add symbol picker (#230)
* add symbol picker

use the lsp document_symbol request

* fix errors from merging in master

* add docs for symbol picker
4 years ago
Robin 44cc0d8eb0
add alternate file (#223)
* add alternate file

inspired by vim ctrl-6/kak ga commands. the alternate file is kept per view

* apply feedback from #223

* rename to last_accessed

* add ga doc

* add fail message for ga
4 years ago
Ivan Tham 1953588873 Change picker horizontal split to h
Follow window mode and vim behavior, x seemed weird.
4 years ago
Wojciech Kępka c754df12b3
lsp: Check bounds when converting lsp positions (#204)
* lsp: Make position conversion funcs return `Option`

* Add tests

* Fixes

* Revert pos_to_lsp_pos to panic
4 years ago
Blaž Hrastnik 278361a086 Only auto-format for certain languages
Fixes #53
Fixes #207
4 years ago
Jakub Bartodziej 69fe46a122
Add :earlier and :later commands that can be used to navigate the full edit history. (#194)
* Disable deleting from an empty buffer which can cause a crash.

* Improve on the fix for deleting from the end of the buffer.

* Clean up leftover log.

* Avoid theoretical underflow.

* Implement :before which accepts a time interval and moves the editor to
the closest history state to the commit of the current time minus that
interval. Current time is now by default, or the commit time if :before
has just been used.

* Add :earlier an :later commands that can move through
the edit history and retrieve changes hidded by undoing
and commiting new changes. The commands accept a number
of steps or a time period relative to the currrent change.

* Fix clippy lint error.

* Remove the dependency on parse_duration, add a custom parser instead.

* Fix clippy errors.

* Make helix_core::history a public module.

* Use the helper for getting the current document and view.

* Handled some PR comments.

* Fix the logic in :later n.

Co-authored-by: Ivan Tham <pickfire@riseup.net>

* Add an alias for :earlier.

Co-authored-by: Ivan Tham <pickfire@riseup.net>

* Add an alias for later.

Co-authored-by: Ivan Tham <pickfire@riseup.net>

* Run cargo fmt.

* Add some tests for earlier and later.

* Add more tests and restore the fix for later that diappeared somehow.

* Use ? instead of a match on an option.

Co-authored-by: Ivan Tham <pickfire@riseup.net>

* Rename to UndoKind.

* Remove the leftover match.

* Handle a bunch of review comments.

* More systemd.time compliant time units and additional description for the new commands.

* A more concise rewrite of the time span parser using ideas from PR discussion.

* Replace a match with map_err().

Co-authored-by: Ivan Tham <pickfire@riseup.net>

Co-authored-by: Jakub Bartodziej <jqb@google.com>
Co-authored-by: Ivan Tham <pickfire@riseup.net>
4 years ago
PabloMansanet 86af55c379
Movement fixes, refactor and unit test suite (#217)
* Add convenience/clarity wrapper for Range initialization

* Test horizontal moves

* Add column jumping tests

* Add failing movement conditions for multi-word moves

* Refactor skip_over_next

* Add complex forward movement unit tests

* Add strict whitespace checks and edge case tests

* Restore formatting

* Remove unused function

* Add empty test case for deletion and fix nth_prev_word_boundary

* Add tests for backward motion

* Refactor word movement

* Address review comments and finish refactoring backwards move

* Finish unit test suite

* Fmt pass

* Fix lint erors

* Clean up diff restoring bad 'cargo fmt' actions

* Simplify movement closures (thanks Pickfire)

* Fmt pass

* Replace index-based movement with iterator based movement, ensuring that each move incurs a single call to the RopeSlice API

* Break down tuple function

* Extract common logic to all movement functions

* Split iterator helpers away into their own module

* WIP reducing clones

* Operate on spans

* WIP simplifying iterators

* Simplify motion helpers

* Fix iterator

* Fix all unit tests

* Refactor and simplify

* Simplify fold
4 years ago
Wojciech Kępka 0c2b99327a commands: Handle `t<ENTER>` as till newline 4 years ago
Wojciech Kępka 098806ce2a
lsp: Display LSP progress messages (#216) 4 years ago
Robin van Dijk c0d32707d0 move to first nonwhitespace on shift-i
This matches the behaviour in vim and kak
4 years ago
Ivan Tham 7cc13fefe9 Derive debug without feature
Note that this also removed those `finish_non_exhaustive()`.
4 years ago
notoria 1a3a924634 Implement Debug for data structure as a feature 4 years ago
Ivan Tham 6b3c9d8ed3 Fix jump behavior, goto_implementation now jump
Better jump behavior since we override the first jump if it's on the
first document. At the same time, ctrl-i is now working with gd jumps.
4 years ago
wojciechkepka 4dbc23ff1c Fix documentation popup panic 4 years ago
Kevin Sjöberg b20e4a108c Only enforce limit outside of .git 4 years ago
Kevin Sjöberg 1bb9977faf Match keybindings of menu 4 years ago
Kevin Sjöberg 29962a5bd9 Fix Shift-Tab for moving upwards in menu 4 years ago
Blaž Hrastnik 83723957fe Fix crash when too many completions available
Refs #81
4 years ago
Zheming Li ae51065213 Support go to line 1 4 years ago
Wojciech Kępka 4e3a343602 Make `r<ENTER>` work 4 years ago
Wojciech Kępka 81e02e1ba4 Remove unwanted `as_str` 4 years ago
Wojciech Kępka c349ceb61f Don't replace newlines 4 years ago
Wojciech Kępka 2e4a338944 Add bounds checks to replace 4 years ago
Wojciech Kępka 9c83a98469 commands: Replace all characters in selection 4 years ago
Wojciech Kępka 1bffb34350 Make matching bracket dimmed, prevent out of bounds rendering 4 years ago
Wojciech Kępka c978d811d9 Cleanup find_first_non_whitespace_char funcs 4 years ago
Wojciech Kępka 48df05b16d commands: Add goto first non-whitespace char of line 4 years ago
Kirawi b873fb9897
Fix Unicode (#135)
* init

* wip

* wip

* fix unicode break

* fix unicode break

* Update helix-core/src/transaction.rs

Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>

* clippy

* fix

* add changes

* added test

* wip

* wip

* wip

* wip

* fix

* fix view

* fix #88

Co-authored-by: Benoît Cortier <benoit.cortier@fried-world.eu>
4 years ago
Kevin Sjöberg 08f50310bd Bump file picker limit 4 years ago
Wojciech Kępka 4bec87ad18 Update keymap 4 years ago
Wojciech Kępka c65b4dea09 commands: Add replace with yanked as `R` 4 years ago
Wojciech Kępka 6fc0e0b5fb completion: Fix unimplemented autocomplete 4 years ago
Blaž Hrastnik 0201ef9205 ui: completion: Use the correct type_name
Fixes #166
4 years ago
Wojciech Kępka 037f45f24e Create all parent directories for config and cache 4 years ago
Blaž Hrastnik 9821beb5c4 Make gh/gl extend selection in select mode 4 years ago
Blaž Hrastnik 3cee0bf200 Address clippy lint 4 years ago
Blaž Hrastnik 4fd38f82a3 Disable failing doctest 4 years ago
Ivan Tham b5682f984b Separate helix-term as a library
helix-term stuff will now be documented in rustdoc.
4 years ago
Benoît CORTIER 68affa3c59 Implement register selection
User can select register to yank into with the " command.
A new state is added to `Editor` and `commands::Context` structs.
This state is managed by leveraging a new struct `RegisterSelection`.
4 years ago
Blaž Hrastnik 8d6fad4cac lsp: Provide workspace root on client.initialize() 4 years ago
Blaž Hrastnik 14830e75ff Revert the line number rendering change, we were correct before 4 years ago
Blaž Hrastnik f48a60b8e2 Release 0.0.10 4 years ago
Blaž Hrastnik 4f561e93b8 View mode: Use saturating_sub when calculating first_col 4 years ago
Blaž Hrastnik 01b1bd15a1 commands: use chars().count() over .len() on strings 4 years ago
ahkrr e2d780f993 fix: 2 panics while setting style + off by 1
The panics would occur because set_style 
would draw outside of the the surface. 
Both occured using `find_prev` or `till_prev`
In my case the first panic! would appear
in a terminal with around 80 columns 
in helix/README.md going to the end of the file
with `geglf(`
the second with `geglfX`
The off by one fix ensures that `find_nth_prev` 
starts at the first character to the left
4 years ago
Ethan Bodzioney 843c2cdebd
Install instructions and version number corrections (#148)
* Add MacOS install instructions

* Change version name argument

When using the -V command to get the version you are given 'helix-term x.x.x', I changed this to just helix as it makes more sense.

* Fixed version number

* Fixed version number

* Fixed version number

* Fixed version number

* Fixed version number

* Fixed version number
4 years ago