<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/plugin/lsp_spec.lua, branch tmp</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(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='http://git.josher.dev/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='http://git.josher.dev/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>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='http://git.josher.dev/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='http://git.josher.dev/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='http://git.josher.dev/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(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='http://git.josher.dev/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='http://git.josher.dev/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(lsp): perform client side filtering of code actions (#18392)</title>
<updated>2022-05-12T16:48:02+00:00</updated>
<author>
<name>Fredrik Ekre</name>
<email>ekrefredrik@gmail.com</email>
</author>
<published>2022-05-12T16:48:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=a9d25e94725d5cfc41c2fabff22b2284e109fa0c'/>
<id>a9d25e94725d5cfc41c2fabff22b2284e109fa0c</id>
<content type='text'>
Implement filtering of actions based on the kind when passing the 'only'
parameter to code_action(). Action kinds are hierachical with a '.' as
the separator, and the filter thus allows, for example, both 'quickfix'
and 'quickfix.foo' when requestiong only 'quickfix'.

Fix https://github.com/neovim/neovim/pull/18221#issuecomment-1110179121</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement filtering of actions based on the kind when passing the 'only'
parameter to code_action(). Action kinds are hierachical with a '.' as
the separator, and the filter thus allows, for example, both 'quickfix'
and 'quickfix.foo' when requestiong only 'quickfix'.

Fix https://github.com/neovim/neovim/pull/18221#issuecomment-1110179121</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): fix rename capability checks and multi client support (#18441)</title>
<updated>2022-05-05T21:56:00+00:00</updated>
<author>
<name>Mathias Fußenegger</name>
<email>mfussenegger@users.noreply.github.com</email>
</author>
<published>2022-05-05T21:56:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=55187de1157e05ea71c7c0404345dee0e27e963e'/>
<id>55187de1157e05ea71c7c0404345dee0e27e963e</id>
<content type='text'>
Adds filter and id options to filter the client to use for rename.
Similar to the recently added `format` function.

rename will use all matching clients one after another and can handle a
mix of prepareRename/rename support. Also ensures the right
`offset_encoding` is used for the `make_position_params` calls</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds filter and id options to filter the client to use for rename.
Similar to the recently added `format` function.

rename will use all matching clients one after another and can handle a
mix of prepareRename/rename support. Also ensures the right
`offset_encoding` is used for the `make_position_params` calls</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): make sure to always reset active codelens refreshes (#18331)</title>
<updated>2022-05-05T16:50:12+00:00</updated>
<author>
<name>William Boman</name>
<email>william@redwill.se</email>
</author>
<published>2022-05-05T16:50:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=94eb72cc44fee4cae7a41cb1ff5fb21f81976658'/>
<id>94eb72cc44fee4cae7a41cb1ff5fb21f81976658</id>
<content type='text'>
This fixes issues where subsequent calls to vim.lsp.codelens.refresh()
would have no effect due to the buffer not getting cleared from the
active_refresh table.

Examples of how such scenarios would occur are:
  - A textDocument/codeLens result yielded an error.
  - The 'textDocument/codeLens' handler was overriden in such a way that
    it no longer called vim.lsp.codelens.on_codelens().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes issues where subsequent calls to vim.lsp.codelens.refresh()
would have no effect due to the buffer not getting cleared from the
active_refresh table.

Examples of how such scenarios would occur are:
  - A textDocument/codeLens result yielded an error.
  - The 'textDocument/codeLens' handler was overriden in such a way that
    it no longer called vim.lsp.codelens.on_codelens().
</pre>
</div>
</content>
</entry>
</feed>
