aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Make repeat operator work with completion edits (#1640)Mateusz S. Szczygieł2022-03-01
| | | | | | | | | | | * add basic completion replay * use transaction as the last completion * completion replay only on trigger position * cache changes in CompletionAction Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Ensure non empty grouped nodes in textobject queriesGokul Soumya2022-03-01
|
* Allow capturing multiple nodes in textobject queriesGokul Soumya2022-03-01
| | | | | | | | | | | | | | Treesitter captures can contain multiple nodes like so: ``` (line_comment)+ @comment ``` This would match each line in a comment as a separate `@comment` capture when what we actually want is the whole set of contiguous `line_comment` nodes to be captured under the `@comment` capture. This commit enables this behaviour.
* Implement bulk buffer closing commands (#1677)Daniel S Poulin2022-03-01
| | | | | | | | | | | | | | | | | | | | * Implement buffer-close-all * Implement buffer-close-others * Refactor all buffer close variants to use shared logic * Fix clippy lint * Docgen for new commands * Shorten error message for attempting to close buffers that don't exist * Refactor shared buffer methods to pass only editor, not whole compositor * Switch signature of bulk buffer closing to use slice of DocumentIds Addresses feedback that accepting an IntoIterator implementor is too much for an internal. Also possibly saves some moving?
* Highlight matching text in file picker suggestions (#1635)Ludwig Stecher2022-03-01
| | | | | | | * Highlight matching text in file picker suggestions * Remove cache, specialize highlighting code * Fix outdated comments
* Show infobox to hint textobjects with `mi` and `ma` (#1686)Daniel S Poulin2022-03-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Show infobox to hint textobjects with `mi` and `ma` * Add note to infobox than any pair of characters will work too The wording could probably be a little more clear, but I wanted to keep it short but still accurate. * Don't allocate a vec for the static help text * Fix bug where `mi<esc>` would swallow next input and persist infobox * Better help text for arbitrary pair matching in textobject selection * Add way to add fake pending key data below status, use with `mi`/`ma` This is a bit hacky as it makes use of global state which will end up managed in multiple places, but has precedent in the way autoinfo works. There should probably be a bigger refactor to handle this kind of state better. * Return early on anything other than `mi` and `ma` for autoinfo * Remove "ascii" from help text with `mi` and `ma` * Update helix-term/src/ui/editor.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Minor cleanup of file picker file gathering logic (#1683)Daniel S Poulin2022-03-01
| | | | | | | | | | | | | * Refactor file picker filetype filter logic to remove panic, make clearer An unwrap was unneccesarily present due to a prior contribution of mine which was before I had any understanding of error handling in Rust. I've also swapped a match for an if let, as was originally suggested in the original pull request adding filetype filtering, but was merged before I could address. * Add some comments to the file picker code for clarity * Switch to expect instead of ignoring type def error
* Bring configuration documentation up to date (missing editor.search section) ↵Philipp Mildenberger2022-03-01
| | | | (#1719)
* build(deps): bump smartstring from 0.2.10 to 1.0.0 (#1722)dependabot[bot]2022-03-01
| | | | | | | | | | | | | | | | | Bumps [smartstring](https://github.com/bodil/smartstring) from 0.2.10 to 1.0.0. - [Release notes](https://github.com/bodil/smartstring/releases) - [Changelog](https://github.com/bodil/smartstring/blob/master/CHANGELOG.md) - [Commits](https://github.com/bodil/smartstring/compare/v0.2.10...v1.0.0) --- updated-dependencies: - dependency-name: smartstring dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Implement LSP `workspace/configuration` and ↵Triton1712022-02-28
| | | | | | | | | | | | | `workspace/didChangeConfiguration` (#1684) * Implement LSP `workspace/configuration` request * Implement LSP `workspace/didChangeConfiguration` notification. * Simplify retrieval of LSP configuration * Implement suggestions from PR discussion Co-authored-by: Triton171 <triton0171@gmail.com>
* Show surround delete and replace errors in editor (#1709)Gokul Soumya2022-02-28
| | | | | * Refactor surround commands to use early returns * Show surround delete and replace errors in editor
* chore(theme): fix "ui.selection" for rose_pine themes (#1716)chunghha2022-02-28
|
* ignore Enter keypress when menu has no selection (#1704)Michael Davis2022-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ignore Enter keypress when menu has no selection supersedes #1622 Builds on the work in #1285. I want to allow Enter to create a newline when there is no selection in the autocomplete menu. This occurs somewhat often when using LSP autocomplete in Elixir which uses `do/end` blocks (and I set the autocomplete menu delay to 0 which exacerbates the problem): ```elixir defmodule MyModule do def do_foo(x) do x end def other_function(y) do| end ``` Here the cursor is `|` in insert mode. The LSP suggests `do_foo` but I want to create a newline. Hitting Enter currently closes the menu, so I end up having to hit Enter twice when the module contains any local with a `do` prefix, which can be inconsistent. With this change, we ignore the Enter keypress to end up creating the newline in this case. * pop compositor layer when ignoring Enter keypress * move closing function out of consumed event result closure * explicitly label close_fn as an 'Option<Callback>'
* Fix duplicate "ui.help" key. (#1713)Gregory Oakes2022-02-27
|
* fix: theme: bogster: Only primary selection had a cursor styleBlaž Hrastnik2022-02-25
|
* Work around a nix-direnv issueBlaž Hrastnik2022-02-25
| | | | https://github.com/nix-community/nix-direnv/issues/109
* Add an optimised release profileBlaž Hrastnik2022-02-25
|
* Alert if LSP is inactive when command is invoked (#1703)Gokul Soumya2022-02-25
|
* fix(commands): don't indent empty lines (#1653)Matouš Dzivjak2022-02-25
| | | | | | | | | | | | | * fix(commands): don't indent empty lines Fixes: https://github.com/helix-editor/helix/issues/1642 * Apply suggestions * Update helix-term/src/commands.rs * Update helix-term/src/commands.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Add support for HCL language (#1705)Michael Daffin2022-02-25
| | | Queries based on the neovims ones: https://github.com/nvim-treesitter/nvim-treesitter/tree/master/queries/hcl and modified for helix support.
* Configurable auto pairs (#1624)Skyler Hawthorne2022-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * impl auto pairs config Implements configuration for which pairs of tokens get auto completed. In order to help with this, the logic for when *not* to auto complete has been generalized from a specific hardcoded list of characters to simply testing if the next/prev char is alphanumeric. It is possible to configure a global list of pairs as well as at the language level. The language config will take precedence over the global config. * rename AutoPair -> Pair * clean up insert_char command * remove Rc * remove some explicit cloning with another impl * fix lint * review comments * global auto-pairs = false takes precedence over language settings * make clippy happy * print out editor config on startup * move auto pairs accessor into Document * rearrange auto pair doc comment * use pattern in Froms
* Fix 1.60 lintsBlaž Hrastnik2022-02-25
|
* Use which to resolve lsp/dap binariesBlaž Hrastnik2022-02-24
| | | | This resolves the following issue: https://github.com/helix-editor/helix/discussions/962#discussioncomment-1580046
* chore(theme): update markup styles for rose_pine themes (#1706)chunghha2022-02-24
|
* Add kotlin language (#1689)Michael Daffin2022-02-23
| | | | | | | | | | | | | | | | | | | | | * Add kotlin language Queries taken from https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/kotlin seem to work well enough for my needs though I don't use kotlin heavily. * Update lang-support doc * Updates the kotlin highlight query to use helixs scopes * Updates the queries from PR feedback * Adds 'shallow = true' to gitmodules * Removes kotlin locals.scm * Remove blank line Co-authored-by: Ivan Tham <pickfire@riseup.net> Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Close some popups automatically (#1285)Bram2022-02-23
| | | | | | | | | | | | | | | | | | | * Add Event::Used to use event callback without consuming * Close popup if contents ignored event * collect event results before executing callbacks * don't add new result variant, use Ignored(..) instead * break in match cases * Make auto_close configurable * fix merge * auto close hover popups * fix formatting
* Readme: fix typo (#1695)Arjun P2022-02-22
|
* build(deps): bump tokio from 1.16.1 to 1.17.0 (#1691)dependabot[bot]2022-02-22
| | | | | | | | | | | | | | | | Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.16.1 to 1.17.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.16.1...tokio-1.17.0) --- updated-dependencies: - dependency-name: tokio 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>
* build(deps): bump cc from 1.0.72 to 1.0.73 (#1693)dependabot[bot]2022-02-22
| | | | | | | | | | | | | | | | Bumps [cc](https://github.com/alexcrichton/cc-rs) from 1.0.72 to 1.0.73. - [Release notes](https://github.com/alexcrichton/cc-rs/releases) - [Commits](https://github.com/alexcrichton/cc-rs/compare/1.0.72...1.0.73) --- updated-dependencies: - dependency-name: cc 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 smartstring from 0.2.9 to 0.2.10 (#1692)dependabot[bot]2022-02-22
| | | | | | | | | | | | | | | | | Bumps [smartstring](https://github.com/bodil/smartstring) from 0.2.9 to 0.2.10. - [Release notes](https://github.com/bodil/smartstring/releases) - [Changelog](https://github.com/bodil/smartstring/blob/master/CHANGELOG.md) - [Commits](https://github.com/bodil/smartstring/compare/v0.2.9...v0.2.10) --- updated-dependencies: - dependency-name: smartstring 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 anyhow from 1.0.53 to 1.0.55 (#1690)dependabot[bot]2022-02-22
| | | | | | | | | | | | | | | | Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.53 to 1.0.55. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.53...1.0.55) --- updated-dependencies: - dependency-name: anyhow 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: ui: Markdown popups stopped taking vertical padding into accountBlaž Hrastnik2022-02-21
| | | | Fix #1688
* update markup styles for everforest theme (#1687)Alex2022-02-21
|
* Simplify some codeBlaž Hrastnik2022-02-21
|
* Allow separate styles for markup headings (#1618)Alex2022-02-21
| | | | | * update markdown highlighting to use separate heading themes * remove markdown theme scopes in ui
* Always ignore the .git directory in file picker (#1604)Daniel S Poulin2022-02-20
| | | | | Some users (including myself) want to turn off filtering of files prefixed with `.`, as they are often useful to edit. For example, `.env` files, configuration for linters `.eslint.json` and the like.
* ui: prompt: Render aliases + border on the docBlaž Hrastnik2022-02-20
|
* fix: Allow multi-line prompt documentationBlaž Hrastnik2022-02-20
|
* Extract a lsp position helperBlaž Hrastnik2022-02-18
|
* Extract some duplication in lsp goto_ callsBlaž Hrastnik2022-02-18
|
* Extract jump_to_locationBlaž Hrastnik2022-02-18
|
* Extract a common "language server or return" macroBlaž Hrastnik2022-02-18
|
* Extract a helper function for lsp::LocationBlaž Hrastnik2022-02-18
|
* Move most LSP specific commmands to commands::lspBlaž Hrastnik2022-02-18
|
* dap: fix runInTerminal with lldb-vscodeBlaž Hrastnik2022-02-18
|
* Refactor symbol picker to share codeBlaž Hrastnik2022-02-18
|
* filter git revision on git command success exit code (#1674)Michael Davis2022-02-18
| | | | | | | | | | | | | | The unwrap (or '.ok()' rather) triggers for some errors but not negative status codes. In the case where helix is being packaged in an empty git repository, the existing mechanism will fail because git init git rev-parse HEAD gives a negative exit code and prints to stderr stderr: "fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.... with a stdout of "HEAD\n" (too short to slice with [..8]).
* Fix bug when launching hx file.rs:10 (#1676)tomKPZ2022-02-18
|
* feat(commands): command palette (#1400)Matouš Dzivjak2022-02-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(commands): command palette Add new command to display command pallete that can be used to discover and execute available commands. Fixes: https://github.com/helix-editor/helix/issues/559 * Make picker take the whole context, not just editor * Bind command pallete * Typable commands also in the palette * Show key bindings for commands * Fix tests, small refactor * Refactor keymap mapping, fix typo * Ignore sequence key bindings for now * Apply suggestions * Fix lint issues in tests * Fix after rebase Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Manually recalculate initial completion where it mattersBlaž Hrastnik2022-02-17
|