<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/runtime/lua/vim/lsp.lua, branch floattitle</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(lua): properly configure luacheck and remove `local vim = ...` lines (#20551)</title>
<updated>2022-10-09T10:40:56+00:00</updated>
<author>
<name>Folke Lemaitre</name>
<email>folke.lemaitre@gmail.com</email>
</author>
<published>2022-10-09T10:40:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=8c2226fc30931690186390d86f963cd43e6947ef'/>
<id>8c2226fc30931690186390d86f963cd43e6947ef</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lsp): add bufnr option to lsp.start (#20473)</title>
<updated>2022-10-04T18:44:19+00:00</updated>
<author>
<name>August Masquelier</name>
<email>31262046+levouh@users.noreply.github.com</email>
</author>
<published>2022-10-04T18:44:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=b075f49d9229b3e58a4d6677ed8e01db60687fa3'/>
<id>b075f49d9229b3e58a4d6677ed8e01db60687fa3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(docs): invalid :help links #20345</title>
<updated>2022-09-25T23:58:27+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2022-09-25T23:58:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=63be7651829f8b77c4974d08ebe09f7775e41a8a'/>
<id>63be7651829f8b77c4974d08ebe09f7775e41a8a</id>
<content type='text'>
Fix those naughty single quotes.

closes #20159</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix those naughty single quotes.

closes #20159</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): schedule removal of client object (#20148)</title>
<updated>2022-09-11T00:56:29+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>8965202+gpanders@users.noreply.github.com</email>
</author>
<published>2022-09-11T00:56:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=9b4cab012662514af6fda3648d544633e1d73d4b'/>
<id>9b4cab012662514af6fda3648d544633e1d73d4b</id>
<content type='text'>
The execution of the LspDetach autocommands in the LSP client's on_exit
function are scheduled on the event loop to avoid making API calls in a
fast context; however, this means that by the time the LspDetach
autocommands finally run the client object has already been deleted.

To address this, we also schedule the deletion of the client on the
event loop so that it is guaranteed to occur after all of the LspDetach
autocommands have fired.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The execution of the LspDetach autocommands in the LSP client's on_exit
function are scheduled on the event loop to avoid making API calls in a
fast context; however, this means that by the time the LspDetach
autocommands finally run the client object has already been deleted.

To address this, we also schedule the deletion of the client on the
event loop so that it is guaranteed to occur after all of the LspDetach
autocommands have fired.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): when buffer detach remove buffer from client attached buffers (#20081)</title>
<updated>2022-09-08T15:09:32+00:00</updated>
<author>
<name>Raphael</name>
<email>glephunter@gmail.com</email>
</author>
<published>2022-09-08T15:09:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=30ca6d23a9c77175a76a4cd59da81de83d9253af'/>
<id>30ca6d23a9c77175a76a4cd59da81de83d9253af</id>
<content type='text'>


Co-authored-by: Mathias Fussenegger &lt;f.mathias@zignar.net&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>


Co-authored-by: Mathias Fussenegger &lt;f.mathias@zignar.net&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lsp): add tcp support</title>
<updated>2022-08-28T12:07:53+00:00</updated>
<author>
<name>Mathias Fussenegger</name>
<email>f.mathias@zignar.net</email>
</author>
<published>2022-08-24T18:25:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=60ec6e34d585a7f633d49aab790066c1740885e1'/>
<id>60ec6e34d585a7f633d49aab790066c1740885e1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(lsp): encapsulate rpc uv handle</title>
<updated>2022-08-28T12:07:53+00:00</updated>
<author>
<name>Mathias Fussenegger</name>
<email>f.mathias@zignar.net</email>
</author>
<published>2022-08-23T20:39:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=7d3e4aee6a11f0bd4c53b0dcb18a496b5fdd32b2'/>
<id>7d3e4aee6a11f0bd4c53b0dcb18a496b5fdd32b2</id>
<content type='text'>
To prepare for different transports like TCP where the handle won't have
a kill method.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To prepare for different transports like TCP where the handle won't have
a kill method.
</pre>
</div>
</content>
</entry>
<entry>
<title>docs(lsp): remove lsp.buf_request from docs (#19738)</title>
<updated>2022-08-18T08:57:17+00:00</updated>
<author>
<name>Mathias Fußenegger</name>
<email>mfussenegger@users.noreply.github.com</email>
</author>
<published>2022-08-18T08:57:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=341ef46d008d765640e65404f8dc7760175d4c7d'/>
<id>341ef46d008d765640e65404f8dc7760175d4c7d</id>
<content type='text'>
This starts a soft phase-out of `buf_request`.

`buf_request` is quite error prone:

- Positional `params` depend on the client because of the
  `offset_encoding`. Currently if there is one client using UTF-8 offset
  encoding and another using UTF-16, the positions in the request are
  wrong for one of the clients. To solve this the params would need to
  be created per client instead of once for all of them.

- `handler` is called *per* client but many users of it assume it is
  only called once.

  This can lead to a "select n + 1"
  kind of problem, where the handler makes another call to `buf_request`,
  multiplying the amount of requests.
  (There are in fact still some places where this happens in core)

  Or it leads to erratic behavior if called multiple times (E.g. the
  quicklist list flickering &amp; being overwritten)
  (See hover or references implementation)

  `buf_request_all` returns an aggregate of the responses which is more
  sensible as it avoids this problem.

  For off-spec extensions it also has the problem that it sends requests to
  clients which cannot handle a given request.

Given that `buf_request` is in use by a lot of plugins this starts a
soft-phase out. Planned Steps:

- Remove from docs
- Provide an alternative, either `buf_request_all`, maybe with
  extensions (params being a function), or an entirely new method.
- Mark as deprecated in 0.9
- Remove in 0.10

To note:

- `buf_request_all` currently isn't ideal either because it suffers from
the `params` problem as well.

- This implies that the `vim.lsp.with` pattern will die, because the
  global handlers as they are don't fit a multi-client model, as most of
  the time an aggregate is needed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This starts a soft phase-out of `buf_request`.

`buf_request` is quite error prone:

- Positional `params` depend on the client because of the
  `offset_encoding`. Currently if there is one client using UTF-8 offset
  encoding and another using UTF-16, the positions in the request are
  wrong for one of the clients. To solve this the params would need to
  be created per client instead of once for all of them.

- `handler` is called *per* client but many users of it assume it is
  only called once.

  This can lead to a "select n + 1"
  kind of problem, where the handler makes another call to `buf_request`,
  multiplying the amount of requests.
  (There are in fact still some places where this happens in core)

  Or it leads to erratic behavior if called multiple times (E.g. the
  quicklist list flickering &amp; being overwritten)
  (See hover or references implementation)

  `buf_request_all` returns an aggregate of the responses which is more
  sensible as it avoids this problem.

  For off-spec extensions it also has the problem that it sends requests to
  clients which cannot handle a given request.

Given that `buf_request` is in use by a lot of plugins this starts a
soft-phase out. Planned Steps:

- Remove from docs
- Provide an alternative, either `buf_request_all`, maybe with
  extensions (params being a function), or an entirely new method.
- Mark as deprecated in 0.9
- Remove in 0.10

To note:

- `buf_request_all` currently isn't ideal either because it suffers from
the `params` problem as well.

- This implies that the `vim.lsp.with` pattern will die, because the
  global handlers as they are don't fit a multi-client model, as most of
  the time an aggregate is needed.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): fix nil value error in get_group (#19735)</title>
<updated>2022-08-12T08:10:03+00:00</updated>
<author>
<name>Mathias Fußenegger</name>
<email>mfussenegger@users.noreply.github.com</email>
</author>
<published>2022-08-12T08:10:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=02289ab898575368eeaa234bbd78725f8463044c'/>
<id>02289ab898575368eeaa234bbd78725f8463044c</id>
<content type='text'>
`server_capabilities` can be nil until the server is initialized.
Reproduced with:

    vim.lsp.stop_client(vim.lsp.start_client {
      cmd = { vim.v.progpath, '-es', '-u', 'NONE', '--headless' };
    })</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`server_capabilities` can be nil until the server is initialized.
Reproduced with:

    vim.lsp.stop_client(vim.lsp.start_client {
      cmd = { vim.v.progpath, '-es', '-u', 'NONE', '--headless' };
    })</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): handle nil client in onexit callback (#19722)</title>
<updated>2022-08-11T17:21:57+00:00</updated>
<author>
<name>Mathias Fußenegger</name>
<email>mfussenegger@users.noreply.github.com</email>
</author>
<published>2022-08-11T17:21:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=33b77eb728a1f07926ba19c4f09fd20e806de363'/>
<id>33b77eb728a1f07926ba19c4f09fd20e806de363</id>
<content type='text'>
Follow up to https://github.com/neovim/neovim/pull/19658</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow up to https://github.com/neovim/neovim/pull/19658</pre>
</div>
</content>
</entry>
</feed>
