<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/src/nvim/api/vim.c, branch rahm</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>feat(api): combined highlights in nvim_eval_statusline()</title>
<updated>2025-01-23T09:56:25+00:00</updated>
<author>
<name>Luuk van Baal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-01-16T17:10:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=34d808b73cbcb0a43636d826282193ab1ca8c148'/>
<id>34d808b73cbcb0a43636d826282193ab1ca8c148</id>
<content type='text'>
Problem:  Combined highlighting was not applied to nvim_eval_statusline(),
          and 'statuscolumn' sign segment/numhl highlights.
Solution: Add an additional `groups` element to the return value of
          `nvim_eval_statusline()-&gt;highlights`. This is an array of stacked
          highlight groups (highest priority last). Also resolve combined
          highlights for the 'statuscolumn' sign segment/numhl highlights.
          Expose/synchronize some drawline.c logic that is now mimicked in
          three different places.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  Combined highlighting was not applied to nvim_eval_statusline(),
          and 'statuscolumn' sign segment/numhl highlights.
Solution: Add an additional `groups` element to the return value of
          `nvim_eval_statusline()-&gt;highlights`. This is an array of stacked
          highlight groups (highest priority last). Also resolve combined
          highlights for the 'statuscolumn' sign segment/numhl highlights.
          Expose/synchronize some drawline.c logic that is now mimicked in
          three different places.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(messages): verbose kind for nvim_echo()</title>
<updated>2025-01-15T09:51:55+00:00</updated>
<author>
<name>Luuk van Baal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-01-14T16:23:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d55b17e2b4e061fd8b330f928785a217c99c9d11'/>
<id>d55b17e2b4e061fd8b330f928785a217c99c9d11</id>
<content type='text'>
Problem:  No "verbose" kind for nvim_echo() opts-&gt;verbose.
Solution: Pass NULL "kind" to indicate no new kind.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  No "verbose" kind for nvim_echo() opts-&gt;verbose.
Solution: Pass NULL "kind" to indicate no new kind.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(api): deprecate nvim_notify #31938</title>
<updated>2025-01-10T19:42:04+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-01-10T19:42:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=0717dfbfaf36887dab277527eb0a93bf2182297c'/>
<id>0717dfbfaf36887dab277527eb0a93bf2182297c</id>
<content type='text'>
Problem:
The `nvim_notify` API (note: unrelated to `vim.notify()` Lua API) was
not given any real motivation in https://github.com/neovim/neovim/pull/13843

There are, and were, idiomatic and ergonomic alternatives already.

Solution:
Deprecate `nvim_notify`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
The `nvim_notify` API (note: unrelated to `vim.notify()` Lua API) was
not given any real motivation in https://github.com/neovim/neovim/pull/13843

There are, and were, idiomatic and ergonomic alternatives already.

Solution:
Deprecate `nvim_notify`.</pre>
</div>
</content>
</entry>
<entry>
<title>docs: misc #31867</title>
<updated>2025-01-09T17:26:45+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-01-09T17:26:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=7c00e0efbb18e8627ac59eaadf564a9f1b2bafcd'/>
<id>7c00e0efbb18e8627ac59eaadf564a9f1b2bafcd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(api): deprecate nvim_out/err_write(ln)</title>
<updated>2025-01-09T12:35:42+00:00</updated>
<author>
<name>Luuk van Baal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-01-07T15:38:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=5c92b40b4b173c7d85106689fef811e41994abb0'/>
<id>5c92b40b4b173c7d85106689fef811e41994abb0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(api): add err field to nvim_echo() opts</title>
<updated>2025-01-09T12:35:40+00:00</updated>
<author>
<name>Luuk van Baal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-01-07T13:20:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=ead5683ff9994c0fbfc6c38e0911d9455777550b'/>
<id>ead5683ff9994c0fbfc6c38e0911d9455777550b</id>
<content type='text'>
Problem:  We want to deprecate `nvim_err_write(ln)()` but there is no
          obvious replacement (from Lua). Meanwhile we already have
          `nvim_echo()` with an `opts` argument.
Solution: Add `err` argument to `nvim_echo()` that directly maps to
          `:echoerr`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  We want to deprecate `nvim_err_write(ln)()` but there is no
          obvious replacement (from Lua). Meanwhile we already have
          `nvim_echo()` with an `opts` argument.
Solution: Add `err` argument to `nvim_echo()` that directly maps to
          `:echoerr`.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(api): nvim__complete_set requires completeopt=popup #31177</title>
<updated>2025-01-05T13:57:53+00:00</updated>
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<published>2025-01-05T13:57:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=bf48dfadeccc37527e9b59b1c0f529ea889bf735'/>
<id>bf48dfadeccc37527e9b59b1c0f529ea889bf735</id>
<content type='text'>
Problem:
If completeopt does not include "popup" flag, nvim__complete_set still
auto-creates a floating preview window.

Solution:
Fail if completeopt does not include the "popup" flag.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
If completeopt does not include "popup" flag, nvim__complete_set still
auto-creates a floating preview window.

Solution:
Fail if completeopt does not include the "popup" flag.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(api): clamp range lines in `nvim__redraw()` (#31710)</title>
<updated>2024-12-25T20:12:40+00:00</updated>
<author>
<name>Artem</name>
<email>vanaigranov@gmail.com</email>
</author>
<published>2024-12-25T20:12:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=487c48ec8689b865bad04fdb87b61f5ada25da97'/>
<id>487c48ec8689b865bad04fdb87b61f5ada25da97</id>
<content type='text'>
Problem:
`nvim__redraw()` doesn't clamp the lines in the `range` parameter before truncating to int. The resulting range may be empty when the original range contained buffer lines and vice versa.

E.g. for a buffer with 4 lines, these are the redrawn lines:

```lua
{ 2, 2 ^ 31 } -&gt; none (should be { 2, 3 })
{ 2, 2 ^ 32 } -&gt; none (should be { 2, 3 })
{ 2 ^ 32 - 1, 2 } -&gt; { 0, 1 } (should be none)
```

Solution:
Clamp `range` values before truncating to int.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
`nvim__redraw()` doesn't clamp the lines in the `range` parameter before truncating to int. The resulting range may be empty when the original range contained buffer lines and vice versa.

E.g. for a buffer with 4 lines, these are the redrawn lines:

```lua
{ 2, 2 ^ 31 } -&gt; none (should be { 2, 3 })
{ 2, 2 ^ 32 } -&gt; none (should be { 2, 3 })
{ 2 ^ 32 - 1, 2 } -&gt; { 0, 1 } (should be none)
```

Solution:
Clamp `range` values before truncating to int.</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: iwyu #31637</title>
<updated>2024-12-23T13:43:52+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2024-12-23T13:43:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=2a7d0ed6145bf3f8b139c2694563f460f829813a'/>
<id>2a7d0ed6145bf3f8b139c2694563f460f829813a</id>
<content type='text'>
Result of `make iwyu` (after some "fixups").</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Result of `make iwyu` (after some "fixups").</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(api): always use TRY_WRAP #31600</title>
<updated>2024-12-17T12:12:22+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2024-12-17T12:12:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=6bf2a6fc5bb395b67c88cb26d332f882a106c7ab'/>
<id>6bf2a6fc5bb395b67c88cb26d332f882a106c7ab</id>
<content type='text'>
Problem:  Two separate try/end wrappers, that only marginally differ by
          restoring a few variables. Wrappers that don't restore
          previous state are dangerous to use in "api-fast" functions.
Solution: Remove wrappers that don't restore the previous state.
          Always use TRY_WRAP.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  Two separate try/end wrappers, that only marginally differ by
          restoring a few variables. Wrappers that don't restore
          previous state are dangerous to use in "api-fast" functions.
Solution: Remove wrappers that don't restore the previous state.
          Always use TRY_WRAP.</pre>
</div>
</content>
</entry>
</feed>
