<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/plugin, 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): schedule call to vim.lsp.start for async root_dir (#31998)</title>
<updated>2025-01-14T14:19:54+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2025-01-14T14:19:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e8a6c1b02122852da83dc52184e78369598d8240'/>
<id>e8a6c1b02122852da83dc52184e78369598d8240</id>
<content type='text'>
When `root_dir` is a function it can (and often will) call the provided
callback function in a fast API context (e.g. in the `on_exit` handler
of `vim.system`). When the callback function is executed we should
ensure that it runs vim.lsp.start on the main event loop.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When `root_dir` is a function it can (and often will) call the provided
callback function in a fast API context (e.g. in the `on_exit` handler
of `vim.system`). When the callback function is executed we should
ensure that it runs vim.lsp.start on the main event loop.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): minimum height for floating popup #31990</title>
<updated>2025-01-13T23:17:23+00:00</updated>
<author>
<name>Xuyuan Pang</name>
<email>xuyuanp@gmail.com</email>
</author>
<published>2025-01-13T23:17:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=a4f575abd85e734340ee303daace1a63e5ca9782'/>
<id>a4f575abd85e734340ee303daace1a63e5ca9782</id>
<content type='text'>
Problem:
The floating window for hover and signature help always cuts off a few lines,
because the `_make_floating_popup_size` function counts empty lines as having
zero height.

Solution:
Ensure the height is at least 1.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
The floating window for hover and signature help always cuts off a few lines,
because the `_make_floating_popup_size` function counts empty lines as having
zero height.

Solution:
Ensure the height is at least 1.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(health): show :checkhealth in floating window #31086</title>
<updated>2025-01-07T16:09:01+00:00</updated>
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<published>2025-01-07T16:09:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b12b91c2743954dbe8599caa60e58e5d74aa4e76'/>
<id>b12b91c2743954dbe8599caa60e58e5d74aa4e76</id>
<content type='text'>
Problem: health can not shown in a floating window
Solution: add g:health variable</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: health can not shown in a floating window
Solution: add g:health variable</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>feat(lsp): return resolved config for vim.lsp.config[name]</title>
<updated>2024-12-31T12:18:05+00:00</updated>
<author>
<name>Mathias Fussenegger</name>
<email>f.mathias@zignar.net</email>
</author>
<published>2024-12-29T12:44:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e00cd1ab4060915d86b8536b082e663818268b69'/>
<id>e00cd1ab4060915d86b8536b082e663818268b69</id>
<content type='text'>
Allows to retrieve the configuration as it will be used by `lsp.enable`
- including the parts merged from `*` and rtp.

This is useful for explicit startup control
(`vim.lsp.start(vim.lsp.config[name])`)

Closes https://github.com/neovim/neovim/issues/31640
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allows to retrieve the configuration as it will be used by `lsp.enable`
- including the parts merged from `*` and rtp.

This is useful for explicit startup control
(`vim.lsp.start(vim.lsp.config[name])`)

Closes https://github.com/neovim/neovim/issues/31640
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lsp): support function for client root_dir (#31630)</title>
<updated>2024-12-27T16:09:22+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2024-12-27T16:09:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=35247b00a44e838ed7d657a9b94964dc0664d28d'/>
<id>35247b00a44e838ed7d657a9b94964dc0664d28d</id>
<content type='text'>
If root_dir is a function it is evaluated when the client is created to
determine the root directory.

This enables dynamically determining the root directory based on e.g.
project or directory structure (example: finding a parent Cargo.toml
file that contains "[workspace]" in a Rust project).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If root_dir is a function it is evaluated when the client is created to
determine the root directory.

This enables dynamically determining the root directory based on e.g.
project or directory structure (example: finding a parent Cargo.toml
file that contains "[workspace]" in a Rust project).</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(man.lua): various changes</title>
<updated>2024-12-18T14:40:36+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2024-12-16T16:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=7121983c45d92349a6532f32dcde9f425e30781e'/>
<id>7121983c45d92349a6532f32dcde9f425e30781e</id>
<content type='text'>
- Replace all uses of vim.regex with simpler Lua patterns.
- Replace all uses of vim.fn.substitute with string.gsub.
- Rework error handling so expected errors are passed back via a return.
  - These get routed up an passed to `vim.notify()`
  - Any other errors will cause a stack trace.
- Reworked the module initialization of `localfile_arg`
- Updated all type annotations.
- Refactored CLI completion by introduction a parse_cmdline()
  function.
- Simplified `show_toc()`
- Refactor highlighting
- Inline some functions
- Fix completion on MacOS 13 and earlier.
  - Prefer `manpath -q` over `man -w`
- Make completion more efficient by avoiding vim.fn.sort and vim.fn.uniq
  - Reimplement using a single loop
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Replace all uses of vim.regex with simpler Lua patterns.
- Replace all uses of vim.fn.substitute with string.gsub.
- Rework error handling so expected errors are passed back via a return.
  - These get routed up an passed to `vim.notify()`
  - Any other errors will cause a stack trace.
- Reworked the module initialization of `localfile_arg`
- Updated all type annotations.
- Refactored CLI completion by introduction a parse_cmdline()
  function.
- Simplified `show_toc()`
- Refactor highlighting
- Inline some functions
- Fix completion on MacOS 13 and earlier.
  - Prefer `manpath -q` over `man -w`
- Make completion more efficient by avoiding vim.fn.sort and vim.fn.uniq
  - Reimplement using a single loop
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(lsp): vim.lsp.start fails if existing client has no workspace_folders #31608</title>
<updated>2024-12-18T14:37:12+00:00</updated>
<author>
<name>phanium</name>
<email>91544758+phanen@users.noreply.github.com</email>
</author>
<published>2024-12-18T14:37:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=888a803755c58db56b5b20fcf6b812de877056c9'/>
<id>888a803755c58db56b5b20fcf6b812de877056c9</id>
<content type='text'>
Problem:
regression since https://github.com/neovim/neovim/pull/31340

`nvim -l repro.lua`:
```lua
vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls' }
vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls', root_dir = 'foo' }

-- swapped case will be ok:
-- vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls', root_dir = 'foo' }
-- vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls' }
```

Failure:
```
E5113: Error while calling lua chunk: /…/lua/vim/lsp.lua:214: bad argument #1 to
'ipairs' (table expected, got nil)
stack traceback:
        [C]: in function 'ipairs'
        /…/lua/vim/lsp.lua:214: in function 'reuse_client'
        /…/lua/vim/lsp.lua:629: in function 'start'
        repro.lua:34: in main chunk
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
regression since https://github.com/neovim/neovim/pull/31340

`nvim -l repro.lua`:
```lua
vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls' }
vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls', root_dir = 'foo' }

-- swapped case will be ok:
-- vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls', root_dir = 'foo' }
-- vim.lsp.start { cmd = { 'lua-language-server' }, name = 'lua_ls' }
```

Failure:
```
E5113: Error while calling lua chunk: /…/lua/vim/lsp.lua:214: bad argument #1 to
'ipairs' (table expected, got nil)
stack traceback:
        [C]: in function 'ipairs'
        /…/lua/vim/lsp.lua:214: in function 'reuse_client'
        /…/lua/vim/lsp.lua:629: in function 'start'
        repro.lua:34: in main chunk
```</pre>
</div>
</content>
</entry>
</feed>
