<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/plugin/lsp, branch rahm</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): don't use completion filterText if prefix is empty</title>
<updated>2025-01-19T21:11:20+00:00</updated>
<author>
<name>Mathias Fussenegger</name>
<email>f.mathias@zignar.net</email>
</author>
<published>2025-01-19T20:49:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=5f527f24f0ea89e9071e065530cbed449507df5c'/>
<id>5f527f24f0ea89e9071e065530cbed449507df5c</id>
<content type='text'>
Follow up to https://github.com/neovim/neovim/pull/32072

If there is no prefix (e.g. at the start of word boundary or a line), it
always used the `filterText` because the `match` function always
returned false.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow up to https://github.com/neovim/neovim/pull/32072

If there is no prefix (e.g. at the start of word boundary or a line), it
always used the `filterText` because the `match` function always
returned false.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): use filterText as word if textEdit/label doesn't match</title>
<updated>2025-01-17T17:34:58+00:00</updated>
<author>
<name>Mathias Fussenegger</name>
<email>f.mathias@zignar.net</email>
</author>
<published>2025-01-17T14:27:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b9e6fa7ec81c463d77cc919392b52f6df2d8d304'/>
<id>b9e6fa7ec81c463d77cc919392b52f6df2d8d304</id>
<content type='text'>
Problem:

With language servers like lemminx, completing xml tags like `&lt;mo` first
shows the right candidates (`modules`) but after typing `d` the
candidates disappear.

This is because the server returns:

    [...]
    filterText = "&lt;module",
    label = "module",
    textEdit = {
      newText = "&lt;module&gt;$1&lt;/module&gt;$0",

Which resulted in `module` being used as `word`, and `module` doesn't
match the prefix `&lt;mo`. Typing `d` causes the `complete()` filtering
mechanism to kick in and remove the entry.

Solution:

Use `&lt;module` from the `filterText` as `word` if the textEdit/label
heuristic doesn't match.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:

With language servers like lemminx, completing xml tags like `&lt;mo` first
shows the right candidates (`modules`) but after typing `d` the
candidates disappear.

This is because the server returns:

    [...]
    filterText = "&lt;module",
    label = "module",
    textEdit = {
      newText = "&lt;module&gt;$1&lt;/module&gt;$0",

Which resulted in `module` being used as `word`, and `module` doesn't
match the prefix `&lt;mo`. Typing `d` causes the `complete()` filtering
mechanism to kick in and remove the entry.

Solution:

Use `&lt;module` from the `filterText` as `word` if the textEdit/label
heuristic doesn't match.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): open_floating_preview() zindex relative to current window #31886</title>
<updated>2025-01-06T14:05:50+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2025-01-06T14:05:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=86770108e2c6e08c2b8b95f1611923ba99b854dd'/>
<id>86770108e2c6e08c2b8b95f1611923ba99b854dd</id>
<content type='text'>
Problem:  open_floating_preview() may be hidden behind current window if
          that is floating and has a higher zindex.
Solution: Open floating preview with zindex higher than current window.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  open_floating_preview() may be hidden behind current window if
          that is floating and has a higher zindex.
Solution: Open floating preview with zindex higher than current window.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): reuse client if configs match and no root dir</title>
<updated>2024-12-13T14:36:24+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2024-12-13T10:51:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=9c20342297391c4076809964e799f2c7705b819b'/>
<id>9c20342297391c4076809964e799f2c7705b819b</id>
<content type='text'>
Problem:
An LSP configuration that creates client with no root_dir or
workspace_folders can result in vim.lsp.enable attaching to it multiple
times.

Solution:
When checking existing clients, reuse a client if it wasn't initially
configured have any workspace_folders. This more closely matches the
behaviour we had prior to d9235ef
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
An LSP configuration that creates client with no root_dir or
workspace_folders can result in vim.lsp.enable attaching to it multiple
times.

Solution:
When checking existing clients, reuse a client if it wasn't initially
configured have any workspace_folders. This more closely matches the
behaviour we had prior to d9235ef
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: remove vim.lsp._with_extend</title>
<updated>2024-12-07T10:08:58+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2024-12-06T17:09:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=5c245ec3e95570e515c1665a2ec694828706ac52'/>
<id>5c245ec3e95570e515c1665a2ec694828706ac52</id>
<content type='text'>
Not used anywhere.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not used anywhere.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lsp): deprecate vim.lsp.start_client #31341</title>
<updated>2024-12-04T13:14:47+00:00</updated>
<author>
<name>Maria José Solano</name>
<email>majosolano99@gmail.com</email>
</author>
<published>2024-12-04T13:14:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e56437cd48f7df87ccdfb79812ee56241c0da0cb'/>
<id>e56437cd48f7df87ccdfb79812ee56241c0da0cb</id>
<content type='text'>
Problem:
LSP module has multiple "start" interfaces.

Solution:
- Enhance vim.lsp.start
- Deprecate vim.lsp.start_client</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
LSP module has multiple "start" interfaces.

Solution:
- Enhance vim.lsp.start
- Deprecate vim.lsp.start_client</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lsp): support `textDocument/foldingRange` (#31311)</title>
<updated>2024-11-29T12:40:32+00:00</updated>
<author>
<name>Yi Ming</name>
<email>ofseed@foxmail.com</email>
</author>
<published>2024-11-29T12:40:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=a1e313ded6e4c46c58012639e5c0c6d0b009d52a'/>
<id>a1e313ded6e4c46c58012639e5c0c6d0b009d52a</id>
<content type='text'>
* refactor(shared): extract `vim._list_insert` and `vim._list_remove`

* feat(lsp): add `vim.lsp.foldexpr()`

* docs(lsp): add a todo for state management

* feat(lsp): add `vim.lsp.folding_range.foldclose()`

* feat(lsp): schedule `foldclose()` if the buffer is not up-to-date

* feat(lsp): add `vim.lsp.foldtext()`

* feat(lsp): support multiple folding range providers

* refactor(lsp): expose all folding related functions under `vim.lsp.*`

* perf(lsp): add `lsp.MultiHandler` for do `foldupdate()` only once</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* refactor(shared): extract `vim._list_insert` and `vim._list_remove`

* feat(lsp): add `vim.lsp.foldexpr()`

* docs(lsp): add a todo for state management

* feat(lsp): add `vim.lsp.folding_range.foldclose()`

* feat(lsp): schedule `foldclose()` if the buffer is not up-to-date

* feat(lsp): add `vim.lsp.foldtext()`

* feat(lsp): support multiple folding range providers

* refactor(lsp): expose all folding related functions under `vim.lsp.*`

* perf(lsp): add `lsp.MultiHandler` for do `foldupdate()` only once</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): retrigger diagnostics request on server cancellation (#31345)</title>
<updated>2024-11-25T17:48:11+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2024-11-25T17:48:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=29c72cdf4a4913c152f037865cb28c78a8930340'/>
<id>29c72cdf4a4913c152f037865cb28c78a8930340</id>
<content type='text'>
Co-authored-by: Jesse &lt;github@jessebakker.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Jesse &lt;github@jessebakker.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(lsp): rename `offset_encoding` to `position_encoding` #31286</title>
<updated>2024-11-25T16:06:05+00:00</updated>
<author>
<name>Yi Ming</name>
<email>ofseed@foxmail.com</email>
</author>
<published>2024-11-25T16:06:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=165b099fa38c5f4a9855cda3d13575bf63767647'/>
<id>165b099fa38c5f4a9855cda3d13575bf63767647</id>
<content type='text'>
Problem:
LSP spec uses the term "position encoding" where we say "offset encoding".

Solution:
- Rename it everywhere except `vim.lsp.Client.offset_encoding` (which would be breaking).
- Mention "position encoding" in the documentation for `vim.lsp.Client.offset_encoding`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
LSP spec uses the term "position encoding" where we say "offset encoding".

Solution:
- Rename it everywhere except `vim.lsp.Client.offset_encoding` (which would be breaking).
- Mention "position encoding" in the documentation for `vim.lsp.Client.offset_encoding`.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): delete bufvar inside WinClosed event</title>
<updated>2024-11-24T10:47:05+00:00</updated>
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<published>2024-11-23T11:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=2a1f604c77a161f076f7d520d66fc6f051b625e7'/>
<id>2a1f604c77a161f076f7d520d66fc6f051b625e7</id>
<content type='text'>
Problem: floaing preview window can be closed by some
ex commands like `only` `fclose` which will not clean the bufvar

Solution: use WinClosed event with floating_winnr for clean
bufnr, and add test cases for vim.lsp.util.open_floating_preview
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: floaing preview window can be closed by some
ex commands like `only` `fclose` which will not clean the bufvar

Solution: use WinClosed event with floating_winnr for clean
bufnr, and add test cases for vim.lsp.util.open_floating_preview
</pre>
</div>
</content>
</entry>
</feed>
