aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* add tree-sitter sources to languages.tomlMichael Davis2022-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | Here we add syntax to the languages.toml languge [[grammar]] name = "<name>" source = { .. } Which can be used to specify a tree-sitter grammar separately of the language that defines it, and we make this distinction for two reasons: * In later commits, we will separate this code from helix-core and bring it to a new helix-loader crate. Using separate schemas for language and grammar configurations allows for a nice divide between the types needed to be declared in helix-loader and in helix-core/syntax * Two different languages may use the same grammar. This is currently the case with llvm-mir-yaml and yaml. We could accomplish a config that works for this with just `[[languages]]`, but it gets a bit dicey with languages depending on one another. If you enable llvm-mir-yaml and disable yaml, does helix still need to fetch and build tree-sitter-yaml? It could be a matter of interpretation.
* remove all submodulesMichael Davis2022-03-10
| | | | | | | | | | | | | | | | | | | | | | | The submodules system is being replaced with a command-line flag hx --fetch-grammars Which shallow-clones grammar repositories at the given revision and hx --build-grammars For building grammars separate of the initial compilation of helix. Why remove submodules? * Cloning helix in general takes a long time because of the submodules, especially when the submodules are not fetched as shallow * Packaging is consistently painful no matter the package-manager * It is quite difficult to devise a scheme where users can declare a desired set of grammars and implement it with submodules This commit fully removes the existing tree-sitter submodules from the tree (as well as the .gitmodules file which is no longer used).
* Add --edit-config flag to directly open config.toml (#1771)Joe2022-03-09
| | | Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* Update architecture.md (#1750)Daniel S Poulin2022-03-09
| | | | | | | * Update architecture.md Adds some more details on how views work. * Add additional architecture discussion from matrix, written by @sudormrfbin
* Fix bug in LSP when creating a file in a folder that does not exist (#1775)Emil Fresk2022-03-08
|
* Add --health command for troubleshooting (#1669)Gokul Soumya2022-03-08
| | | | | | | | | | | | | | | * Move runtime file location definitions to core * Add basic --health command * Add language specific --health * Show summary for all langs with bare --health * Use TsFeature from xtask for --health * cargo fmt Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* use latest nix-cargo-integration which depends on dream2nix (#1758)Michael Davis2022-03-08
| | | | | | | | https://github.com/nix-community/dream2nix is a fairly new and cool-looking project for adapting upstream package manager outputs (lockfiles mostly it would seem) for nix. This should improve the ability to cross-compile. As a more concrete measure of improvement, `nix flake check' now succeeds 🎉
* Add arrow key mappings for tree-sitter parent/child/sibling nav (#1724)Daniel S Poulin2022-03-08
| | | | | | | | | * Add arrow key mappings for tree-sitter parent/child/sibling nav This helps my use case, where I use a non-qwerty layout with a programmable mechanical keyboard, and use a layer switching key (think fn) to send left down up right from the traditional hjkl positions. * Add new bindings to docs
* Allow highlighting additional spans in md rendererGokul Soumya2022-03-08
|
* Extract markdown code block highlighting functionGokul Soumya2022-03-08
|
* Bump dependenciesBlaž Hrastnik2022-03-08
|
* build(deps): bump tree-sitter from 0.20.4 to 0.20.5 (#1770)dependabot[bot]2022-03-08
| | | | | | | | | | | | | | | | Bumps [tree-sitter](https://github.com/tree-sitter/tree-sitter) from 0.20.4 to 0.20.5. - [Release notes](https://github.com/tree-sitter/tree-sitter/releases) - [Commits](https://github.com/tree-sitter/tree-sitter/compare/v0.20.4...v0.20.5) --- updated-dependencies: - dependency-name: tree-sitter 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 once_cell from 1.9.0 to 1.10.0 (#1768)dependabot[bot]2022-03-08
| | | | | | | | | | | | | | | | | Bumps [once_cell](https://github.com/matklad/once_cell) from 1.9.0 to 1.10.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.9.0...v1.10.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>
* build(deps): bump actions/checkout from 2 to 3 (#1767)dependabot[bot]2022-03-08
| | | | | | | | | | | | | | | | | Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout 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>
* build(deps): bump actions/upload-artifact from 2.3.1 to 3 (#1766)dependabot[bot]2022-03-08
| | | | | | | | | | | | | | | | Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2.3.1 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2.3.1...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact 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>
* Change parameter object keybind from `p` to `a` (#1708)Gokul Soumya2022-03-07
| | | | This is largely to avoid a collision with the soon to be merged paragraph object which takes up the p key.
* Add helix-term as default-membersBlaž Hrastnik2022-03-07
|
* Split out typable commands into a separate fileBlaž Hrastnik2022-03-07
|
* Add comment textobject for surround selection and navigation (#1605)Daniel S Poulin2022-03-06
|
* chore(theme): apply renamed infobox theme scopes for rose_pine themes (#1754)chunghha2022-03-05
|
* update helix-syntax revision in flake.nix (#1747)Michael Davis2022-03-05
| | | | | | | | | | | | | | | | | closes #1746 The queries for Go were updated in ddbf03613d5a3dd64f3f5ba13795e70c29297837. The old ref was before this commit, so running helix from the flake nix flake run github:helix-editor/helix/d62ad8b595a4f901b9c5dba1bb6e8f70ece395bf -- path/to/file.go will crash because the old grammar's query analysis will fail (because `iota` was not yet a named node). This commit updates the version of the grammars that we pull down when building the flake so that the queries match the grammars. We'll have to do an update like this whenever a grammar is bumped in a breaking way (which happens fairly often in tree-sitter) until #1659 comes along and the version of the grammar becomes tied to the version declared in source.
* fix: text_pos_at_screen_coords testsBlaž Hrastnik2022-03-04
|
* Fix tab rendering to use dynamic tab widthBlaž Hrastnik2022-03-04
| | | | | | Each tab is just wide enough to round to the nearest tab stop. Refs #1243
* Remove TODO.mdBlaž Hrastnik2022-03-04
| | | | | | | The file predates open-sourcing and we managed to implement most of it by now. The remaining features have tracking issues. Fixes #1155
* Reuse visual_coords_at_pos function in viewBlaž Hrastnik2022-03-04
|
* Fallback to broader scope if theme scope not found (#1714)Gokul Soumya2022-03-04
|
* Rename infobox theme scopes (#1741)Gokul Soumya2022-03-04
| | | This makes it play nicely with https://github.com/helix-editor/helix/pull/1714
* minor: Remove some outdated commentsBlaž Hrastnik2022-03-03
|
* Extract a common function for paste_before/_afterBlaž Hrastnik2022-03-03
|
* core: transaction: Resolve some TODOsBlaž Hrastnik2022-03-03
|
* Simplify get_clipboard_provider by defining one per hostBlaž Hrastnik2022-03-03
|
* Extract idle timeout code into ui/editor.rsBlaž Hrastnik2022-03-03
|
* Picker performance improvementsBlaž Hrastnik2022-03-03
|
* Add `inputs.nixpkgs.follows` to `rust-overlay` in `flake.nix` (#1729)Erin Kim2022-03-03
| | | | | * add `inputs.nixpkgs.follows` to `rust-overlay` * Update flake.lock
* Refactor align_selection by simplifying the calculationBlaž Hrastnik2022-03-03
|
* refactor align_selection using kakoune logicBob Qi2022-03-03
|
* Fix bug with auto replacing components in compositor (#1711)Gokul Soumya2022-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix bug with auto replacing components in compositor This was last known to be working with 5995568c at the time of commit, but now doesn't work with latest rust stable. The issue probably stems from using std::any::type_name() for finding a component in the compositor, for which the docs explicitly warn against considering it as a unique identifier for types. `replace_or_push()` takes a boxed `Component` and passes it to `find_id()` which compares this with a bare Component. `type_name()` returns `Box<T>` for the former and `T` for latter and we have a false negative. This has been solved by using a generics instead of trait objects to pass in a `T: Component` and then use it for comparison. I'm not exactly sure how this worked fine at the time of commit of 5995568c; maybe the internal implementation of `type_name()` changed to properly indicate indirection with Box. * Do not compare by type name in compositor find_id
* Fix cachix.yml definitionBlaž Hrastnik2022-03-02
|
* add workflow for pushing nix flake artifacts to Cachix (#1721)Michael Davis2022-03-02
| | | | | | | | | * add workflow for pushing nix flake artifacts to Cachix * add docs on using the cachix cache from nix * remove submodule clone from cachix workflow * remove flake check
* Add terraform lsp support (#1726)Michael Daffin2022-03-01
| | | Using terraform-ls and enables auto-formate support. Also adds tfvars as an extra filetype.
* Add jumplist support for the search (closes #1625) (#1718)Philipp Mildenberger2022-03-01
|
* 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>