summaryrefslogtreecommitdiff
path: root/helix-core
Commit message (Collapse)AuthorAge
* Resolve some outdated commentsBlaž Hrastnik2022-01-23
|
* fix: Skip modifying the root layer range, it always covers 0..maxBlaž Hrastnik2022-01-23
|
* Update range markers so we can determine which layers can be reusedBlaž Hrastnik2022-01-23
|
* Try to reuse an existing layer based on layer.rangesBlaž Hrastnik2022-01-23
|
* Ignore layers without highlight captures, avoid cloning rangesBlaž Hrastnik2022-01-23
|
* Reuse the source slice between layersBlaž Hrastnik2022-01-23
|
* Store theme scopes on the loader, this way theme isn't passed aroundBlaž Hrastnik2022-01-23
|
* syntax: Split parsing and highlightingBlaž Hrastnik2022-01-23
|
* add select_next_sibling and select_prev_sibling commands (#1495)Michael Davis2022-01-20
| | | | | | | | | | | | | | | | | | | * add select_next_sibling and select_prev_sibling commands * refactor objects to use higher order functions * address clippy feedback * move selection cloning into commands * add default keybindings under left/right brackets * use [+t,]+t for selecting sibling syntax nodes * setup Alt-{j,k,h,l} default keymaps for syntax selection commands * reduce boilerplate of select_next/prev_sibling in commands * import tree-sitter Node type in commands
* build(deps): bump smallvec from 1.7.0 to 1.8.0 (#1532)dependabot[bot]2022-01-18
| | | | | | | | | | | | | | | | Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.7.0 to 1.8.0. - [Release notes](https://github.com/servo/rust-smallvec/releases) - [Commits](https://github.com/servo/rust-smallvec/compare/v1.7.0...v1.8.0) --- updated-dependencies: - dependency-name: smallvec dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(auto_pairs): fix auto pairs with crlf (#1470)Skyler Hawthorne2022-01-17
| | | | | | | | | | | Auto pairs were resulting in incorrect ranges in the resulting when the line terminators are CRLF (i.e. Windows). It turns out this is because when we were checking if the selection was a single-width cursor, it incorrectly assumed that this would be a single char. This is not the case, as a cursor can cover a multi-code point grapheme. Therefore, we must instead explicitly work with and check graphemes to determine if the cursor should move or extend the selection. Fixes #1436
* Update to rust 1.58, fix a bunch of optional lintsBlaž Hrastnik2022-01-16
|
* Use the correct language ID for JavaScript & TypeScript (#1466)Kevin Sjöberg2022-01-15
| | | | | | | * Use correct language ID for JavaScript/TypeScript * Add missing slash * Only calculate fallback when needed
* remove outdated note (#1485)Kirawi2022-01-12
|
* expand_selection to current node with no children (#1454)Michael Davis2022-01-08
|
* 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
* Release 0.6Blaž Hrastnik2022-01-04
|
* 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
* build(deps): bump once_cell from 1.8.0 to 1.9.0 (#1322)dependabot[bot]2021-12-20
| | | | | | | | | | | | | | | | | Bumps [once_cell](https://github.com/matklad/once_cell) from 1.8.0 to 1.9.0. - [Release notes](https://github.com/matklad/once_cell/releases) - [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md) - [Commits](https://github.com/matklad/once_cell/compare/v1.8.0...v1.9.0) --- updated-dependencies: - dependency-name: once_cell dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* 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
|
* FormattingJason Rodney Hansen2021-12-05
|
* No default features for gregorianJason 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.