aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src
Commit message (Collapse)AuthorAge
* feat(commands): shrink_selection (#1340)Matouš Dzivjak2022-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(commands): shrink_selection Add `shrink_selection` command that can be used to shrink previously expanded selection. To make `shrink_selection` work it was necessary to add selection history to the Document since we want to shrink the selection towards the syntax tree node that was initially selected. Selection history is cleared any time the user changes selection other way than by `expand_selection`. This ensures that we don't get some funky edge cases when user calls `shrink_selection`. Related: https://github.com/helix-editor/helix/discussions/1328 * Refactor shrink_selection, move history to view * Remove useless comment * Add default key mapping for extend&shrink selection * Rework contains_selection method * Shrink selection without expand selects first child
* Add llvm-mir highlighting (#1398)Sebastian Neubauer2022-01-04
| | | | | | | | | | | | | | | | | * Add injection regex for more languages To support embedding them in other languages like markdown. * Add llvm-mir highlighting LLVM Machine IR is dumped as yaml files that can embed LLVM IR and Machine IR. To support this, add a llvm-mir-yaml language that uses the yaml parser, but uses different injections to highlight IR and MIR. * Update submodule with fixed multiline comments Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Add basic indentation for languages without treesitter-based indentation ↵Triton1712022-01-03
| | | | | | | rules (always use the indent of the current line for a new line). (#1341) Fix several bugs in the treesitter indentation calculation. Co-authored-by: Triton171 <triton0171@gmail.com>
* Detect workspace root using language markers (#1370)Alexis Mousset2021-12-31
| | | | | | | | | | | | | | | | * Detect workspace root using language markers * Avoid allocating root_markers * Update helix-core/src/lib.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> * Update helix-core/src/lib.rs Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com> Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com>
* feat(commands): ensure_selections_forward (#1393)Matouš Dzivjak2021-12-29
| | | | | | | | | | | | | * feat(commands): ensure_selections_forward Add command that ensures that selections are in forward direction. Fixes: https://github.com/helix-editor/helix/issues/1332 * Add keybinding for ensure_selections_forward Add `A-:` keybinding for the ensure_selections_forward command. * Re-use range.flip for flip_selections command
* feat(ui): file encoding in statusline (#1355)Matouš Dzivjak2021-12-25
| | | | | | | | | | | * feat(ui): file encoding in statusline Display file encoding in statusline if the encoding isn't UTF-8. * Re-export encoding_rs from core From there it can be imported by other mods that rely on it.
* feat(lsp): configurable diagnostic severity (#1325)Matouš Dzivjak2021-12-25
| | | | | | | | | | | | | | | | * feat(lsp): configurable diagnostic severity Allow severity of diagnostic messages to be configured. E.g. allow turning of Hint level diagnostics. Fixes: https://github.com/helix-editor/helix/issues/1007 * Use language_config() method * Add documentation for diagnostic_severity * Use unreachable for unknown severity level * fix: documentation for diagnostic_severity config
* Fix match brackets comment (#1346)Stuart Hinson2021-12-24
|
* Auto pairs selection (#1254)Skyler Hawthorne2021-12-21
| | | | | | | | | | | | | | | | * use auto pairs with selections Previously, the auto pairs code was converting the user selection into its cursor form, and setting the transaction's selection to that cursor. This has the effect of destroying the user's selection if they type a pair character that gets auto completed. This fixes the code to work with the user's selection, inserting auto pairs where appropriate, but either keeping or extending the user's selection. * use movement::Direction instead of bool * assume 0-width cursor is forward
* Apply recent nightly suggestions (#1286)Kirawi2021-12-18
| | | array iterators are now implicit
* Add auto pairs for same-char pairs (#1219)Skyler Hawthorne2021-12-13
| | | | | | | | | | | | | | | * Add auto pairs for same-char pairs * Add unit tests for all existing functionality * Add auto pairs for same-char pairs (quotes, etc). Account for apostrophe in prose by requiring both sides of the cursor to be non-pair chars or whitespace. This also incidentally will work for avoiding a double single quote in lifetime annotations, at least until <> is added * Slight factor of moving the cursor transform of the selection to inside the hooks. This will enable doing auto pairing with selections, and fixing the bug where auto pairs destroy the selection. Fixes #1014
* Open files with spaces in filename, allow opening multiple files (#1231)ath32021-12-12
|
* Use same name used in config files for langs in docsGokul Soumya2021-12-08
|
* Auto generate docs for language supportGokul Soumya2021-12-08
|
* Remove `Clone` deriveJason Rodney Hansen2021-12-05
|
* Remove `FormatError`Jason Rodney Hansen2021-12-05
|
* Used checked_add for years and monthsJason Rodney Hansen2021-12-05
|
* CleanupJason Rodney Hansen2021-12-05
|
* No need to clone formatJason Rodney Hansen2021-12-05
|
* Add support for time and more date formatsJason Rodney Hansen2021-12-05
|
* Add `Increment` traitJason Rodney Hansen2021-12-05
|
* Remove dependency on gregorian crateJason Rodney Hansen2021-12-05
|
* CleanupJason Rodney Hansen2021-12-05
|
* Add support for incrementing year and monthJason Rodney Hansen2021-12-05
|
* Add support for dates for increment/decrementJason Rodney Hansen2021-12-05
|
* Support env flags in shebang (#1224)ath32021-12-03
|
* Address new lint on 1.57Blaž Hrastnik2021-12-03
|
* fix: Correctly detect empty transactionsBlaž Hrastnik2021-12-02
| | | | Fixes #1221
* Fix typo on docs (#1201)George Rodrigues2021-12-01
|
* Gutter functionsBlaž Hrastnik2021-11-29
|
* Fix surround cursor position calculation (#1183)Gokul Soumya2021-11-29
| | | | | | | | | | | | | | | Fixes #1077. This was caused by the assumption that a block cursor is represented as zero width internally and simply rendered to be a single width selection, where as in reality a block cursor is an actual single width selection in form and function. Behavioural changes: 1. Surround selection no longer works when cursor is _on_ a surround character that has matching pairs (like `'` or `"`). This was the intended behaviour from the start but worked till now because of the cursor position calculation mismatch.
* Implement black hole register (#1165)ath32021-11-28
|
* Jump to end char of surrounding pair from any cursor pos (#1121)Martin Junghanns2021-11-20
| | | | | | | | | | | | | | | * Jump to end char of surrounding pair from any cursor pos * Separate bracket matching into exact and fuzzy search * Add constants for bracket chars * Abort early if char under cursor is not a bracket * Simplify bracket char validation * Refactor node search and unify find methods * Remove bracket constants
* fix: Expand tilde first, then deal with relative pathsBlaž Hrastnik2021-11-19
| | | | | | Otherwise the ~ gets treated as a relative path. Fixes #1107
* Fix selection remove doc comment (#1122)ath32021-11-18
|
* 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
* Add movement shortcut for history (#1088)Ivan Tham2021-11-14
| | | alt-u and alt-U
* Add trim_selections command (#1092)ath32021-11-14
|
* minor: Import Range tooBlaž Hrastnik2021-11-14
|
* Implement "Goto last modification" command (#1067)ath32021-11-14
|
* Add `remove_selections` command (#1065)Omnikar2021-11-12
| | | | | | | | | * Add `remove_selections` command * Document `remove_selections` * Update helix-term/src/keymap.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Use default `languages.toml` if user's is invalid (#994)Omnikar2021-11-09
|
* Revert "fix(core): stop merging array toml config values (#1004)"Blaž Hrastnik2021-11-09
| | | | | | It breaks languages.toml merging This reverts commit 4304b52ff86f829115cb89b20160b4f80dbb3dbd.
* Make shebangs optional, they don't make sense outside of scriptsBlaž Hrastnik2021-11-09
|
* Refactor shebang detection to reuse the loaded bufferBlaž Hrastnik2021-11-08
|
* Detect filetype from shebang line (#1001)ath32021-11-08
|
* Specify capacity on toggle_line_commentsBlaž Hrastnik2021-11-08
|
* Adds single and double quotes to matching pairs (#995)Daniel S Poulin2021-11-08
| | | | This enables `mm` to work on quote characters as well as highlighting of matching quote when on it.
* Add WORD textobject (#991)Omnikar2021-11-08
| | | | | * Add WORD textobject * Document WORD textobject
* fix(core): stop merging array toml config values (#1004)Carter Snook2021-11-08
|