<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/plugin, branch tmp</title>
<subtitle>Neovim fork with Rahm's personal hacks.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/'/>
<entry>
<title>fix(lsp): send didOpen if name changes on write (#19583)</title>
<updated>2022-08-01T20:32:53+00:00</updated>
<author>
<name>Mathias Fußenegger</name>
<email>mfussenegger@users.noreply.github.com</email>
</author>
<published>2022-08-01T20:32:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e99de3f12f00662e8131fed9912792f6d43c4975'/>
<id>e99de3f12f00662e8131fed9912792f6d43c4975</id>
<content type='text'>
`:saveas newName` changes the name of an existing buffer.
Due to the buffer re-use it skips the lsp attach phase and immediately
sends a `didSave` notification to the server.
Servers get confused about this, because they expect a `didOpen`
notification first.

Closes https://github.com/neovim/neovim/issues/18688</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`:saveas newName` changes the name of an existing buffer.
Due to the buffer re-use it skips the lsp attach phase and immediately
sends a `didSave` notification to the server.
Servers get confused about this, because they expect a `didOpen`
notification first.

Closes https://github.com/neovim/neovim/issues/18688</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(lsp): use autocmd api (#19407)</title>
<updated>2022-07-17T17:13:33+00:00</updated>
<author>
<name>ii14</name>
<email>59243201+ii14@users.noreply.github.com</email>
</author>
<published>2022-07-17T17:13:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=13abe20b5f855779456c84b9583ed614223a69c8'/>
<id>13abe20b5f855779456c84b9583ed614223a69c8</id>
<content type='text'>
* refactor(lsp): use autocmd api

* refactor(lsp): inline BufWritePost and VimLeavePre callbacks

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* refactor(lsp): use autocmd api

* refactor(lsp): inline BufWritePost and VimLeavePre callbacks

</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): small bugs in snippet-parser #18998</title>
<updated>2022-06-29T16:53:49+00:00</updated>
<author>
<name>L3MON4D3</name>
<email>41961280+L3MON4D3@users.noreply.github.com</email>
</author>
<published>2022-06-29T16:53:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=6f6286e4f90da25a7d1b6bcc96b79b0ccbaf5c26'/>
<id>6f6286e4f90da25a7d1b6bcc96b79b0ccbaf5c26</id>
<content type='text'>
This fixes the following bugs:
`${1:else_text}` -&gt; format with if_text: "else_text"
`${1:-else_text}` -&gt; format with if_text: "else_text"
`${1:}` in `format` (eg. empty else_text) -&gt; error.
`${1:}` (eg. empty placeholder) -&gt; error.

Thanks hrsh7th :)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes the following bugs:
`${1:else_text}` -&gt; format with if_text: "else_text"
`${1:-else_text}` -&gt; format with if_text: "else_text"
`${1:}` in `format` (eg. empty else_text) -&gt; error.
`${1:}` (eg. empty placeholder) -&gt; error.

Thanks hrsh7th :)</pre>
</div>
</content>
</entry>
<entry>
<title>test(report): formatting, drop dumplog()</title>
<updated>2022-06-16T02:23:10+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2022-05-30T09:40:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b6467dfc23dab476e256490b8014bbb488684e6b'/>
<id>b6467dfc23dab476e256490b8014bbb488684e6b</id>
<content type='text'>
Don't need to dumplog() on each failed test because we now have test-ids
that associate log messages with tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't need to dumplog() on each failed test because we now have test-ids
that associate log messages with tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): fix multi client handling in code action (#18869)</title>
<updated>2022-06-05T14:43:32+00:00</updated>
<author>
<name>Mathias Fußenegger</name>
<email>mfussenegger@users.noreply.github.com</email>
</author>
<published>2022-06-05T14:43:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e4df1c9b9e61e79234684d30ca700b42f82bc34a'/>
<id>e4df1c9b9e61e79234684d30ca700b42f82bc34a</id>
<content type='text'>
Fixes https://github.com/neovim/neovim/issues/18860</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes https://github.com/neovim/neovim/issues/18860</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lsp): send didChangeConfiguration after init (#18847)</title>
<updated>2022-06-03T16:16:11+00:00</updated>
<author>
<name>Mathias Fußenegger</name>
<email>mfussenegger@users.noreply.github.com</email>
</author>
<published>2022-06-03T16:16:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=c6d747e6a5227e17556c62e16ed054398eb1a89a'/>
<id>c6d747e6a5227e17556c62e16ed054398eb1a89a</id>
<content type='text'>
Most LSP servers require the notification to correctly load the
settings and for those who don't it doesn't cause any harm.

So far this is done in lspconfig, but with the addition of vim.lsp.start
it should be part of core.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most LSP servers require the notification to correctly load the
settings and for those who don't it doesn't cause any harm.

So far this is done in lspconfig, but with the addition of vim.lsp.start
it should be part of core.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(checkhealth): skip vim.health #18816</title>
<updated>2022-06-01T14:10:10+00:00</updated>
<author>
<name>Javier Lopez</name>
<email>graulopezjavier@gmail.com</email>
</author>
<published>2022-06-01T14:10:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=d837b6d50cbb7e90ac8f77a9e1ac2a69acae02c1'/>
<id>d837b6d50cbb7e90ac8f77a9e1ac2a69acae02c1</id>
<content type='text'>
Problem:
https://github.com/neovim/neovim/pull/18720#issuecomment-1142614996

The vim.health module is detected as a healthcheck, which produces spurious errors:

    vim: require("vim.health").check()
    ========================================================================
    - ERROR: Failed to run healthcheck for "vim" plugin. Exception:
      function health#check, line 20
      Vim(eval):E5108: Error executing lua [string "luaeval()"]:1: attempt to call field 'check' (a nil value)
      stack traceback:
      [string "luaeval()"]:1: in main chunk

Solution:
Skip vim.health when discovering healthchecks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
https://github.com/neovim/neovim/pull/18720#issuecomment-1142614996

The vim.health module is detected as a healthcheck, which produces spurious errors:

    vim: require("vim.health").check()
    ========================================================================
    - ERROR: Failed to run healthcheck for "vim" plugin. Exception:
      function health#check, line 20
      Vim(eval):E5108: Error executing lua [string "luaeval()"]:1: attempt to call field 'check' (a nil value)
      stack traceback:
      [string "luaeval()"]:1: in main chunk

Solution:
Skip vim.health when discovering healthchecks.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(ci): remove 2000ms blocking wait in many plugin/lsp_spec.lua tests</title>
<updated>2022-05-22T12:14:58+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-05-22T12:06:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=58b9b7e7c48e5996e041cdbfa526e6cad5b37b97'/>
<id>58b9b7e7c48e5996e041cdbfa526e6cad5b37b97</id>
<content type='text'>
Cuts down typical run time for `plugin/lsp_spec.lua`
from 70 secs to 12 secs in ASAN CI build.

This happens in ASAN/EXIT_FREE builds where nvim waits 2000ms due to
unclosed handled. I wasn't able to pin-point the exact cause.
But these tests ran in nested context where two server/client pairs
were setup for no good reason. Moving these tests out so only one client
is being setup fixed the exit hang.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cuts down typical run time for `plugin/lsp_spec.lua`
from 70 secs to 12 secs in ASAN CI build.

This happens in ASAN/EXIT_FREE builds where nvim waits 2000ms due to
unclosed handled. I wasn't able to pin-point the exact cause.
But these tests ran in nested context where two server/client pairs
were setup for no good reason. Moving these tests out so only one client
is being setup fixed the exit hang.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lsp): add LspAttach and LspDetach autocommands</title>
<updated>2022-05-18T17:21:00+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2022-05-09T18:00:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=2ffafc7aa91fb1d9a71fff12051e40961a7b7f69'/>
<id>2ffafc7aa91fb1d9a71fff12051e40961a7b7f69</id>
<content type='text'>
The current approach of using `on_attach` callbacks for configuring
buffers for LSP is suboptimal:

1. It does not use the standard Nvim interface for driving and hooking
   into events (i.e. autocommands)
2. There is no way for "third parties" (e.g. plugins) to hook into the
   event. This means that *all* buffer configuration must go into the
   user-supplied on_attach callback. This also makes it impossible for
   these configurations to be modular, since it all must happen in the
   same place.
3. There is currently no way to do something when a client detaches from
   a buffer (there is no `on_detach` callback).

The solution is to use the traditional method of event handling in Nvim:
autocommands. When a LSP client is attached to a buffer, fire a
`LspAttach`. Likewise, when a client detaches from a buffer fire a
`LspDetach` event.

This enables plugins to easily add LSP-specific configuration to buffers
as well as enabling users to make their own configurations more modular
(e.g. by creating multiple LspAttach autocommands that each do
something unique).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current approach of using `on_attach` callbacks for configuring
buffers for LSP is suboptimal:

1. It does not use the standard Nvim interface for driving and hooking
   into events (i.e. autocommands)
2. There is no way for "third parties" (e.g. plugins) to hook into the
   event. This means that *all* buffer configuration must go into the
   user-supplied on_attach callback. This also makes it impossible for
   these configurations to be modular, since it all must happen in the
   same place.
3. There is currently no way to do something when a client detaches from
   a buffer (there is no `on_detach` callback).

The solution is to use the traditional method of event handling in Nvim:
autocommands. When a LSP client is attached to a buffer, fire a
`LspAttach`. Likewise, when a client detaches from a buffer fire a
`LspDetach` event.

This enables plugins to easily add LSP-specific configuration to buffers
as well as enabling users to make their own configurations more modular
(e.g. by creating multiple LspAttach autocommands that each do
something unique).
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(man.vim): q in "$MANPAGER mode" does not quit #18443</title>
<updated>2022-05-13T14:49:08+00:00</updated>
<author>
<name>Arsham Shirvani</name>
<email>arshamshirvani@gmail.com</email>
</author>
<published>2022-05-13T14:49:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=f6ba7d69be2c57f80c9ee95276733e949aceb009'/>
<id>f6ba7d69be2c57f80c9ee95276733e949aceb009</id>
<content type='text'>
Problem:
q in "$MANPAGER mode" does not quit Nvim. This is because
ftplugin/man.vim creates its own mapping:
    nnoremap &lt;silent&gt; &lt;buffer&gt; &lt;nowait&gt; q :lclose&lt;CR&gt;&lt;C-W&gt;c
which overrides the one set by the autoload file when using :Man!
("$MANPAGER mode")

Solution:
Set b:pager during "$MANPAGER mode" so that ftplugin/man.vim can set the
mapping correctly.

Fixes #18281
Ref #17791

Helped-by: Gregory Anders &lt;8965202+gpanders@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
q in "$MANPAGER mode" does not quit Nvim. This is because
ftplugin/man.vim creates its own mapping:
    nnoremap &lt;silent&gt; &lt;buffer&gt; &lt;nowait&gt; q :lclose&lt;CR&gt;&lt;C-W&gt;c
which overrides the one set by the autoload file when using :Man!
("$MANPAGER mode")

Solution:
Set b:pager during "$MANPAGER mode" so that ftplugin/man.vim can set the
mapping correctly.

Fixes #18281
Ref #17791

Helped-by: Gregory Anders &lt;8965202+gpanders@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
</feed>
