aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src/lib.rs
Commit message (Collapse)AuthorAge
* Add support for dates for increment/decrementJason Rodney Hansen2021-12-05
|
* Fix typo on docs (#1201)George Rodrigues2021-12-01
|
* Add command to inc/dec number under cursor (#1027)Jason Hansen2021-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add command to inc/dec number under cursor With the cursor over a number in normal mode, Ctrl + A will increment the number and Ctrl + X will decrement the number. It works with binary, octal, decimal, and hexidecimal numbers. Here are some examples. 0b01110100 0o1734 -24234 0x1F245 If the number isn't over a number it will try to find a number after the cursor on the same line. * Move several functions to helix-core * Change to work based on word under selection * It no longer finds the next number if the cursor isn't already over a number. * It only matches numbers that are part of words with other characters like "foo123bar". * It now works with multiple selections. * Add some unit tests * Fix for clippy * Simplify some things * Keep previous selection after incrementing * Use short word instead of long word This change requires us to manually handle minus sign. * Don't pad decimal numbers if no leading zeros * Handle numbers with `_` separators * Refactor and add tests * Move most of the code into core * Add tests for the incremented output * Use correct range * Formatting * Rename increment functions * Make docs more specific * This is easier to read * This is clearer * Type can be inferred
* Revert "fix(core): stop merging array toml config values (#1004)"Blaž Hrastnik2021-11-09
| | | | | | It breaks languages.toml merging This reverts commit 4304b52ff86f829115cb89b20160b4f80dbb3dbd.
* fix(core): stop merging array toml config values (#1004)Carter Snook2021-11-08
|
* Ensure coords in screen depends on char width (#885)Ivan Tham2021-11-03
| | | | | The issue affected files with lots of tabs at the start as well. Fix #840
* Updated tree-sitter query scopes (#896)Kirawi2021-11-03
| | | | | | | | | | | | | | | | | | * updated theme scopes variable.property -> variable.field property -> variable.field * updated theme scopes * update book and themes updated book and themes to reflect scope changes * wip * update more queries * update dark_plus.toml
* feat: merge default languages.toml with user provided languages.toml, add a ↵Yusuf Bera Ertan2021-08-26
| | | | | | | | | | | generic TOML value merge function (#654) * feat: merge default languages.toml with user provided languages.toml * refactor: use catch-all to override all other values for merge toml * tests: add a test case for merging languages configs * refactor: change test module name
* Move path util functions from helix-term to helix-core (#650)Kirawi2021-08-25
|
* Remove embed_runtime featureBlaž Hrastnik2021-07-30
| | | | It's no longer practical to maintain. Closes #451
* 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
* 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.
* Handle non-UTF8 filesShafkath Shuhan2021-06-23
|
* Add surround keybindsGokul Soumya2021-06-22
|
* Add function to get the line ending of a str slice.Nathan Vegdahl2021-06-21
| | | | This is needed in some places.
* Merge branch 'master' of github.com:helix-editor/helix into ↵Nathan Vegdahl2021-06-20
|\ | | | | | | | | | | | | line_ending_detection Rebasing was making me manually fix conflicts on every commit, so merging instead.
| * Re-export unicode crates from helix_coreBlaž Hrastnik2021-06-20
| |
| * Add ability to change theme on editorwojciechkepka2021-06-19
| |
* | Work on moving code over to LineEnding instead of assuming '\n'.Nathan Vegdahl2021-06-20
| | | | | | | | Also some general cleanup and some minor fixes along the way.
* | Misc fixes and clean up of line ending detect code.Nathan Vegdahl2021-06-20
| |
* | added the line_end helper functionJan Hrastnik2021-06-20
| |
* | Merge remote-tracking branch 'origin/master' into line_ending_detectionJan Hrastnik2021-06-19
|\|
| * Fix expansion of `~` (#284)Wojciech Kępka2021-06-18
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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`
* | ran cargo fmtJan Hrastnik2021-06-19
| |
* | added get_line_ending from pr commentJan Hrastnik2021-06-19
| |
* | trying out line ending helper functions in commands.rsJan Hrastnik2021-06-16
| |
* | added some tests and a line_ending helper function in document.rsJan Hrastnik2021-06-16
| |
* | added more changes from pr review for line_ending_detectionJan Hrastnik2021-06-16
| |
* | resolved conflict in rebaseJan Hrastnik2021-06-16
| |
* | ran cargo clippy and cargo fmtJan Hrastnik2021-06-16
| |
* | rebase on branch line_ending_detectionJan Hrastnik2021-06-16
|/
* Address PR comments.Nathan Vegdahl2021-06-15
| | | | | | - Move char functions into their own module under helix_core. - Use matches!() macro where appropriate. - Use a static lifetime on indent_unit() now that we can.
* Add ctrl-w for promptIvan Tham2021-06-14
|
* Use `runtime` dir when defaulting to executable locationWojciech Kępka2021-06-12
|
* Make `runtime_dir` privateWojciech Kępka2021-06-12
|
* Add more ways to detect runtime directoryWojciech Kępka2021-06-12
|
* Add :earlier and :later commands that can be used to navigate the full edit ↵Jakub Bartodziej2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Movement fixes, refactor and unit test suite (#217)PabloMansanet2021-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Cleanup find_first_non_whitespace_char funcsWojciech Kępka2021-06-08
|
* commands: Add goto first non-whitespace char of lineWojciech Kępka2021-06-08
|
* lsp: Provide workspace root on client.initialize()Blaž Hrastnik2021-06-07
|
* Add ctrl-w in insert modeIvan Tham2021-06-06
| | | | | It seemed to panic when I pressed too many times, but that is from lsp side.
* Provide a feature flag to be able to embed the runtime folder.Brian Dawn2021-06-06
| | | | | | These changes provide a new feature flag "embed_runtime" that when enabled and built in release mode will embed the runtime folder into the resulting binary.
* Default log file to cacheIvan Tham2021-06-03
|
* Update architecture.mdBlaž Hrastnik2021-05-30
|
* Make the config dir locator work on Windows.Blaž Hrastnik2021-05-10
|
* Determine runtime dir based on executable location or env override.Blaž Hrastnik2021-05-09
|
* Load config files from ~/.config/helix, fallback to defaults.Blaž Hrastnik2021-04-07
|
* Simplify some code.Blaž Hrastnik2021-04-01
|