aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Center the picker preview selection using visual lines (#7837)Jesse Luehrs2023-08-08
| | | | this way the preview always shows the selection even if lines were wrapped
* Skip rendering gutters when gutter width exceeds view width (#7821)Anshul Dalal2023-08-08
|
* build(tree-sitter): update javascript, typescript and tsx (#7852)woojiq2023-08-07
| | | | | | | | | | | | | * build(tree-sitter): update javascript, typescript and tsx * update revision of tree-sitter parsers for these languages. * rename `?.` to `optional_chain`, introduced in tree-sitter/tree-sitter-javascript@186f2adbf790552b354a9ba712341c7d48bdbccd. * fix(highlight): change jsx queries to match latest tree-sitter Latest tree-sitter/tree-sitter-javascript@bb1f97b643b77fc1f082d621bf533b4b14cf0c3 added some breaking changes that broke highlighting. * Remove some queries with `nested_identifier`. * Remove deprecated `jsx_fragment` from indent query. * Count `</` and `/>` as a single token.
* Add tree-sitter textobjects queries for bash (#7764)Petr Gajdůšek2023-08-07
| | | | | | This implements function, (calling) argument and comment captures for use in the textobject selections in bash. This also updates the generated docs after adding the textobjects for bash.
* Update tree-sitter-git-commit (#7831)Michael Davis2023-08-07
| | | | This fixes a problem parsing the "On branch _branch_" part of the commit comment when the branch contains a slash.
* CI: Remove the aarch64 appimage build steps from release (#7832)Michael Davis2023-08-07
| | | | | The steps mistakenly produce a x86_64 appimage and call it aarch64. linuxdeploy doesn't currently support producing aarch64 appimages so we should just remove these steps for aarch64-linux.
* Only use tsq for tsq filesBlaž Hrastnik2023-08-07
| | | | | This makes our highlight files more plain but it correctly highlights scheme :/
* Update tree-sitter-schemeBlaž Hrastnik2023-08-07
|
* feat(indent): add basic java indentation queries (#7844)woojiq2023-08-07
|
* Add new moon theme to default themes (#7834)Mohamed Imrane Chehabi2023-08-04
| | | | | * Add new moon theme to default themes * Remove .DS_Store
* Improve wren support (#7819)Jummit2023-08-04
|
* Update t32 language queries to version 2.2.1 (#7811)Christoph Sax2023-08-04
| | | | | | | | | | | | | | Version 2.2.1 of the grammar adds extended support for HLL (C, C++,..) expressions. Quite a few node types were added, renamed or removed in the process. This change brings the highlight queries in sync with the ones found in the repository of the grammar. The highlighting tests "look" okay after updating the queries. Recently, Codeberg had some reliability issues. That is why the language is now using the mirror repository on GitLab as source instead. Co-authored-by: Christoph Sax <christoph.sax@mailbox.org>
* Bump the version of Hare's grammar (#7784)J. Brock2023-08-04
|
* build(deps): bump serde from 1.0.175 to 1.0.180 (#7794)dependabot[bot]2023-08-04
| | | | | | | | | | | | | | | Bumps [serde](https://github.com/serde-rs/serde) from 1.0.175 to 1.0.180. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.175...v1.0.180) --- 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>
* fix range formatting error message typo (#7823)Austin L Wolfgram2023-08-04
|
* Update tree-sitter-zig (#7803)voroskoi2023-08-02
|
* languages: add protobuf language servers (#7796)Jimmy Zelinskie2023-08-02
| | | | | * languages: add bufls protobuf language server * languages: add pbkit protobuf language server
* feat: smart_tabSkyler Hawthorne2023-08-01
| | | | | | Implement `smart_tab`, which optionally makes the tab key run the `move_parent_node_start` command when the cursor has non- whitespace to its left.
* add node boundary movementSkyler Hawthorne2023-08-01
|
* update yanked dependency (#7800)Zoey Hewll2023-08-01
|
* build(deps): bump serde_json from 1.0.103 to 1.0.104 (#7793)dependabot[bot]2023-08-01
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump globset from 0.4.11 to 0.4.12 (#7795)dependabot[bot]2023-08-01
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add yank_to_clipboard commands, bind to `<space>y` by defaultMichael Davis2023-07-31
| | | | | | | | The clipboard special registers are able to retain multiple selections and also join the value when copying it to the clipboard. So by default we should yank regularly to the '*' and '+' registers. That will have the same behavior for the clipboards but will allow pasting multiple selections if the clipboard doesn't change between yanks.
* Reimplement clipboard commands in terms of special regsMichael Davis2023-07-31
| | | | | | | | | | Since the clipboard provider now lives on the Registers type, we want to eliminate it from the Editor. We can do that and clean up the commands that interact with the clipboard by calling regular yank, paste and replace impls on the clipboard special registers. Eventually the clipboard commands could be removed once macro keybinding is supported.
* Preview the latest value for regular registersMichael Davis2023-07-31
| | | | | | | | | | | | | | | | | | | | | | | This fixes a discrepancy between regular registers which are used for yanking multiple values (for example via `"ay`) and regular registers that store a history of values (for example `"a*`). Previously, the preview shown in `select_register`'s infobox would show the oldest value in history. It's intuitive and useful to see the most recent value pushed to the history though. We cannot simply switch the preview line from `values.first()` to `values.last()`: that would fix the preview for registers used for history but break the preview for registers used to yank multiple values. We could push to the beginning of the values with `Registers::push` but this is wasteful from a performance perspective. Instead we can have `Registers::read` return an iterator that returns elements in the reverse order and reverse the values in `Register::write`. This effectively means that `push` adds elements to the beginning of the register's values. For the sake of the preview, we can switch to `values.last()` and that is then correct for both usage- styles. This also needs a change to call-sites that read the latest history value to switch from `last` to `first`.
* book: Document default and special registersMichael Davis2023-07-31
|
* commands: Allow using selected register where hardcodedMichael Davis2023-07-31
| | | | | These snippets use hardcoded registers but it can be useful to be able to specify a register for these commands.
* Use refactored Registers typeMichael Davis2023-07-31
| | | | | | | This is an unfortunately noisy change: we need to update virtually all callsites that access the registers. For reads this means passing in the Editor and for writes this means handling potential failure when we can't write to a clipboard register.
* Add system & primary clipboards as special registersMichael Davis2023-07-31
| | | | | | | | | | | | | | These special registers join and copy the values to the clipboards with '*' corresponding to the system clipboard and '+' to the primary as they are in Vim. This also uses the trick from PR6889 to save the values in the register and re-use them without joining into one value when pasting a value which was yanked and not changed. These registers are not implemented in Kakoune but Kakoune also does not have a built-in clipboard integration. Co-authored-by: CcydtN <51289140+CcydtN@users.noreply.github.com> Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
* Add the '%' (current filename) registerMichael Davis2023-07-31
| | | | | | | | | | This register also comes from Kakoune. It's read-only and produces the current document's name, defaulting to the scratch buffer name constant. (Also see PR5577.) Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add '#' and '.' special registersMichael Davis2023-07-31
| | | | | | | | | | | | | | | | | | These come from Kakoune: * '#' is the selection index register. It's read-only and produces the selection index numbers, 1-indexed. * '.' is the selection contents register. It is also read-only and mirrors the contents of the current selections when read. We switch the iterators returned from Selection's `fragments` and `slices` methods to ExactSizeIterators because: * The selection contents register can simply return the fragments iterator. * ExactSizeIterator is already implemented for iterators over Vecs, so it's essentially free. * The `len` method can be useful on its own.
* Refactor Registers to take EditorMichael Davis2023-07-31
| | | | | | | | | | | | | | | | | | | | | | This sets up a new Registers type that will allow us to expand support for special registers. (See the child commits.) We start simple with the regular (`Vec<String>`) registers and the simplest special register, the black hole. In the child commits we will expand these match arms with more special registers. The upcoming special registers will need a few things that aren't possible with the current Registers type in helix-core: * Access to the `Editor`. This is only necessary when reading from registers, so the `&Editor` parameter is only added to `Registers::read`. * Returning owned values. Registers in helix-core returns references to the values backed by the `Vec<String>` but future special registers will need to return owned values. We refactor the return value of the read operations to give `Cow<str>`s and iterators over those. * Returning a `Result` for write/push functions. This will be used by the clipboard special registers.
* replace new lsp for vlang (#7760)lydiandy2023-07-30
| | | | | | | | | | | | | | | | | | | | | * fix vlang grammar fetch and build fail * update highlights.scm for v-analyzer * Update languages.toml Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * Update runtime/queries/v/highlights.scm Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * update scm for new lsp * gen doc lang-support.md --------- Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* add new theme based on the default vim dark theme (#7785)Jesse Luehrs2023-07-30
|
* Register .gltf file type for JSON (#7781)Mateusz S. Szczygieł2023-07-29
|
* feat: update prql parser (#7771)Matthias Q2023-07-28
|
* Add wren support (#7765)Jummit2023-07-28
|
* Refactor Nix flake to use crane (#7763)Michael Davis2023-07-28
| | | | | | | | | | | | This resolves a build issue with nci/dream2nix and git dependencies. We can keep most of the helix-specific parts of the flake, we just need to switch from configuring nci to calling craneLib functions. We also switch to flake-utils from flake-parts: * Using rust-overlay with flake-parts directly is unergonomic (see https://github.com/hercules-ci/flake-parts/discussions/83). * Removing flake-parts reduces the overall dependencies: rust-overlay already depends on flake-utils.
* Reformat with nightly rustfmt for better let-else formatting (#7721)Philipp Mildenberger2023-07-27
|
* pin TS to unreleased git revision to fix freezes (#7737)Pascal Kuthe2023-07-27
|
* highlighted_code_block: Take input text as &strMichael Davis2023-07-27
| | | | | | This removes a handful of allocations for functions calling into the function, which is nice because the prompt may call this function on every keypress.
* Prefer RopeSlice to &Rope in helix_core::syntaxMichael Davis2023-07-27
| | | | | | | | | | | | | | | Pascal and I discussed this and we think it's generally better to take a 'RopeSlice' rather than a '&Rope'. The code block rendering function in the markdown component module is a good example for how this can be useful: we can remove an allocation of a rope and instead directly turn a '&str' into a 'RopeSlice' which is very cheap. A change to prefer 'RopeSlice' to '&Rope' whenever the rope isn't modified would be nice, but it would be a very large diff (around 500+ 500-). Starting off with just the syntax functions seems like a nice middle-ground, and we can remove a Rope allocation because of it. Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de>
* Tune regex highlights for usage in promptsMichael Davis2023-07-27
| | | | | | | | | | | Since regex is almost always injected into other languages, `pattern_character`s will inherit the highlight for the structure that injects them (for example `/foo/` in JavaScript or `~r/foo/` in Elixir). This removes the string highlight when used in the prompt. We also add `ERROR` node highlighting so that errors in regex syntax appear in the prompt. This resolves a TODO in the `regex_prompt` function about highlighting errors in the regex.
* Syntax-highlight regex promptsMichael Davis2023-07-27
| | | | | | | | | | | We can use tree-sitter-regex highlighting in prompts for entering regexes, like `search` or `global_search`. The `highlighted_code_block` function from the markdown component makes this a very small change. This could be improved in the future by leaving the parsed syntax tree on the prompt, allowing incremental updates. Prompt lines are usually so short though and tree-sitter-regex is rather small and uncomplicated, so that improvement probably wouldn't make a big difference.
* Save an undo checkpoint before accepting completion (#7747)Michael Davis2023-07-27
|
* Theme Pop-Dark: Increase Diagnostics clarity (#7702)eh2023-07-26
|
* Update everforest_dark.toml to add missing color definitions (#7739)saltlakrits2023-07-26
|
* fix incorrect predicate in comment highlights (#7732)Pham Huy Hoang2023-07-25
|
* Update soft-wrap indicator in gruvbox themes (#7736)Federico Stra2023-07-25
|
* build(deps): bump signal-hook from 0.3.16 to 0.3.17 (#7728)dependabot[bot]2023-07-25
| | | | Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>