ZIm/extensions/ruby
Vitaly Slobodin 660cf214c7
ruby: Capture the heredoc content only and downcase the language (#12532)
# Summary

Hi. Current `heredoc` injection for Ruby language captures the
`heredoc_end` token. That's a bit incorrect because we want to capture
the content only. Suppose we have the following Ruby code:

```ruby
<<~JS
  function myFunc() {
    const myConstant = [];
  }

  let a = '1'
JS
```

And this is its syntax tree:

```
[program] [0, 0] - [7, 0]
  [heredoc_beginning] [0, 0] - [0, 5]
  [heredoc_body] [0, 5] - [6, 2]
    [heredoc_content] [0, 5] - [6, 0]
    [heredoc_end] [6, 0] - [6, 2]
```

Current injection capture all content of the `heredoc_body`:

![CleanShot 2024-05-31 at 17 03
31@2x](https://github.com/zed-industries/zed/assets/1894248/ff8c5195-b532-42d2-91b1-48405a6d3b50)

But we want to capture the `heredoc_content` only and this PR resolves
that, additionally it downcases the language like Zed does in other
languages like Terraform.

![CleanShot 2024-05-31 at 17 05
17@2x](https://github.com/zed-industries/zed/assets/1894248/e81dabd0-3246-4ef2-9524-a7adcb9242ab)


Release Notes:

- N/A
2024-05-31 11:19:10 -04:00
..
languages ruby: Capture the heredoc content only and downcase the language (#12532) 2024-05-31 11:19:10 -04:00
src ruby: Pass initialization options to LSPs (#12012) 2024-05-20 10:18:32 +03:00
Cargo.toml ruby: Bump to v0.0.6 (#12395) 2024-05-28 16:14:38 -04:00
extension.toml ruby: Bump to v0.0.6 (#12395) 2024-05-28 16:14:38 -04:00
LICENSE-APACHE Extract Ruby extension (#11360) 2024-05-10 11:53:11 -04:00