Commit Graph

387 Commits (a1228e0aa1757e5c15da18be4ff2920c93454eec)

Author SHA1 Message Date
Gokul Soumya 4ee92cad19
Add treesitter textobjects (#728)
* Add treesitter textobject queries

Only for Go, Python and Rust for now.

* Add tree-sitter textobjects

Only has functions and class objects as of now.

* Fix tests

* Add docs for tree-sitter textobjects

* Add guide for creating new textobject queries

* Add parameter textobject

Only parameter.inside is implemented now, parameter.around
will probably require custom predicates akin to nvim' `make-range`
since we want to select a trailing comma too (a comma will be
an anonymous node and matching against them doesn't work similar
to named nodes)

* Simplify TextObject cell init
3 years ago
Blaž Hrastnik 182a59b552 Update to rust 1.56 + 2021 edition 3 years ago
Michael Davis 1766bdb9d4
clean up combined-injections comment (#880) 3 years ago
Ivan Tham 4260b31ec0
Update mdbook style and fix unreadable table head (#806)
The styles are now pulled from upstream styles, some of the changes I
submitted it back to upstream.

Fix #796
3 years ago
Midnight Exigent eedcea7e6b
Allow `language.config` (in languages.toml) to be passed in as a toml object (#807)
* allow language.config (in languages.toml) to be passed in as a toml object

* Change config field for languages from json string to toml object

* remove indents on languages.toml config

* fix: remove patch version from serde_json import in helix-core

* Use same tree-sitter-zig as upstream/master
3 years ago
dependabot[bot] 8925fdd6f3
build(deps): bump smallvec from 1.6.1 to 1.7.0 (#813)
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.6.1...v1.7.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>
3 years ago
dependabot[bot] 97b24fd91e
build(deps): bump similar from 2.0.0 to 2.1.0 (#812)
Bumps [similar](https://github.com/mitsuhiko/similar) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/mitsuhiko/similar/releases)
- [Changelog](https://github.com/mitsuhiko/similar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mitsuhiko/similar/compare/2.0.0...2.1.0)

---
updated-dependencies:
- dependency-name: similar
  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>
3 years ago
Blaž Hrastnik 2e0803c8d9 Implement 'remove_primary_selection' as Alt-,
This allows removing search matches from the selection

Fixes #713
3 years ago
Blaž Hrastnik 64e8f0017c ... 3 years ago
Blaž Hrastnik d8b94ba85f Fix broken test 3 years ago
Blaž Hrastnik dd0b15e1f1 syntax: Properly handle injection-regex for language injections 3 years ago
dependabot[bot] 51b7f40da1
build(deps): bump similar from 1.3.0 to 2.0.0 (#754)
Bumps [similar](https://github.com/mitsuhiko/similar) from 1.3.0 to 2.0.0.
- [Release notes](https://github.com/mitsuhiko/similar/releases)
- [Changelog](https://github.com/mitsuhiko/similar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mitsuhiko/similar/compare/1.3.0...2.0.0)

---
updated-dependencies:
- dependency-name: similar
  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>
3 years ago
Blaž Hrastnik 066367c0a4 fix: Need to reset set_byte_range in case cursor_ref is reused. 3 years ago
Blaž Hrastnik 4ac29434cb syntax: Add go & rust locals, improve tree-sitter error message 3 years ago
Blaž Hrastnik 585e3ce830 fix: tree-sitter-scopes would infinitely loop 3 years ago
Blaž Hrastnik 3cb95be452 Update tree-sitter to 0.20
0.20 includes querying improvements, we no longer have to convert
fragments to strings but can return an iterator of chunks instead.
3 years ago
Brian Shu fa4caf7e3d remove unsafe 3 years ago
Yusuf Bera Ertan dc57f8dc89
feat: merge default languages.toml with user provided languages.toml, add a generic TOML value merge function (#654)
* feat: merge default languages.toml with user provided languages.toml

* refactor: use catch-all to override all other values for merge toml

* tests: add a test case for merging languages configs

* refactor: change test module name
3 years ago
Blaž Hrastnik 68bf9fdf02 Fix tests broken by the State change 3 years ago
Blaž Hrastnik 9d4c301563 Reduce State use a bit further
This is a legacy type that should be fully removed.
3 years ago
Kirawi b99db7c687
Move path util functions from helix-term to helix-core (#650) 3 years ago
langbamit 36095326d0
Fix auto pairs return wrong selection (#613) 3 years ago
Cor Peters ac3c1719c9
Fixes crash on empty rust file. (#592)
Fixes #591

Co-authored-by: Cor Peters <luctius@gmail.com>
3 years ago
Blaž Hrastnik 1caedc18ca Release v0.4.1 3 years ago
Blaž Hrastnik b635e35818 Appease clippy 3 years ago
Blaž Hrastnik fd1eaafff5 Add :tree-sitter-scopes, useful when developing indents.toml 3 years ago
Blaž Hrastnik 7c834d6506 fix: tree sitter rendering glitches with multiple selection edits 3 years ago
Blaž Hrastnik 3de40de0a9 fix build... 3 years ago
Blaž Hrastnik 733ee06b7b Release v0.4.0 3 years ago
Nathan Vegdahl b5223618ed Document `pos_at_coords` better.
Particularly the effect of the `limit_before_line_ending`
parameter.
3 years ago
Nathan Vegdahl 953125d3f3
Fix around-word text-object selection. (#546)
* Fix around-word text-object selection.

* Text object around-word: select to the left if no whitespace on the right.

Also only select around when there's whitespace at all.

* Make select-word-around select all white space on a side.

* Update commented-out test case.

* Fix unused import warning from rebase.
3 years ago
Nathan Vegdahl c9cbc344fc Fix buggy surround behavior from #376.
Fixes #543.
3 years ago
Blaž Hrastnik 62eb8c6b40 mouse: Remove verify_screen_coords, refactor primary selection modification 3 years ago
Blaž Hrastnik 0fdb626c2c Remove embed_runtime feature
It's no longer practical to maintain. Closes #451
3 years ago
Nathan Vegdahl f88d4c1e20 Move indent-style code into `helix_core::indent`. 3 years ago
Nathan Vegdahl 3fda350494 Fixes for new clippy lints in Rust 1.54. 3 years ago
Nathan Vegdahl cd7302ffd3 Enforce cursor/selection invariants in one place.
Rather than per-command like before.
3 years ago
Nathan Vegdahl aead4e69a6 Minor cleanup of the vertical movement code. 3 years ago
Nathan Vegdahl 84f8167fd1 Use `match` for branching on the `Direction` enum in more places. 3 years ago
Nathan Vegdahl 5229c5387f Add unit tests for some of the new `Range` methods. 3 years ago
Nathan Vegdahl b2c76dc627 Improve `Range` documentation and organization. 3 years ago
Nathan Vegdahl f62ec6e51e Merge branch 'master' into great_line_ending_and_cursor_range_cleanup 3 years ago
Nathan Vegdahl 5ee6ba5b38 Address some PR comments. 3 years ago
Nathan Vegdahl 0883b4fae0 Collect some common patterns into methods on `Range`. 3 years ago
Ivan Tham f7c8500797 Fix append newline indent
Fix #492
3 years ago
Blaž Hrastnik 63e54e30a7 Implement in-memory prompt history
Implementation is similar to kakoune: we store the entries into
a register.
3 years ago
Omnikar 112ae5cffe
Determine whether to use a margin of 0 or 1 when uncommenting (#476)
* Implement `margin` calculation for uncommenting

* Move `margin` calculation to `find_line_comment`

* Fix comment bug with multiple selections on a line

* Fix `find_line_comment` test for new return type

* Generate a single vec of lines for comment toggle

`toggle_line_comments` collects the lines covered by all selections into
a `Vec`, skipping duplicates. `find_line_comment` now returns the lines
to operate on, instead of returning the lines to skip.

* Fix test for `find_line_comment`

* Reserve length of `to_change` instead of `lines`

The length of `lines` includes blank lines which will be skipped, and as
such do not need space for a change reserved for them. `to_change`
includes only the lines which will be changed.

* Use `token.chars().count()` for token char length

* Create `changes` with capacity instead of reserving

* Remove unnecessary clones in `test_find_line_comment`

* Add test case for 0 margin comments

* Add comments explaining `find_line_comment`
3 years ago
Nathan Vegdahl f96b8b769b Switch to a cleaner range-head moving abstraction.
Also fix a bunch of bugs related to it.
3 years ago
Nathan Vegdahl 43594049dd Merge branch 'master' into great_line_ending_and_cursor_range_cleanup 3 years ago
Nathan Vegdahl ad814b8c2e Fix append mode, and make insertion always happen at head of range. 3 years ago