aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Add undercurl config option #6196 (#6253)Jonatan Pettersson2023-03-14
| | | If set to 'true' this option will force terminal undercurl support.
* build(deps): bump serde from 1.0.152 to 1.0.155 (#6303)dependabot[bot]2023-03-14
| | | | | | | | | | | | | | | Bumps [serde](https://github.com/serde-rs/serde) from 1.0.152 to 1.0.155. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.152...v1.0.155) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump gix from 0.39.0 to 0.41.0 (#6306)dependabot[bot]2023-03-14
| | | | | | | | | | | | | | | | Bumps [gix](https://github.com/Byron/gitoxide) from 0.39.0 to 0.41.0. - [Release notes](https://github.com/Byron/gitoxide/releases) - [Changelog](https://github.com/Byron/gitoxide/blob/main/CHANGELOG.md) - [Commits](https://github.com/Byron/gitoxide/compare/gix-v0.39.0...gix-v0.41.0) --- updated-dependencies: - dependency-name: gix 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>
* Update Nix highlightsMichael Davis2023-03-14
| | | | | | * Switch nix grammar repository location to the new repo. The author has transferred the repository to 'nix-community'. * Capture ':' and '...' as 'punctuation.delimiter'.
* Update Erlang highlightsMichael Davis2023-03-14
| | | | | | | * Macros that start with underscore were incorrectly marked as 'comment.unused' rather than 'keyword.directive' due to an ordering issue of those two patterns. * Recognize escripts as Erlang by the shebang.
* theme: Use inheritance for gruvbox themes (#6295)Michael Davis2023-03-14
| | | | | These gruvbox variants were introduced before theme inheritance and only differ by a few colors. This change cleans up the duplicated theming with theme inheritance.
* build(deps): bump indoc from 2.0.0 to 2.0.1 (#6302)dependabot[bot]2023-03-14
| | | | | | | | | | | | | | | Bumps [indoc](https://github.com/dtolnay/indoc) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/dtolnay/indoc/releases) - [Commits](https://github.com/dtolnay/indoc/compare/2.0.0...2.0.1) --- updated-dependencies: - dependency-name: indoc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump toml from 0.7.2 to 0.7.3 (#6305)dependabot[bot]2023-03-14
| | | | | | | | | | | | | | | Bumps [toml](https://github.com/toml-rs/toml) from 0.7.2 to 0.7.3. - [Release notes](https://github.com/toml-rs/toml/releases) - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.7.2...toml-v0.7.3) --- updated-dependencies: - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump libc from 0.2.139 to 0.2.140 (#6304)dependabot[bot]2023-03-14
| | | | | | | | | | | | | | | Bumps [libc](https://github.com/rust-lang/libc) from 0.2.139 to 0.2.140. - [Release notes](https://github.com/rust-lang/libc/releases) - [Commits](https://github.com/rust-lang/libc/compare/0.2.139...0.2.140) --- updated-dependencies: - dependency-name: libc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump chrono from 0.4.23 to 0.4.24 (#6301)dependabot[bot]2023-03-14
| | | | | | | | | | | | | | | | Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.23 to 0.4.24. - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.23...v0.4.24) --- updated-dependencies: - dependency-name: chrono dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* queries/php: add missing keywords `unset` and `clone` (#6299)Ivan2023-03-14
|
* LSP: Separate diagnostic picker message and code (#6095)Francesc Elies2023-03-13
|
* Check language server symbol renaming support before prompting (#6257)misiasty32023-03-13
| | | Co-authored-by: Poliorcetics <poliorcetics@users.noreply.github.com>
* Update gruvbox color themes to support inlay hint (#6285)Josh Bainbridge2023-03-13
| | | | | | | | | | | | The gruvbox themes (gruvbox, gruvbox dark hard and guvbox light) don't provide a colour for the new virtual inlay hints. Looking at the original repo, and other derivatives, there doesn't appear to be a clear definition of what inlay hints should be. Although most sources indicate that it can be the same as the color for comments. Considering that, this commit sets the new field on each of the three themes to be gray1, same as commented text. Signed-off-by: Josh Bainbridge <josh.bainbridge@gmail.com>
* Add molokai theme (#6260)Maxwell Anderson2023-03-13
|
* add ui.inlay-hint (#6292)workingj2023-03-13
|
* helix-term: send the STOP signal to all processes in the process group (#3546)Cole Helbling2023-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * helix-term: send the STOP signal to all processes in the process group From kill(3p): If pid is 0, sig shall be sent to all processes (excluding an unspecified set of system processes) whose process group ID is equal to the process group ID of the sender, and for which the process has permission to send a signal. This fixes the issue of running `git commit`, attempting to suspend helix with ^Z, and then not regaining control over the terminal and having to press ^Z again. * helix-term: use libc directly to send STOP signal * helix-term: document safety of libc::kill * helix-term: properly handle libc::kill's failure I misread the manpage for POSIX `kill` -- it returns `-1` in the failure case, and sets `errno`, which is retrieved via `std::io::Error::last_os_error()`, has its string representation printed out, and then exits with the matching status code (or 1 if, for whatever reason, there is no matching status code). * helix-term: expand upon why we need to SIGSTOP the entire process group Also add a link back to one of the upstream issues.
* LSP: No-op client/registerCapability requests (#6258)Michael Davis2023-03-13
|
* Test indentation level calculation (#6281)Jonatan Pettersson2023-03-12
| | | Co-authored-by: Jonatan Pettersson <jonatan.pettersson@proton.me>
* Fix indentation level calculation for lines mixing tabs and spaces (#6278)Stanisław Borowy2023-03-12
|
* Autumn theme: add `ui.virtual.inlay-hint` config (#6280)Jens Getreu2023-03-12
| | | The configuration differs between parameters (upright) and types (slanted).
* dark_plus: theme inlay-hint (#6283)Kirawi2023-03-12
| | | | | | | | | | | Taken from the official theme: ```json "editorInlayHint.background": "#4d4d4dcc", "editorInlayHint.foreground": "#ffffff", "editorInlayHint.parameterBackground": "#4d4d4dcc", "editorInlayHint.parameterForeground": "#ffffff", "editorInlayHint.typeBackground": "#4d4d4dcc", "editorInlayHint.typeForeground": "#ffffff", ```
* Theme onelight add inlay-hint (#6276)Erasin Wang2023-03-12
| | | | | | - fix: add `markup.strikethrough` for theme.md - add virtual.inlay-hint - fix ui.virtual.wrap - rename light-white to grey-300
* theme/catppuccin: add ui.virtual.inlay-hint (#6269)Ivan2023-03-11
|
* Document how to run tests (#6268)Jonatan Pettersson2023-03-11
| | | Co-authored-by: Jonatan Pettersson <jonatan.pettersson@proton.me>
* fleet_dark: theme inlay hints (#6266)Kirawi2023-03-11
|
* fix: C++ namespace indentationBlaž Hrastnik2023-03-11
| | | | fixes #6235
* indent snippets to line indent instead of completion start (#6263)Pascal Kuthe2023-03-11
|
* Feat: LSP Type Hints (#5934)Poliorcetics2023-03-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * misc: missing inline, outdated link * doc: Add new theme keys and config option to book * fix: don't panic in Tree::try_get(view_id) Necessary for later, where we could be receiving an LSP response for a closed window, in which case we don't want to crash while checking for its existence * fix: reset idle timer on all mouse events * refacto: Introduce Overlay::new and InlineAnnotation::new * refacto: extract make_job_callback from Context::callback * feat: add LSP display_inlay_hint option to config * feat: communicate inlay hints support capabilities of helix to LSP server * feat: Add function to request range of inlay hint from LSP * feat: Save inlay hints in document, per view * feat: Update inlay hints on document changes * feat: Compute inlay hints on idle timeout * nit: Add todo's about inlay hints for later * fix: compute text annotations for current view in view.rs, not document.rs * doc: Improve Document::text_annotations() description * nit: getters don't use 'get_' in front * fix: Drop inlay hints annotations on config refresh if necessary * fix: padding theming for LSP inlay hints * fix: tracking of outdated inlay hints should not be dependant on document revision (because of undos and such) * fix: follow LSP spec and don't highlight padding as virtual text * config: add some LSP inlay hint configs
* Also highlight unchecked variants of the sqlx query methods (#6256)Maxicarlos082023-03-10
|
* queries/php: add injections for regex and sql injection (#6250)Ivan2023-03-10
|
* Add a version-control statusline element (#5682)Dimitar Gyurov2023-03-10
|
* Improved yuck highlighting (and parser), and introduced a tag.builtin scope ↵Philipp Mildenberger2023-03-10
| | | | (#6242)
* treat replace/insertmode consistently, default to insertPascal Kuthe2023-03-10
|
* fix snippet bugs and multicursor completion edgecasesPascal Kuthe2023-03-10
| | | | | | | | | | | | | | | | Multicursor completions may overlap and therefore overlapping completions must be dropped to avoid crashes. Furthermore, multicursor edits might simply be out of range if the word before/after the cursor is shorter. This currently leads to crashes, instead these selections are now also removed for completions. This commit also significantly refactors snippet transaction generation so that tabstops behave correctly with the above rules. Furthermore, snippet tabstops need to be carefully mapped to ensure their position is correct and consistent with our selection semantics. Finally, we now keep a partially updated Rope while creating snippet transactions so that we can fill information into snippets that depends on the position in the document.
* Add API to create a Transaction from potentially overlapping changesPascal Kuthe2023-03-10
| | | | | | | | | | | | This commit adds new functions to `Transaction` that allow creating edits that might potentially overlap. Any change that overlaps previous changes is ignored. Furthermore, a utility method is added that also drops selections associated with dropped changes (for transactions that are created from a selection). This is needed to avoid crashes when applying multicursor autocompletions, as the edit from a previous cursor may overlap with the next cursor/edit.
* avoid allocations during snippet renderingPascal Kuthe2023-03-10
|
* Add IntoIterator implementation for SelectionPascal Kuthe2023-03-10
|
* allow LSP insert text to replace non-matching prefixes (#5469)Taylor C. Richberger2023-03-10
| | | | | | | Most LSPs will complete case-insensitive matches, particularly from lowercase to uppercase. In some cases, notably Pyright, this is given as a simple insert text instead of TextEdit. When this happens, the prefix text was left unedited.
* Generalised to multiple runtime directories with priorities (#5411)paul-scott2023-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Generalised to multiple runtime directories with priorities This is an implementation for #3346. Previously, one of the following runtime directories were used: 1. `$HELIX_RUNTIME` 2. sibling directory to `$CARGO_MANIFEST_DIR` 3. subdirectory of user config directory 4. subdirectory of path to helix executable The first directory provided / found to exist in this order was used as a root for all runtime file searches (grammars, themes, queries). This change lowers the priority of `$HELIX_RUNTIME` so that the user config runtime has higher priority. More significantly, all of these directories are now searched for runtime files, enabling a user to override default or system-level runtime files. If the same file name appears in multiple runtime directories, the following priority is now used: 1. sibling directory to `$CARGO_MANIFEST_DIR` 2. subdirectory of user config directory 3. `$HELIX_RUNTIME` 4. subdirectory of path to helix executable One exception to this rule is that a user can have a `themes` directory directly in the user config directory that has higher piority to `themes` directories in runtime directories. That behaviour has been preserved. As part of implementing this feature `theme::Loader` was simplified and the cycle detection logic of the theme inheritance was improved to cover more cases and to be more explicit. * Removed AsRef usage to avoid binary growth * Health displaying ;-separated runtime dirs * Changed HELIX_RUNTIME build from src instructions * Updated doc for more detail on runtime directories * Improved health symlink printing and theme cycle errors The health display of runtime symlinks now prints both ends of the link. Separate errors are given when theme file is not found and when the only theme file found would form an inheritence cycle. * Satisfied clippy on passing Path * Clarified highest priority runtime directory purpose * Further clarified multiple runtime details in book Also gave markdown headings to subsections. Fixed a error with table indentation not building table that also appears present on master. --------- Co-authored-by: Paul Scott <paul.scott@anu.edu.au> Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Fix `shrink_selection` with multiple cursors. (#6093)gibbz002023-03-09
| | | | | | | | | | | * Fix #6092 Cause were some incorrect assumptions that missed an edge case in the `Selection.contains()` calculation. Tests were added accordingly. * Fix Selection.contains() edge-case handling. Removing the len check short-circuit was the only thing needed as pointed out by @dead10ck.
* correctly store snapshots when repeating insert-mode actionsPascal Kuthe2023-03-09
| | | | | | | | | | | | Repeating completions currently crates a savepoint when a completion popup was triggered (so after the request completed). Just like for normal completions the savepoint must be created at the request. The occurrence of the completion request was previously not saved in `last_insert`. To that end a new `InsertEvent::RequestCompletion` variant has been added. When replayed this event creates a snapshot that is "actived" by the `TriggerCompletion` event and subsequently used during any `InsertEvent::CompletiuonApply` events.
* discard stale completion requestsPascal Kuthe2023-03-09
| | | | | | | | | | | | | | | | | Completion requests are computed asynchronously to avoid common micro freezes while editing. This means that once a completion request completes, the state of the editor might have changed. Currently, there is a check to ensure we are still in insert mode. However, we also need to ensure that the view and document hasn't changed to avoid accidentally using a savepoint with the wrong view/document. Furthermore, the editor might request a new completion while the previous completion request hasn't complemented yet. This can lead to weird flickering or an outdated completion request replacing a newer completion that has already completed (the LSP server is not required to process completion requests in order). This change also needed to ensure determinism/linear ordering so that completion popup always correspond to the last completion request.
* store multiple snapshots on the document at oncePascal Kuthe2023-03-09
| | | | | | | | | | | | | | | | | | Fixing autocomplete required moving the document savepoint before the asynchronous completion request. However, this in turn causes new bugs: If the completion popup is open, the savepoint is restored when the popup closes (or another entry is selected). However, at that point a new completion request might already have been created which would have replaced the new savepoint (therefore leading to incorrectly applied complies). This commit fixes that bug by allowing in arbitrary number of savepoints to be tracked on the document. The savepoints are reference counted and therefore remain valid as long as any reference to them remains. Weak reference are stored on the document and any reference that can not be upgraded anymore (hence no strong reference remain) are automatically discarded.
* save selection before completion savepointPascal Kuthe2023-03-09
| | | | | | | | | Currently, the selection is not saved/restored when completion checkpoints are applied. This is usually fine because undoing changes usually restores maps selections back in insert mode. But this is not always the case and especially problematic in the presence of multi-cursor completions (since completions are applied relative to the selection/cursor) and snippets (which can change the selection)
* create savepoint before requesting completionPascal Kuthe2023-03-09
|
* feat(theme): Update pop-dark statusline (#6227)workingj2023-03-09
| | | | | | | | | * update pop-theme for color-modes * fixed ui.statusline.select not worrking * adjustments for nicer statusline visuals * added status line color
* Theme - auy_evolve: Up bufferline fg brightness (#6225)gibbz002023-03-08
| | | | Currently a bit hard to discern inactive and active buffers in a brighter environment.
* LSP: Support textDocument/prepareRename (#6103)Kyle Smith2023-03-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * LSP: Support textDocument/prepareRename 'textDocument/prepareRename' can be used by the client to ask the server the range of the symbol under the cursor which would be changed by a subsequent call to 'textDocument/rename' with that position. We can use this information to fill the prompt with an accurate prefill which can improve the UX for renaming symbols when the symbol doesn't align with the "word" textobject. (We currently use the "word" textobject as a default value for the prompt.) Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * clippy fixes * rustfmt * Update helix-term/src/commands/lsp.rs Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * Update helix-term/src/commands/lsp.rs Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * fix clippy from suggestions * Update helix-term/src/commands/lsp.rs Co-authored-by: Michael Davis <mcarsondavis@gmail.com> --------- Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Add test cases for existing pair matching logic. (#6027)Kyle Smith2023-03-08
| | | | | * Add test cases for existing pair matching logic. * fix clippy