aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src
Commit message (Collapse)AuthorAge
* Use `match` for branching on the `Direction` enum in more places.Nathan Vegdahl2021-07-27
|
* Add unit tests for some of the new `Range` methods.Nathan Vegdahl2021-07-27
|
* Improve `Range` documentation and organization.Nathan Vegdahl2021-07-27
|
* Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-26
|\
| * Fix append newline indentIvan Tham2021-07-26
| | | | | | | | Fix #492
| * Implement in-memory prompt historyBlaž Hrastnik2021-07-26
| | | | | | | | | | Implementation is similar to kakoune: we store the entries into a register.
| * Determine whether to use a margin of 0 or 1 when uncommenting (#476)Omnikar2021-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement `margin` calculation for uncommenting * Move `margin` calculation to `find_line_comment` * Fix comment bug with multiple selections on a line * Fix `find_line_comment` test for new return type * Generate a single vec of lines for comment toggle `toggle_line_comments` collects the lines covered by all selections into a `Vec`, skipping duplicates. `find_line_comment` now returns the lines to operate on, instead of returning the lines to skip. * Fix test for `find_line_comment` * Reserve length of `to_change` instead of `lines` The length of `lines` includes blank lines which will be skipped, and as such do not need space for a change reserved for them. `to_change` includes only the lines which will be changed. * Use `token.chars().count()` for token char length * Create `changes` with capacity instead of reserving * Remove unnecessary clones in `test_find_line_comment` * Add test case for 0 margin comments * Add comments explaining `find_line_comment`
* | Address some PR comments.Nathan Vegdahl2021-07-26
| |
* | Collect some common patterns into methods on `Range`.Nathan Vegdahl2021-07-26
| |
* | Switch to a cleaner range-head moving abstraction.Nathan Vegdahl2021-07-24
| | | | | | | | Also fix a bunch of bugs related to it.
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-24
|\|
| * The item `fmt` was imported redundantlyfossdd2021-07-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed warning: ``` warning: the item `fmt` is imported redundantly --> helix-core/src/syntax.rs:98:9 | 16 | fmt, | --- the item `fmt` is already imported here ... 98 | use std::fmt; | ^^^^^^^^ | ```
* | Fix append mode, and make insertion always happen at head of range.Nathan Vegdahl2021-07-23
| |
* | Fix ocassional panic when matching brackets.Nathan Vegdahl2021-07-23
| |
* | Revert display-width-based vertical cursor movement.Nathan Vegdahl2021-07-22
| | | | | | | | Still needs to be done, but should be part of a separate PR.
* | Calculate the line that the range head is on correctly.Nathan Vegdahl2021-07-22
| |
* | Fix selections not being modified quite correctly with text edits.Nathan Vegdahl2021-07-21
| |
* | Fixes for misc bugs with view movement.Nathan Vegdahl2021-07-21
| |
* | Fix comment toggle command also sometimes toggling the next line.Nathan Vegdahl2021-07-20
| |
* | Fix various bugs related to goto-end-of-line command.Nathan Vegdahl2021-07-20
| | | | | | | | | | This also fixes a bug with `Selection::normalize()`, that could result in an out-of-bounds primary index.
* | Fix `Selection::push()` to make the pushed range primary.Nathan Vegdahl2021-07-20
| | | | | | | | Apparently I accidentally deleted that behavior in the cleanup.
* | Handle edge case in `range_to_target()` correctly.Nathan Vegdahl2021-07-19
| |
* | Fixed primary cursor position calculation to use 1-width semantics.Nathan Vegdahl2021-07-19
| | | | | | | | | | This had a bunch of knock-on effects that were buggy, such as bracket match highlighting.
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-19
|\|
| * Remove ExactSizeIterator requirement on Transaction::changeBlaž Hrastnik2021-07-19
| | | | | | | | Size hint is enough.
| * Made toggle_comments language dependent (#463)Cor Peters2021-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | * Made toggle_comments language dependent * Fixed Test Cases * Added clippy suggestion * Small Fixes * Clippy Suggestion Co-authored-by: Cor <prive@corpeters.nl>
| * Added option to provide a custom config file to the lsp. (#460)Cor Peters2021-07-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added option to provide a custom config file to the lsp. * Simplified lsp loading routine with anyhow * Moved config to language.toml * Fixed test case * Cargo fmt * Revert now-useless changes * Renamed custom_config to config Co-authored-by: Cor <prive@corpeters.nl>
* | Update word selection/navigation to work with gap indexing.Nathan Vegdahl2021-07-19
| | | | | | | | | | | | Also tweaked some of the existing behavior that seemed inconsistent and/or buggy. It's mostly identical, just a few corner cases are different.
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-17
|\|
| * Dynamically load grammar libraries at runtimeBlaž Hrastnik2021-07-14
| |
| * Rewritten Rust `highlights.scm` (#425)Kirawi2021-07-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rewrote Rust highlights.scm * wip * wip * wip * wip * fixed type highlighting * wip * rewrite again * moved operators * missing newline * missing newline * update book * fix constructor highlighting * fix constructor highlighting * fix const highlighting * better constructor highlighting * remove dup, bug was my locals.scm file * fixed docs * merge * fixed for highlighting * add yield * remove yield * added yield back * fixed yield highlighting * unecessary
* | Update surround commands to work with gap indexing.Nathan Vegdahl2021-07-08
| |
* | Implement `Range::put()` which manages range movements and extensions.Nathan Vegdahl2021-07-08
| | | | | | | | | | In particular, this wraps the annoying logic involved in keeping the cursor width to 1 grapheme.
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-06
|\|
| * Fix typo on comment in surroundIvan Tham2021-07-03
| |
| * Fix surround bug when cursor on same pairGokul Soumya2021-07-03
| | | | | | | | | | | | For example when the cursor is _on_ the `'` in `'word'`, the cursor wouldn't move because the search for a matching pair started _from_ the position of the cursor and simply found itself.
| * Add object selection (textobjects) (#385)Gokul Soumya2021-07-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add textobjects for word * Add textobjects for surround characters * Apply clippy lints * Remove ThisWordPrevBound in favor of PrevWordEnd It's the same as PrevWordEnd except for taking the current char into account, so use a "flag" to capture that usecase * Add tests for PrevWordEnd movement * Remove ThisWord* movements They did not preserve anchor positions and were only used for textobject boundary search anyway so replace them with simple position finding functions * Rewrite tests of word textobject * Add tests for surround textobject * Add textobject docs * Refactor textobject word position functions * Apply clippy lints on textobject * Fix overflow error with textobjects
| * `:reload` (#374)Kirawi2021-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * reloading functionality * fn with_newline_eof() * fmt * wip * wip * wip * wip * moved to core, added simd feature for encoding_rs * wip * rm * .gitignore * wip * local wip * wip * wip * no features * wip * nit * remove simd * doc * clippy * clippy * address comments * add indentation & line ending change
| * Add missing importPerry Thompson2021-07-02
| |
* | Make vertical selection movement work properly.Nathan Vegdahl2021-07-06
| |
* | Make horizontal selection movement work properly.Nathan Vegdahl2021-07-02
| |
* | Allow last line in file to lack a line break character.Nathan Vegdahl2021-07-02
| |
* | Fix a couple additional `unused` warnings after merge.Nathan Vegdahl2021-07-02
| |
* | Merge branch 'master' into great_line_ending_and_cursor_range_cleanupNathan Vegdahl2021-07-02
|\|
| * Fixed last `unused` warning.Nathan Vegdahl2021-07-02
| |
| * Fix one of the two remaining warnings.Nathan Vegdahl2021-07-02
| | | | | | | | One of them was a lot more obvious than I thought.
| * Fix all remaining warnings in helix-core except for two.Nathan Vegdahl2021-07-02
| | | | | | | | | | I'm not sure how to address them, because they look like they might be bugs, and code is involved. Will poke the relevant people.
| * Remove #[allow(unused)] from helix-core, and fix unused imports.Nathan Vegdahl2021-07-02
| | | | | | | | Still a bunch more warnings to fix in core, but it's a start.
* | Ensure a minimum selection width on commands that need it.Nathan Vegdahl2021-07-01
| |
* | Make `Selection`'s normalize and transform methods self-consuming only.Nathan Vegdahl2021-07-01
| |