Pascal Kuthe
c8c0d04168
add snippet system to helix core
2024-12-17 13:34:39 -05:00
Pascal Kuthe
db959274d4
Add range type to helix stdx
2024-12-17 13:34:39 -05:00
Kieran Moy
e670970dd8
Change default comment token to # for unrecognized files ( #12080 )
...
* Change the default comment token
* update test
* keep the original
2024-12-05 01:11:39 +01:00
Michael Davis
191b0f08a9
Remove unnecessary clippy allow for old false positive
...
The clippy version after the recent MSRV bump no longer emits
`redundant_clone` warnings for these lines. We allowed these previously
since they were emitted as false positives.
2024-12-02 09:23:42 -05:00
RoloEdits
5ba97ba41e
fix(clippy): clippy 1.83 lints ( #12150 )
2024-12-02 08:23:32 -06:00
dependabot[bot]
80709cee61
build(deps): bump the rust-dependencies group with 4 updates ( #12129 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-25 18:06:54 -06:00
Philipp Mildenberger
dc941d6d24
Add support for path completion ( #2608 )
...
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
Co-authored-by: Pascal Kuthe <pascalkuthe@pm.me>
2024-11-21 21:12:36 -06:00
spx01
6101b3a7a3
fix: simplify text reflowing strategy to improve language compatibility ( #12048 )
2024-11-20 16:40:43 -06:00
dependabot[bot]
a219d5aabb
build(deps): bump unicode-general-category from 0.6.0 to 1.0.0 ( #12089 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-20 11:41:07 -06:00
dependabot[bot]
b5d56e57a6
build(deps): bump the rust-dependencies group across 1 directory with 11 updates
...
Bumps the rust-dependencies group with 10 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [regex](https://github.com/rust-lang/regex ) | `1.11.0` | `1.11.1` |
| [url](https://github.com/servo/rust-url ) | `2.5.2` | `2.5.3` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.210` | `1.0.215` |
| [encoding_rs](https://github.com/hsivonen/encoding_rs ) | `0.8.34` | `0.8.35` |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.90` | `1.0.93` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.13.0` | `3.14.0` |
| [tokio](https://github.com/tokio-rs/tokio ) | `1.40.0` | `1.41.1` |
| [libc](https://github.com/rust-lang/libc ) | `0.2.161` | `0.2.162` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.1.31` | `1.1.37` |
| [gix](https://github.com/GitoxideLabs/gitoxide ) | `0.66.0` | `0.67.0` |
Updates `regex` from 1.11.0 to 1.11.1
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.11.0...1.11.1 )
Updates `url` from 2.5.2 to 2.5.3
- [Release notes](https://github.com/servo/rust-url/releases )
- [Commits](https://github.com/servo/rust-url/compare/v2.5.2...v2.5.3 )
Updates `serde` from 1.0.210 to 1.0.215
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.210...v1.0.215 )
Updates `encoding_rs` from 0.8.34 to 0.8.35
- [Commits](https://github.com/hsivonen/encoding_rs/compare/v0.8.34...v0.8.35 )
Updates `anyhow` from 1.0.90 to 1.0.93
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.90...1.0.93 )
Updates `tempfile` from 3.13.0 to 3.14.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.13.0...v3.14.0 )
Updates `tokio` from 1.40.0 to 1.41.1
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.40.0...tokio-1.41.1 )
Updates `libc` from 0.2.161 to 0.2.162
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.162/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.161...0.2.162 )
Updates `rustix` from 0.38.37 to 0.38.40
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Changelog](https://github.com/bytecodealliance/rustix/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.37...v0.38.40 )
Updates `cc` from 1.1.31 to 1.1.37
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.31...cc-v1.1.37 )
Updates `gix` from 0.66.0 to 0.67.0
- [Release notes](https://github.com/GitoxideLabs/gitoxide/releases )
- [Changelog](https://github.com/GitoxideLabs/gitoxide/blob/main/CHANGELOG.md )
- [Commits](https://github.com/GitoxideLabs/gitoxide/compare/gix-v0.66.0...gix-v0.67.0 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: url
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: encoding_rs
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: rustix
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: gix
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-11-13 15:30:17 +09:00
TornaxO7
be2884d800
Continue line comments ( #10996 )
2024-10-19 05:48:07 -04:00
Pascal Kuthe
162028d444
Merge pull request #11486 from helix-editor/lsp-location-refactor
...
Replace uses of `lsp::Location` with a custom Location type
2024-10-04 03:33:35 +02:00
dependabot[bot]
cb9307bb03
build(deps): bump the rust-dependencies group with 5 updates ( #11805 )
...
Bumps the rust-dependencies group with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [once_cell](https://github.com/matklad/once_cell ) | `1.19.0` | `1.20.1` |
| [regex](https://github.com/rust-lang/regex ) | `1.10.6` | `1.11.0` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.12.0` | `3.13.0` |
| [libc](https://github.com/rust-lang/libc ) | `0.2.158` | `0.2.159` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.1.21` | `1.1.23` |
Updates `once_cell` from 1.19.0 to 1.20.1
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.19.0...v1.20.1 )
Updates `regex` from 1.10.6 to 1.11.0
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.10.6...1.11.0 )
Updates `tempfile` from 3.12.0 to 3.13.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.12.0...v3.13.0 )
Updates `libc` from 0.2.158 to 0.2.159
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.159/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.158...0.2.159 )
Updates `cc` from 1.1.21 to 1.1.23
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.21...cc-v1.1.23 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: tempfile
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-01 10:05:07 +09:00
chtenb
8cdce9212c
Improve tree-sitter-subtree ( #11663 )
...
* Make unnamed nodes visible in subtree view
* Refine command description
* Update generated docs
* Update unit test expected output
2024-09-30 10:59:31 +09:00
dependabot[bot]
c754949454
build(deps): bump the rust-dependencies group with 4 updates ( #11712 )
...
Bumps the rust-dependencies group with 4 updates: [unicode-segmentation](https://github.com/unicode-rs/unicode-segmentation ), [anyhow](https://github.com/dtolnay/anyhow ), [rustix](https://github.com/bytecodealliance/rustix ) and [cc](https://github.com/rust-lang/cc-rs ).
Updates `unicode-segmentation` from 1.11.0 to 1.12.0
- [Commits](https://github.com/unicode-rs/unicode-segmentation/compare/v1.11.0...v1.12.0 )
Updates `anyhow` from 1.0.87 to 1.0.89
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.87...1.0.89 )
Updates `rustix` from 0.38.36 to 0.38.37
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Changelog](https://github.com/bytecodealliance/rustix/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.36...v0.38.37 )
Updates `cc` from 1.1.18 to 1.1.19
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.18...cc-v1.1.19 )
---
updated-dependencies:
- dependency-name: unicode-segmentation
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: rustix
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-17 11:32:26 +09:00
dependabot[bot]
237cbe4bca
build(deps): bump the rust-dependencies group with 4 updates ( #11669 )
...
Bumps the rust-dependencies group with 4 updates: [globset](https://github.com/BurntSushi/ripgrep ), [ignore](https://github.com/BurntSushi/ripgrep ), [grep-regex](https://github.com/BurntSushi/ripgrep ) and [grep-searcher](https://github.com/BurntSushi/ripgrep ).
Updates `globset` from 0.4.14 to 0.4.15
- [Release notes](https://github.com/BurntSushi/ripgrep/releases )
- [Changelog](https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BurntSushi/ripgrep/compare/globset-0.4.14...ignore-0.4.15 )
Updates `ignore` from 0.4.22 to 0.4.23
- [Release notes](https://github.com/BurntSushi/ripgrep/releases )
- [Changelog](https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BurntSushi/ripgrep/commits )
Updates `grep-regex` from 0.1.12 to 0.1.13
- [Release notes](https://github.com/BurntSushi/ripgrep/releases )
- [Changelog](https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BurntSushi/ripgrep/compare/grep-regex-0.1.12...0.1.13 )
Updates `grep-searcher` from 0.1.13 to 0.1.14
- [Release notes](https://github.com/BurntSushi/ripgrep/releases )
- [Changelog](https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BurntSushi/ripgrep/compare/grep-searcher-0.1.13...0.1.14 )
---
updated-dependencies:
- dependency-name: globset
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: ignore
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: grep-regex
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: grep-searcher
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-10 22:59:03 +09:00
Michael Davis
da2b0a7484
Make helix_core::Uri cheap to clone
...
We clone this type very often in LSP pickers, for example diagnostics
and symbols. We can use a single Arc in many cases to avoid the
unnecessary clones.
2024-09-03 09:50:31 -04:00
Michael Davis
606b957172
Replace uses of lsp::Location with a custom Location type
...
The lsp location type has the lsp's URI type and a range. We can replace
that with a custom type private to the lsp commands module that uses the
core URI type instead.
We can't entirely replace the type with a new Location type in core.
That type might look like:
pub struct Location {
uri: crate::Uri,
range: crate::Range,
}
But we can't convert every `lsp::Location` to this type because for
definitions, references and diagnostics language servers send documents
which we haven't opened yet, so we don't have the information to convert
an `lsp::Range` (line+col) to a `helix_core::Range` (char indexing).
This cleans up the picker definitions in this file so that they can all
use helpers like `jump_to_location` and `location_to_file_location` for
the picker preview. It also removes the only use of the deprecated
`PathOrId::from_path_buf` function, allowing us to drop the owned
variant of that type in the child commit.
2024-09-03 09:48:32 -04:00
Pascal Kuthe
e604d9f8e0
keep (cursor) position when exactly replacing text ( #5930 )
...
Whenever a document is changed helix maps various positions like the
cursor or diagnostics through the `ChangeSet` applied to the document.
Currently, this mapping handles replacements as follows:
* Move position to the left for `Assoc::Before` (start of selection)
* Move position to the right for `Assoc::After` (end of selection)
However, when text is exactly replaced this can produce weird results
where the cursor is moved when it shouldn't. For example if `foo` is
selected and a separate cursor is placed on each character (`s.<ret>`)
and the text is replaced (for example `rx`) then the cursors are moved
to the side instead of remaining in place.
This change adds a special case to the mapping code of replacements:
If the deleted and inserted text have the same (char) length then
the position is returned as if the replacement doesn't exist.
only keep selections invariant under replacement
Keeping selections unchanged if they are inside an exact replacement
is intuitive. However, for diagnostics this is not desirable as
helix would otherwise fail to remove diagnostics if replacing parts
of the document.
2024-08-10 00:40:34 +09:00
Jefta
518425e055
Add commands for movement by subwords ( #8147 )
...
* Allow moving by subword
* Add tests for subword movement
2024-08-08 13:57:59 -05:00
RoloEdits
86aecc96a1
chore: clean up clippy lints ( #11377 )
...
Using clippy 1.80.0. Also cleans up some that were windows only.
2024-08-01 06:39:46 +09:00
Michael Davis
22c1a40725
Fix finding injection layer in tree cursor with nested layers ( #11365 )
...
The `take_while` should limit the layers to those that can match the
input range so we don't always scan the entire `injection_layers`. We
can limit `depth == 1` layers to those that start before the search
`end`. Deeper layers overlap with shallower layers though so we need
to allow those layers as well in the `take_while`.
For example
```vue
<script setup lang="ts">
const foo = 'bar'.match(/foo/);
const bar = foo;
</script>
```
L2 and L3 are a typescript layer and the `/foo/` part is a small regex
layer. If you used `A-o` before the regex layer you would select the
entire typescript layer. The search in `layer_id_containing_byte_range`
would not consider the typescript layer since the regex layer comes
earlier in `injection_ranges` and that layer's start is after `end`.
The regex layer has a depth of `2` though so the change in this commit
allows scanning through that layer.
Co-authored-by: Pascal Kuthe <pascalkuthe@pm.me>
2024-07-31 05:29:31 +09:00
dependabot[bot]
ce809fb9ef
build(deps): bump the rust-dependencies group with 6 updates ( #11371 )
2024-07-29 21:10:47 -05:00
RoloEdits
6eae846197
feat(languages): update `just` grammar and queries ( #11306 )
...
* feat(languages): update `just` grammar and queries
Bump the
* refactor(syntax): inject shebang by id not name
---------
Co-authored-by: Trevor Gross <tmgross@umich.edu>
2024-07-28 15:54:10 +02:00
Pascal Kuthe
30fb63cc3d
Update helix-core/Cargo.toml
...
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-07-28 03:29:52 +01:00
Pascal Kuthe
2824e692a7
lock unicode width
...
Cargo automatically pumbs the patch version when installed with `cargo install`
without the locked flag which creates weird rendering artifacts
2024-07-28 03:29:52 +01:00
Pascal Kuthe
d8a115641d
fix scrolling/movement for multiline virtual text
2024-07-15 16:35:31 +02:00
Pascal Kuthe
a17b008b42
ignore empty virtual text layers
2024-07-15 16:35:31 +02:00
Pascal Kuthe
6d051d7084
render diagnostic inline
2024-07-15 16:35:30 +02:00
Pascal Kuthe
839f4d758d
fix typo in doc_formatter.rs
2024-07-15 16:35:30 +02:00
Pascal Kuthe
9a93240d27
correctly wrap at text-width
2024-07-15 16:34:14 +02:00
Pascal Kuthe
4c7cdb8fea
Improve line annotation API
...
The line annotation as implemented in #5420 had two shortcomings:
* It required the height of virtual text lines to be known ahead time
* It checked for line anchors at every grapheme
The first problem made the API impractical to use in practice because
almost all virtual text needs to be softwrapped. For example inline
diagnostics should be softwrapped to avoid cutting off the diagnostic
message (as no scrolling is possible). While more complex virtual text
like side by side diffs must dynamically calculate the number of empty
lines two align two documents (which requires taking account both
softwrap and virtual text). To address this, the API has been
refactored to use a trait.
The second issue caused some performance overhead and unnecessarily
complicated the `DocumentFormatter`. It was addressed by only calling
the trait mentioned above at line breaks (instead of always). This
allows offers additional flexibility to annotations as it offers
the flexibility to align lines (needed for side by side diffs).
2024-07-15 16:34:14 +02:00
Pascal Kuthe
e15626a00a
track char_idx in DocFormatter
2024-07-15 16:34:13 +02:00
Pascal Kuthe
22dfad605a
implement Add/Sub for position
...
being able to add/subtract positions is very handy when writing rendering code
2024-07-15 16:34:10 +02:00
Michael Davis
f4a433f855
Convert LSP URIs into custom URIs
...
This introduces a custom URI type in core meant to be extended later
if we want to support other schemes. For now it's just a wrapper over a
PathBuf. We use this new URI type to firewall `lsp::Url`. This was
previously done in 8141a4a
but using a custom URI type is more flexible
and will improve the way Pickers handle paths for previews in the child
commit(s).
Co-authored-by: soqb <cb.setho@gmail.com>
2024-07-15 09:31:33 -04:00
Michael Davis
11f809c177
Bump nucleo to v0.4.1
...
We will use this in the child commit to improve the picker's running
indicator. Nucleo 0.4.0 includes an `active_injectors` member that we
can use to detect if anything can push to the picker. When that count
drops to zero we can remove the running indicator.
Nucleo 0.4.1 contains a fix for crashes with interactive global search
on a large directory.
2024-07-15 09:31:32 -04:00
dependabot[bot]
348c0ebeb4
build(deps): bump the rust-dependencies group with 5 updates ( #11113 )
...
Bumps the rust-dependencies group with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [serde](https://github.com/serde-rs/serde ) | `1.0.203` | `1.0.204` |
| [imara-diff](https://github.com/pascalkuthe/imara-diff ) | `0.1.5` | `0.1.6` |
| [clipboard-win](https://github.com/DoumanAsh/clipboard-win ) | `5.3.1` | `5.4.0` |
| [open](https://github.com/Byron/open-rs ) | `5.1.4` | `5.2.0` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.0.104` | `1.0.106` |
Updates `serde` from 1.0.203 to 1.0.204
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.203...v1.0.204 )
Updates `imara-diff` from 0.1.5 to 0.1.6
- [Release notes](https://github.com/pascalkuthe/imara-diff/releases )
- [Changelog](https://github.com/pascalkuthe/imara-diff/blob/master/CHANGELOG.md )
- [Commits](https://github.com/pascalkuthe/imara-diff/compare/v0.1.5...v0.1.6 )
Updates `clipboard-win` from 5.3.1 to 5.4.0
- [Commits](https://github.com/DoumanAsh/clipboard-win/commits )
Updates `open` from 5.1.4 to 5.2.0
- [Release notes](https://github.com/Byron/open-rs/releases )
- [Changelog](https://github.com/Byron/open-rs/blob/main/changelog.md )
- [Commits](https://github.com/Byron/open-rs/compare/v5.1.4...v5.2.0 )
Updates `cc` from 1.0.104 to 1.0.106
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.0.104...cc-v1.0.106 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: imara-diff
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: clipboard-win
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: open
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-09 19:40:22 +09:00
Matt Armstrong
8b7c33d00d
Minor improvements to comments in selection.rs ( #11101 )
2024-07-07 02:40:23 +09:00
dependabot[bot]
b05ed9bf85
build(deps): bump the rust-dependencies group with 4 updates ( #11032 )
...
Bumps the rust-dependencies group with 4 updates: [bitflags](https://github.com/bitflags/bitflags ), [url](https://github.com/servo/rust-url ), [cc](https://github.com/rust-lang/cc-rs ) and [libloading](https://github.com/nagisa/rust_libloading ).
Updates `bitflags` from 2.5.0 to 2.6.0
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/2.5.0...2.6.0 )
Updates `url` from 2.5.1 to 2.5.2
- [Release notes](https://github.com/servo/rust-url/releases )
- [Commits](https://github.com/servo/rust-url/compare/v2.5.1...v2.5.2 )
Updates `cc` from 1.0.99 to 1.0.100
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/1.0.99...cc-v1.0.100 )
Updates `libloading` from 0.8.3 to 0.8.4
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.3...0.8.4 )
---
updated-dependencies:
- dependency-name: bitflags
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: url
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: libloading
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-25 23:22:20 +09:00
Michael Davis
44e113cb76
tree-sitter: Update parent links on reused injection layers ( #10978 )
...
When parsing injections, we skip adding a new layer if there is an
existing layer covering the same range. When doing so we did not update
the parent layer ID, so some layers could have `parent` layer IDs that
pointed to a layer that no longer existed in the `layers` HopSlotMap
which could cause a panic when using `A-o`.
To fix this we update the `parent` pointer for both newly created
injection layers and reused ones.
2024-06-23 10:06:15 +09:00
Kirawi
b55cb3aa11
Revert "Replace unicode-general-category with icu-properties ( #10989 )" ( #11006 )
...
This reverts commit 9b7dffbd61
.
2024-06-23 10:05:53 +09:00
Kirawi
9b7dffbd61
Replace unicode-general-category with icu-properties ( #10989 )
2024-06-18 18:19:05 +02:00
adiabatic
69acf66cd8
Add curly single and double quotes to BRACKETS ( #10971 )
2024-06-18 10:40:19 +02:00
Michael Davis
ff6aca12b7
Reset all changes overlapped by selections in ':reset-diff-change' ( #10178 )
...
This is useful for resetting multiple changes at once. For example you
might use 'maf' or even '%' to select a larger region and reset all
changes within.
The original behavior of resetting the change on the current line is
retained when the primary selection is 1-width since we look for chunks
in the line range of each selection.
2024-05-20 21:40:55 +09:00
Krishan
2301430e37
fix match bracket matching ( #10777 )
2024-05-16 13:50:01 -05:00
dependabot[bot]
f656b4f3a7
build(deps): bump the rust-dependencies group across 1 directory with 11 updates ( #10715 )
...
Bumps the rust-dependencies group with 11 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [tree-sitter](https://github.com/tree-sitter/tree-sitter ) | `0.22.5` | `0.22.6` |
| [unicode-width](https://github.com/unicode-rs/unicode-width ) | `0.1.11` | `0.1.12` |
| [hashbrown](https://github.com/rust-lang/hashbrown ) | `0.14.3` | `0.14.5` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.198` | `1.0.200` |
| [parking_lot](https://github.com/Amanieu/parking_lot ) | `0.12.1` | `0.12.2` |
| [anyhow](https://github.com/dtolnay/anyhow ) | `1.0.82` | `1.0.83` |
| [libc](https://github.com/rust-lang/libc ) | `0.2.153` | `0.2.154` |
| [rustix](https://github.com/bytecodealliance/rustix ) | `0.38.32` | `0.38.34` |
| [pulldown-cmark](https://github.com/raphlinus/pulldown-cmark ) | `0.10.0` | `0.10.3` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `1.0.58` | `1.0.60` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.0.95` | `1.0.97` |
Updates `tree-sitter` from 0.22.5 to 0.22.6
- [Release notes](https://github.com/tree-sitter/tree-sitter/releases )
- [Changelog](https://github.com/tree-sitter/tree-sitter/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tree-sitter/tree-sitter/compare/v0.22.5...v0.22.6 )
Updates `unicode-width` from 0.1.11 to 0.1.12
- [Commits](https://github.com/unicode-rs/unicode-width/compare/v0.1.11...v0.1.12 )
Updates `hashbrown` from 0.14.3 to 0.14.5
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/hashbrown/compare/v0.14.3...v0.14.5 )
Updates `serde` from 1.0.198 to 1.0.200
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.198...v1.0.200 )
Updates `parking_lot` from 0.12.1 to 0.12.2
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Amanieu/parking_lot/compare/0.12.1...0.12.2 )
Updates `anyhow` from 1.0.82 to 1.0.83
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.82...1.0.83 )
Updates `libc` from 0.2.153 to 0.2.154
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.153...0.2.154 )
Updates `rustix` from 0.38.32 to 0.38.34
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.32...v0.38.34 )
Updates `pulldown-cmark` from 0.10.0 to 0.10.3
- [Release notes](https://github.com/raphlinus/pulldown-cmark/releases )
- [Commits](https://github.com/raphlinus/pulldown-cmark/compare/v0.10.0...v0.10.3 )
Updates `thiserror` from 1.0.58 to 1.0.60
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.58...1.0.60 )
Updates `cc` from 1.0.95 to 1.0.97
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Commits](https://github.com/rust-lang/cc-rs/compare/1.0.95...1.0.97 )
---
updated-dependencies:
- dependency-name: tree-sitter
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: unicode-width
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: hashbrown
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: parking_lot
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: rustix
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: pulldown-cmark
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: cc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-07 21:43:40 +02:00
Michael Davis
9dd51e75e0
Resolve new Clippy lints
2024-05-07 15:15:52 -04:00
Pascal Kuthe
5b8b2f4b9b
improve match bracket matching ( #10613 )
2024-05-07 09:26:04 -05:00
François Laignel
f86f350d5d
Debugger template: allow missing or empty completion list ( #10332 )
...
It can be convenient to define project specific debugger templates, some of
which might not necessitate prompting the user to define completion.
This commit makes completion optional for debugger templates and starts the
dap immediately if undefined or empty.
2024-05-06 17:37:04 +02:00
woojiq
839ec4ad39
test: match around closest pair tree-sitter version
2024-04-24 16:36:13 -04:00
woojiq
81dc8e8d6b
feat: find closest pair using tree-sitter
2024-04-24 16:36:13 -04:00
Krishan
89a9f2be78
specify direction for select_prev_sibling and select_next_sibling ( #10542 )
...
* specify direction for select_prev_sibling and select_next_sibling
* fix failing integration-test
2024-04-23 08:41:03 -05:00
Pascal Kuthe
b834806dbc
use newtype parttern for langauge server id
2024-04-22 12:27:47 +09:00
Triton171
efae85ec20
Simplify first-in-line computation for indent queries. ( #10527 )
2024-04-20 18:58:54 -04:00
Pedro Fedricci
0546273570
chore: update tree-sitter-rust to v0.21.0 ( #10365 )
...
* chore: update tree-sitter-rust to 0.21.0
* fix: pretty print and textobject tests
2024-04-15 18:07:15 +02:00
Pascal Kuthe
73d26d0d97
don't manually grapheme align ts highlights ( #10310 )
2024-04-11 00:14:08 +09:00
Skyler Hawthorne
c99c333337
Use new in-crate TreeCursor
2024-04-09 10:33:15 -04:00
Skyler Hawthorne
fa67c5c474
feat(command): select_all_children
2024-04-09 10:33:15 -04:00
Skyler Hawthorne
87c4161732
feat(command): select_all_siblings
2024-04-09 10:33:15 -04:00
Skyler Hawthorne
cf9b88f9bd
add Range::{from_node,into_byte_range}
2024-04-09 10:33:15 -04:00
dependabot[bot]
3205bc4132
build(deps): bump the rust-dependencies group with 6 updates ( #10007 )
...
Bumps the rust-dependencies group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [smallvec](https://github.com/servo/rust-smallvec ) | `1.13.1` | `1.13.2` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.7.0` | `1.7.1` |
| [regex](https://github.com/rust-lang/regex ) | `1.10.3` | `1.10.4` |
| [indoc](https://github.com/dtolnay/indoc ) | `2.0.4` | `2.0.5` |
| [rustix](https://github.com/bytecodealliance/rustix ) | `0.38.31` | `0.38.32` |
| [which](https://github.com/harryfei/which-rs ) | `6.0.0` | `6.0.1` |
Updates `smallvec` from 1.13.1 to 1.13.2
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.13.1...v1.13.2 )
Updates `arc-swap` from 1.7.0 to 1.7.1
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/commits )
Updates `regex` from 1.10.3 to 1.10.4
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.10.3...1.10.4 )
Updates `indoc` from 2.0.4 to 2.0.5
- [Release notes](https://github.com/dtolnay/indoc/releases )
- [Commits](https://github.com/dtolnay/indoc/compare/2.0.4...2.0.5 )
Updates `rustix` from 0.38.31 to 0.38.32
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.31...v0.38.32 )
Updates `which` from 6.0.0 to 6.0.1
- [Release notes](https://github.com/harryfei/which-rs/releases )
- [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/harryfei/which-rs/compare/6.0.0...6.0.1 )
---
updated-dependencies:
- dependency-name: smallvec
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: arc-swap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: indoc
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: rustix
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: which
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 12:55:58 +09:00
Pascal Kuthe
b46064b8c4
Add an Amp-like jump command
...
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-03-23 15:35:25 +09:00
Pascal Kuthe
3001f22b31
add reverse rope grapheme iterator
2024-03-23 15:35:25 +09:00
Pascal Kuthe
69e07ab61e
use slices instead of Rc for virtual text
2024-03-23 15:35:25 +09:00
Michael Davis
68b21578ac
Reimplement tree motions in terms of syntax::TreeCursor
...
This uses the new TreeCursor type from the parent commit to reimplement
the tree-sitter motions (`A-p/o/i/n`). Other tree-sitter related
features like textobjects are not touched with this change and will
need a different, unrelated approach to solve.
2024-03-23 15:32:34 +09:00
Michael Davis
b1222f0664
Add a TreeCursor type that travels over injection layers
...
This uses the layer parentage information from the parent commit to
traverse the layers. It's a similar API to `tree_sitter:TreeCursor`
but internally it does not use a `tree_sitter::TreeCursor` currently
because that interface is behaving very unexpectedly. Using the
`next_sibling`/`prev_sibling`/`parent` API on `tree_sitter::Node`
reflects the previous code's behavior so this should result in no
surprising changes.
2024-03-23 15:32:34 +09:00
Michael Davis
6dd46bfe1c
syntax: Track parent LanguageLayer IDs
...
This commit adds a `parent` field to the `LanguageLayer`. This
information is conveniently already available when we parse injections.
This will be used in the child commit to create a type that can
traverse injection layers using this information.
2024-03-23 15:32:34 +09:00
dependabot[bot]
3d4889ce9a
build(deps): bump the rust-dependencies group with 3 updates ( #9929 )
...
Bumps the rust-dependencies group with 3 updates: [bitflags](https://github.com/bitflags/bitflags ), [toml](https://github.com/toml-rs/toml ) and [lsp-types](https://github.com/gluon-lang/lsp-types ).
Updates `bitflags` from 2.4.2 to 2.5.0
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/2.4.2...2.5.0 )
Updates `toml` from 0.8.10 to 0.8.12
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.10...toml-v0.8.12 )
Updates `lsp-types` from 0.95.0 to 0.95.1
- [Changelog](https://github.com/gluon-lang/lsp-types/blob/master/CHANGELOG.md )
- [Commits](https://github.com/gluon-lang/lsp-types/compare/v0.95.0...v0.95.1 )
---
updated-dependencies:
- dependency-name: bitflags
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rust-dependencies
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
- dependency-name: lsp-types
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rust-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 15:47:05 +09:00
Michael Davis
38af99f05f
Bump tree-sitter to 0.22.2
2024-03-18 10:34:53 +09:00
Michael Davis
6c4d986c1b
Use non-deprecated chrono Duration functions
2024-03-14 14:13:56 +09:00
Mike Trinkala
e27b04735c
Fix panic in select_textobject_around ( #9832 )
...
Test Document
-------------
```
a)b
```
Steps to Reproduce
------------------
1. % # select_all
1. ms( # surround_add
1. mam # select_textobject_around
Debug and Release
-----------------
`thread 'main' panicked at 'Attempt to index past end of RopeSlice:
char index 7, RopeSlice char length 6', ropey-1.6.1/src/slice.rs:796:13`
Description
-----------
An index was selected beyond the end of the slice with chars_at. The fix
adds a guard check to `find_nth_open_pair`, like in the other find_nth*
functions.
2024-03-07 13:37:01 -06:00
dependabot[bot]
7a473c7494
build(deps): bump ahash from 0.8.9 to 0.8.11 ( #9813 )
2024-03-06 11:09:13 +09:00
Mike Trinkala
9267343830
Fix panic when using surround_replace/delete ( #9796 )
...
1. Create a document containing `{A}`
1. C-w v # vsplit
1. gl # goto_line_end
1. b # move_prev_word_start
1. ` # switch_to_lowercase
1. mrm( # surround replace
1. C-w v # vsplit
In the debug build surround_replace/delete will immedately assert with
`assertion failed: last <= from', transaction.rs:597:13`. The splits and
lowercase conversion are not needed to trigger the bug.
In the release build the surround becomes `)a(` and the last vsplit
causes the transaction to panic.
`internal error: entered unreachable code:
(Some(Retain(18446744073709551573)))', transaction.rs:185:46`
Since the selection direction is backwards get_surround_pos returns the
pairs reversed but the downstream code assumes they are in the forward
direction.
2024-03-03 18:55:09 +01:00
Pascal Kuthe
1143f47954
fix split_on_newline ( #9756 )
2024-02-29 10:47:41 +09:00
Gabriel Dinner-David
26b3dc29be
toggling of block comments ( #4718 )
2024-02-27 22:36:25 +09:00
dependabot[bot]
b43d9aa306
build(deps): bump ahash from 0.8.6 to 0.8.9 ( #9737 )
...
Bumps [ahash](https://github.com/tkaitchuck/ahash ) from 0.8.6 to 0.8.9.
- [Release notes](https://github.com/tkaitchuck/ahash/releases )
- [Commits](https://github.com/tkaitchuck/ahash/commits/v0.8.9 )
---
updated-dependencies:
- dependency-name: ahash
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>
2024-02-27 01:22:00 +01:00
Pascal Kuthe
cd02976fa3
switch to regex-cursor ( #9422 )
2024-02-26 16:45:20 +09:00
dependabot[bot]
cad0209e20
build(deps): bump textwrap from 0.16.0 to 0.16.1 ( #9674 )
...
Bumps [textwrap](https://github.com/mgeisler/textwrap ) from 0.16.0 to 0.16.1.
- [Release notes](https://github.com/mgeisler/textwrap/releases )
- [Changelog](https://github.com/mgeisler/textwrap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mgeisler/textwrap/compare/0.16.0...0.16.1 )
---
updated-dependencies:
- dependency-name: textwrap
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>
2024-02-20 17:07:16 +01:00
kyfanc
fe869e5dc7
fix lsp config reload ( #9415 )
...
`syn_loader` was replaced rather than interior value being replace,
old value was still being referenced and not updated after `:config-refresh`.
By using `ArcSwap` like for `config`, each `.load()` call will return the most
updated value.
Co-authored-by: kyfan <kyfan@email>
2024-02-13 11:58:53 +01:00
dependabot[bot]
36ad70e4c7
build(deps): bump unicode-segmentation from 1.10.1 to 1.11.0 ( #9617 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-13 09:57:37 +09:00
dependabot[bot]
c111e28a6f
build(deps): bump toml from 0.7.6 to 0.8.10 ( #9539 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.7.6 to 0.8.10.
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.7.6...toml-v0.8.10 )
---
updated-dependencies:
- dependency-name: toml
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>
2024-02-13 01:48:45 +09:00
Blaž Hrastnik
ad7b7bc804
minor: Fix compilation
2024-02-12 12:01:17 +09:00
ontley
6a90166d0a
Add required-root-patterns for situational lsp activation ( #8696 )
...
* Added required-root-patterns for situational lsp activation using globbing
* Replaced filter_map with flatten
* updated book to include required-root-patterns option
* fixed wrong function name for path
* Added globset to helix-core. Moved globset building to config parsing.
* Normalize implements AsRef
* cargo fmt
* Revert "cargo fmt"
This reverts commit ca8ce123e8
.
2024-02-12 02:35:25 +01:00
Galen Abell
581a1ebf5d
Add glob file type support ( #8006 )
...
* Replace FileType::Suffix with FileType::Glob
Suffix is rather limited and cannot be used to match files which have
semantic meaning based on location + file type (for example, Github
Action workflow files). This patch adds support for a Glob FileType to
replace Suffix, which encompasses the existing behavior & adds
additional file matching functionality.
Globs are standard Unix-style path globs, which are matched against the
absolute path of the file. If the configured glob for a language is a
relative glob (that is, it isn't an absolute path or already starts with
a glob pattern), a glob pattern will be prepended to allow matching
relative paths from any directory.
The order of file type matching is also updated to first match on globs
and then on extension. This is necessary as most cases where
glob-matching is useful will have already been matched by an extension
if glob matching is done last.
* Convert file-types suffixes to globs
* Use globs for filename matching
Trying to match the file-type raw strings against both filename and
extension leads to files with the same name as the extension having the
incorrect syntax.
* Match dockerfiles with suffixes
It's common practice to add a suffix to dockerfiles based on their
context, e.g. `Dockerfile.dev`, `Dockerfile.prod`, etc.
* Make env filetype matching more generic
Match on `.env` or any `.env.*` files.
* Update docs
* Use GlobSet to match all file type globs at once
* Update todo.txt glob patterns
* Consolidate language Configuration and Loader creation
This is a refactor that improves the error handling for creating
the `helix_core::syntax::Loader` from the default and user language
configuration.
* Fix integration tests
* Add additional starlark file-type glob
---------
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2024-02-11 18:24:20 +01:00
Michael Davis
035b8eabdb
Respect injections in movement::move_parent_node_end
2024-01-28 18:13:33 +09:00
Michael Davis
5e0b3cc28b
Use injection syntax trees for bracket matching
...
Previously we used the root syntax tree for bracket matching. We can use
the new functionality in `Syntax` for finding the correct syntax tree
for a given byte range though so we use the correct syntax tree within
injections. This improves bracket matching behavior within HTML
injections like script or style tags for example.
2024-01-28 18:13:33 +09:00
Michael Davis
cda8ea991e
highlighting: Gate multiple captures behind `#is-not? local` predicates ( #9390 )
2024-01-25 14:10:58 +09:00
dependabot[bot]
cbd8602018
build(deps): bump smallvec from 1.12.0 to 1.13.1 ( #9405 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-23 23:19:36 +09:00
Matthew Toohey
f5f08becef
Fix typo in string representation of GotoReference ( #9395 )
2024-01-22 23:06:20 +09:00
Michael Davis
1f916e65cf
Create helix-stdx crate for stdlib extensions
...
helix-stdx is meant to carry extensions to the stdlib or low-level
dependencies that are useful in all other crates. This commit starts
with all of the path functions from helix-core and the CWD tracking that
lived in helix-loader.
The CWD tracking in helix-loader was previously unable to call the
canonicalization functions in helix-core. Switching to our custom
canonicalization code should make no noticeable difference though
since `std::env::current_dir` returns a canonicalized path with
symlinks resolved (at least on unix).
2024-01-18 10:57:53 +09:00
Kirawi
44cb8e5475
update tempfile dev-dependency to 3.9 ( #9359 )
2024-01-16 18:32:05 -06:00
dependabot[bot]
8a00620a71
build(deps): bump smallvec from 1.11.2 to 1.12.0 ( #9341 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-16 14:12:15 +09:00
Michael Davis
eca3ccff76
Select subtree within injections in :tree-sitter-subtree ( #9309 )
...
`:tree-sitter-subtree` could previously only print subtrees of nodes
in the root injection layer. We can improve on that by finding the layer
that contains the given byte range and printing the subtree within that
layer. That gives more useful results when a selection is within an
injection layer.
2024-01-15 15:34:38 +09:00
Michael Davis
3011df4f35
Bump tree-sitter to latest master ( #9317 )
...
* query capture names now return `&str`s rather than `String`s
* the `#any-of?` predicate is now supported
2024-01-15 15:33:26 +09:00
Pascal Kuthe
445f7a273a
ignore empty TS nodes in match bracket
2024-01-15 15:32:07 +09:00
Pascal Kuthe
2fb7e50b54
don't crash in plaintext bracket match (mm) on empty file
2024-01-15 15:32:07 +09:00
woojiq
3f88a3f4e6
Change path normalization strategy to not resolve symlinks ( #9330 )
2024-01-14 08:46:32 -06:00
Pascal Kuthe
7739d3ece1
Revert "build(deps): bump ahash from 0.8.6 to 0.8.7" ( #9294 )
2024-01-11 22:13:39 +09:00
Philipp Mildenberger
41ca46cf8c
Initialize diagnostics when opening a document ( #8873 )
2024-01-09 10:01:04 +09:00
dependabot[bot]
f4212421da
build(deps): bump ahash from 0.8.6 to 0.8.7 ( #9281 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 09:51:38 +09:00