<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/treesitter/parser_spec.lua, branch fix_repeatcmdline</title>
<subtitle>Neovim fork with Rahm's personal hacks.</subtitle>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/'/>
<entry>
<title>fix(treesitter): don't invalidate parser when discovering injections</title>
<updated>2023-11-27T14:53:26+00:00</updated>
<author>
<name>Dmytro Soltys</name>
<email>soap@slotos.net</email>
</author>
<published>2023-11-27T12:34:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=72ed99319dd662f0e35b58e888b57f98ac3b3eec'/>
<id>72ed99319dd662f0e35b58e888b57f98ac3b3eec</id>
<content type='text'>
When parsing with a range, languagetree looks up injections and adds
them if needed. This explicitly invalidates parser, making `is_valid`
report `false` both when including and excluding children.

This is an attempt to describe desired behaviour of `is_valid` in tests,
with what ended up being a single line change to satisfy them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When parsing with a range, languagetree looks up injections and adds
them if needed. This explicitly invalidates parser, making `is_valid`
report `false` both when including and excluding children.

This is an attempt to describe desired behaviour of `is_valid` in tests,
with what ended up being a single line change to satisfy them.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(query_error): multiline bug</title>
<updated>2023-08-31T14:12:17+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2023-08-31T13:11:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=dd0e77d48a843fc9730fe4ef7567330daf8dfb81'/>
<id>dd0e77d48a843fc9730fe4ef7567330daf8dfb81</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(treesitter): improve query error message</title>
<updated>2023-08-31T12:33:40+00:00</updated>
<author>
<name>Amaan Qureshi</name>
<email>amaanq12@gmail.com</email>
</author>
<published>2023-07-19T09:02:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=845d5b8b64190e0e09a6a6dd97bdbc0e6f96eb02'/>
<id>845d5b8b64190e0e09a6a6dd97bdbc0e6f96eb02</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(treesitter): add 'injection.self' and 'injection.parent'</title>
<updated>2023-08-24T00:05:44+00:00</updated>
<author>
<name>Amaan Qureshi</name>
<email>amaanq12@gmail.com</email>
</author>
<published>2023-08-22T04:51:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=c6ec7fa8d741d6301701067ecd095bf02e7a741a'/>
<id>c6ec7fa8d741d6301701067ecd095bf02e7a741a</id>
<content type='text'>
Co-authored-by: ObserverOfTime &lt;chronobserver@disroot.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: ObserverOfTime &lt;chronobserver@disroot.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(treesitter)!: remove deprecated legacy injection format</title>
<updated>2023-08-13T22:14:35+00:00</updated>
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<published>2023-08-12T15:54:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=fc0ee871de2f56dbb80879c912203a6372c54e1c'/>
<id>fc0ee871de2f56dbb80879c912203a6372c54e1c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(treesitter): logger memory leak</title>
<updated>2023-08-13T10:23:17+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2023-08-13T07:03:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=8179d68dc1a90f47bfb307d73e71adc98883ae00'/>
<id>8179d68dc1a90f47bfb307d73e71adc98883ae00</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(treesitter)!: incremental injection parsing</title>
<updated>2023-08-12T15:11:36+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2023-08-10T13:21:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=2ca076e45fb3f1c08f6a1a374834df0701b8d778'/>
<id>2ca076e45fb3f1c08f6a1a374834df0701b8d778</id>
<content type='text'>
Problem:

Treesitter highlighting is slow for large files with lots of injections.

Solution:

Only parse injections we are going to render during a redraw cycle.

---

- `LanguageTree:parse()` will no longer parse injections by default and
  now requires an explicit range argument to be passed.

- `TSHighlighter` now parses injections incrementally during on_win
  callbacks for the line range being rendered.

- Plugins which require certain injections to be parsed must run
  `parser:parse({ start_row, end_row })` before using the tree.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:

Treesitter highlighting is slow for large files with lots of injections.

Solution:

Only parse injections we are going to render during a redraw cycle.

---

- `LanguageTree:parse()` will no longer parse injections by default and
  now requires an explicit range argument to be passed.

- `TSHighlighter` now parses injections incrementally during on_win
  callbacks for the line range being rendered.

- Plugins which require certain injections to be parsed must run
  `parser:parse({ start_row, end_row })` before using the tree.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(treesitter): add injection language fallback (#24659)</title>
<updated>2023-08-11T15:05:17+00:00</updated>
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<published>2023-08-11T15:05:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=31c4ed26bc278282898123ad21bb6fead401fd6f'/>
<id>31c4ed26bc278282898123ad21bb6fead401fd6f</id>
<content type='text'>
* feat(treesitter): add injection language fallback

Problem: injection languages are often specified via aliases (e.g.,
filetype or in upper case), requiring custom directives.

Solution: include lookup logic (try as parser name, then filetype, then
lowercase) in LanguageTree itself and remove `#inject-language`
directive.

Co-authored-by: Lewis Russell &lt;me@lewisr.dev&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* feat(treesitter): add injection language fallback

Problem: injection languages are often specified via aliases (e.g.,
filetype or in upper case), requiring custom directives.

Solution: include lookup logic (try as parser name, then filetype, then
lowercase) in LanguageTree itself and remove `#inject-language`
directive.

Co-authored-by: Lewis Russell &lt;me@lewisr.dev&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>fix(treesitter): make sure injections don't return empty ranges (#24595)</title>
<updated>2023-08-07T17:22:36+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2023-08-07T17:22:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=0211f889b9538f7df5fbcb06273d273fb071efff'/>
<id>0211f889b9538f7df5fbcb06273d273fb071efff</id>
<content type='text'>
When an injection has not set include children, make sure not to add
the injection if no ranges are determined.

This could happen when there is an injection with a child that has the
same range as itself. e.g. consider this Makefile snippet

```make
foo:
  $(VAR)
```

Line 2 has an injection for bash and a make variable reference. If
include-children isn't set (default), then there is no range on line 2
to inject since the variable reference needs to be excluded.

This caused the language tree to return an empty range, which the parser
now interprets to mean the full buffer. This caused makefiles to have
completely broken highlighting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When an injection has not set include children, make sure not to add
the injection if no ranges are determined.

This could happen when there is an injection with a child that has the
same range as itself. e.g. consider this Makefile snippet

```make
foo:
  $(VAR)
```

Line 2 has an injection for bash and a make variable reference. If
include-children isn't set (default), then there is no range on line 2
to inject since the variable reference needs to be excluded.

This caused the language tree to return an empty range, which the parser
now interprets to mean the full buffer. This caused makefiles to have
completely broken highlighting.</pre>
</div>
</content>
</entry>
<entry>
<title>build(deps): bump tree-sitter-c to v0.20.4 (#24495)</title>
<updated>2023-07-27T10:45:08+00:00</updated>
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<published>2023-07-27T10:45:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=41cefe513054edd1c12f235125220dbc6b4d9451'/>
<id>41cefe513054edd1c12f235125220dbc6b4d9451</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
