<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/api/buffer_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(api): load buffer first on nvim_buf_set_lines (#25823)</title>
<updated>2023-10-29T07:44:52+00:00</updated>
<author>
<name>Raphael</name>
<email>glephunter@gmail.com</email>
</author>
<published>2023-10-29T07:44:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=0da27e9bdec14acf82731c4d5e0ad7d673697af7'/>
<id>0da27e9bdec14acf82731c4d5e0ad7d673697af7</id>
<content type='text'>
Fix #22670
Fix #8659</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix #22670
Fix #8659</pre>
</div>
</content>
</entry>
<entry>
<title>fix(api): more intuitive cursor updates in nvim_buf_set_text</title>
<updated>2023-09-11T04:16:03+00:00</updated>
<author>
<name>Sergey Slipchenko</name>
<email>faergeek@gmail.com</email>
</author>
<published>2023-09-11T04:16:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=d22172f36bbe147f3aa6b76a1c43ae445f481c2e'/>
<id>d22172f36bbe147f3aa6b76a1c43ae445f481c2e</id>
<content type='text'>
Fixes #22526
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #22526
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(api): nvim_buf_get_offset in a new buffer with zero or one lines</title>
<updated>2023-08-30T10:01:35+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-08-30T09:53:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=b051b131f5ce99ffe1b1bc22a2032ebc886e4e35'/>
<id>b051b131f5ce99ffe1b1bc22a2032ebc886e4e35</id>
<content type='text'>
fixes #24930
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes #24930
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(api): better topline adjustments in nvim_buf_set_lines</title>
<updated>2023-08-29T07:26:15+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-08-28T09:35:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=0a81ec14a4c006822509b06396871509140b7a79'/>
<id>0a81ec14a4c006822509b06396871509140b7a79</id>
<content type='text'>
Some more reasonable defaults for topline:
  - if topline was replaced with another line, that now becomes topline
  - if line was inserted just before topline, display it. This is more
    similar to the previous API behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some more reasonable defaults for topline:
  - if topline was replaced with another line, that now becomes topline
  - if line was inserted just before topline, display it. This is more
    similar to the previous API behavior.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(api): handle clearing out last line of non-current buffer</title>
<updated>2023-08-28T10:39:02+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-08-28T10:36:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=132bbd1cbd490a65bc186c4a9f449c6d2f0a7666'/>
<id>132bbd1cbd490a65bc186c4a9f449c6d2f0a7666</id>
<content type='text'>
fixes #24911
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes #24911
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(undo): fix crash caused by checking undolevels in wrong buffer</title>
<updated>2023-08-27T10:08:11+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-08-27T09:26:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=840749d6c971f93aa9744bd6f76b383f11043463'/>
<id>840749d6c971f93aa9744bd6f76b383f11043463</id>
<content type='text'>
fixes #24894
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes #24894
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(api): fix inconsistent behavior of topline touched in recent refactor</title>
<updated>2023-08-27T10:07:46+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-08-27T09:20:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=9b9030ff2ca820d4c4f4b559f86b0f9a3496645b'/>
<id>9b9030ff2ca820d4c4f4b559f86b0f9a3496645b</id>
<content type='text'>
The change in #24824 0081549 was not a regression, however it was an
incomplete change. Unfortunately some common plugins come to depend on
this exising self-inconsistent behavior. These plugins are going to need
to update for 0.10

nvim_buf_set_lines used to NOT adjust the topline correctly if a buffer
was displayed in just one window. However, if displayed in multiple
windows, it was correctly adjusted for any window not deemed the
current window for the buffer (which could be an arbitrary choice if the
buffer was not already current, as noted in the last rafactor)

This fixes so that all windows have their topline adjusted. The added
tests show this behavior, which should be the reasonable one.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The change in #24824 0081549 was not a regression, however it was an
incomplete change. Unfortunately some common plugins come to depend on
this exising self-inconsistent behavior. These plugins are going to need
to update for 0.10

nvim_buf_set_lines used to NOT adjust the topline correctly if a buffer
was displayed in just one window. However, if displayed in multiple
windows, it was correctly adjusted for any window not deemed the
current window for the buffer (which could be an arbitrary choice if the
buffer was not already current, as noted in the last rafactor)

This fixes so that all windows have their topline adjusted. The added
tests show this behavior, which should be the reasonable one.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(change): do API changes to buffer without curbuf switch</title>
<updated>2023-08-26T10:02:05+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-08-21T12:52:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=008154954791001efcc46c28146e21403f3a698b'/>
<id>008154954791001efcc46c28146e21403f3a698b</id>
<content type='text'>
Most of the messy things when changing a non-current buffer is
not about the buffer, it is about windows. In particular, it is about
`curwin`.

When editing a non-current buffer which is displayed in some other
window in the current tabpage, one such window will be "borrowed" as the
curwin. But this means if two or more non-current windows displayed the buffers,
one of them will be treated differenty. this is not desirable.

In particular, with nvim_buf_set_text, cursor _column_ position was only
corrected for one single window. Two new tests are added: the test
with just one non-current window passes, but the one with two didn't.

Two corresponding such tests were also added for nvim_buf_set_lines.
This already worked correctly on master, but make sure this is
well-tested for future refactors.

Also, nvim_create_buf no longer invokes autocmds just because you happened
to use `scratch=true`. No option value was changed, therefore OptionSet
must not be fired.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of the messy things when changing a non-current buffer is
not about the buffer, it is about windows. In particular, it is about
`curwin`.

When editing a non-current buffer which is displayed in some other
window in the current tabpage, one such window will be "borrowed" as the
curwin. But this means if two or more non-current windows displayed the buffers,
one of them will be treated differenty. this is not desirable.

In particular, with nvim_buf_set_text, cursor _column_ position was only
corrected for one single window. Two new tests are added: the test
with just one non-current window passes, but the one with two didn't.

Two corresponding such tests were also added for nvim_buf_set_lines.
This already worked correctly on master, but make sure this is
well-tested for future refactors.

Also, nvim_create_buf no longer invokes autocmds just because you happened
to use `scratch=true`. No option value was changed, therefore OptionSet
must not be fired.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(api): allow negative column arguments for nvim_buf_set_text (#23501)</title>
<updated>2023-07-04T14:07:55+00:00</updated>
<author>
<name>notomo</name>
<email>notomo.motono@gmail.com</email>
</author>
<published>2023-07-04T14:07:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=3ecd45ded044c47efa76b74e9e3b720fbe27adc7'/>
<id>3ecd45ded044c47efa76b74e9e3b720fbe27adc7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(defaults): do not use C specific default values for options (#22500)</title>
<updated>2023-06-06T16:26:29+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>8965202+gpanders@users.noreply.github.com</email>
</author>
<published>2023-06-06T16:26:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=fcfe535e9877cfdc824dc78f2d19e590400d34cd'/>
<id>fcfe535e9877cfdc824dc78f2d19e590400d34cd</id>
<content type='text'>
The options 'path', 'include', and 'define' all use C-specific default
values. This may have made sense a long time ago when Vim was mostly
used just for writing C, but this is no longer the case, and we have
ample support for filetype specific configuration. Make the default
values of these options empty and move the C-specific values into a
filetype plugin where they belong.

Co-authored-by: zeertzjq &lt;zeertzjq@outlook.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The options 'path', 'include', and 'define' all use C-specific default
values. This may have made sense a long time ago when Vim was mostly
used just for writing C, but this is no longer the case, and we have
ample support for filetype specific configuration. Make the default
values of these options empty and move the C-specific values into a
filetype plugin where they belong.

Co-authored-by: zeertzjq &lt;zeertzjq@outlook.com&gt;</pre>
</div>
</content>
</entry>
</feed>
