<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/src/nvim/api/command.c, branch master</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>refactor(api): reuse parse_cmdline in nvim_cmd #38508</title>
<updated>2026-09-22T09:24:42+00:00</updated>
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<published>2026-09-22T09:24:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=6c97dd7e9bbb6503b866b8c76da370c2d44b4779'/>
<id>6c97dd7e9bbb6503b866b8c76da370c2d44b4779</id>
<content type='text'>
Problem:
nvim_cmd() duplicates Ex parsing: it sets the address type and default
range itself and builds the whole command line in build_cmdline_str().

Solution:
Build only the range, command name and arguments, and let
parse_cmdline() fill in exarg_T.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
nvim_cmd() duplicates Ex parsing: it sets the address type and default
range itself and builds the whole command line in build_cmdline_str().

Solution:
Build only the range, command name and arguments, and let
parse_cmdline() fill in exarg_T.</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(api): omit optional param</title>
<updated>2026-07-13T17:44:15+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-07-13T17:25:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=9982f6e0e4f712aea28d3351f180786d29cf808d'/>
<id>9982f6e0e4f712aea28d3351f180786d29cf808d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(api): drop CmdParseInfo indirection #40657</title>
<updated>2026-07-09T17:30:33+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-07-09T17:30:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=8c285c6c33a8e4c9a2418c3c99698d11303c2a02'/>
<id>8c285c6c33a8e4c9a2418c3c99698d11303c2a02</id>
<content type='text'>
Just Say No to indirection.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Just Say No to indirection.</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(api): promote magic spec from CmdParseInfo to exarg_T #39119</title>
<updated>2026-07-09T15:53:40+00:00</updated>
<author>
<name>Vivek Kumar</name>
<email>67893205+kumarvivek1752@users.noreply.github.com</email>
</author>
<published>2026-07-09T15:53:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=bcbd9d7992a43404409c8ee223f5a0a07a0665f3'/>
<id>bcbd9d7992a43404409c8ee223f5a0a07a0665f3</id>
<content type='text'>
Problem:
`magic` was owned by `CmdParseInfo`, but command handlers
need it at execution time via `exarg_T`.

Solution:
Move `magic` into `exarg_T`, and initialize it in `parse_cmdline()`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
`magic` was owned by `CmdParseInfo`, but command handlers
need it at execution time via `exarg_T`.

Solution:
Move `magic` into `exarg_T`, and initialize it in `parse_cmdline()`.</pre>
</div>
</content>
</entry>
<entry>
<title>build: lint "strtol" #40442</title>
<updated>2026-06-28T23:01:24+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-06-28T23:01:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=87b42e12095aa629b0aa02f25b05cf5de5f2bbad'/>
<id>87b42e12095aa629b0aa02f25b05cf5de5f2bbad</id>
<content type='text'>
Problem:
No lint for strtol().

Solution:
Add lint, and update existing usages.

Callers that previously got a (garbage) large positive value:
- `indent.c`: use getdigits() (intmax, no int truncation) with def=1 so
  overflow/too-large values stay positive and fall through to the
  existing "too big" check (E475).
- `file_search.c`: use getdigits() with def=255 so overflow/too-large
  values keep the "max expand" (else) branch.

The other conversions (api/command.c, eval/window.c, highlight_group.c,
tui/tui.c) only diverge on pathological overflow inputs where strtol's
result was already garbage and the observable outcome is unchanged.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
No lint for strtol().

Solution:
Add lint, and update existing usages.

Callers that previously got a (garbage) large positive value:
- `indent.c`: use getdigits() (intmax, no int truncation) with def=1 so
  overflow/too-large values stay positive and fall through to the
  existing "too big" check (E475).
- `file_search.c`: use getdigits() with def=255 so overflow/too-large
  values keep the "max expand" (else) branch.

The other conversions (api/command.c, eval/window.c, highlight_group.c,
tui/tui.c) only diverge on pathological overflow inputs where strtol's
result was already garbage and the observable outcome is unchanged.</pre>
</div>
</content>
</entry>
<entry>
<title>docs: bufadd(), fnameescape() guidance #40378</title>
<updated>2026-06-23T14:08:50+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-06-23T14:08:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=8e3b216d0b2994b4fa74e0d687c89ff497f42e90'/>
<id>8e3b216d0b2994b4fa74e0d687c89ff497f42e90</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>vim-patch:9.2.0494: User commands cannot handle single args with spaces (#39854)</title>
<updated>2026-05-18T09:44:26+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2026-05-18T09:44:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=7b46848f140285be586cc3946db6976bd6bed2a5'/>
<id>7b46848f140285be586cc3946db6976bd6bed2a5</id>
<content type='text'>
Problem:  User commands cannot handle single args with spaces
Solution: Add the -nargs=_ attribute (Maxim Kim)

-nargs=_ allow user commands to have a single argument with spaces.

For example given the following Test command and TestComplete function:

```
vim9script
def TestComplete(A: string, _: string, _: number): list&lt;string&gt;
    var all = ["qqqq", "aaaa", "qq aa"]
    return all-&gt;matchfuzzy(A)
enddef
command! -nargs=_ -complete=customlist,TestComplete Test echo &lt;q-args&gt;
```

`:Test q a&lt;tab&gt;` should successfully complete `qq aa`

fixes:  vim/vim#20102
closes: vim/vim#20189

https://github.com/vim/vim/commit/f0e874a129a702457a383017b576eef1553f95d8

Co-authored-by: Maxim Kim &lt;habamax@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  User commands cannot handle single args with spaces
Solution: Add the -nargs=_ attribute (Maxim Kim)

-nargs=_ allow user commands to have a single argument with spaces.

For example given the following Test command and TestComplete function:

```
vim9script
def TestComplete(A: string, _: string, _: number): list&lt;string&gt;
    var all = ["qqqq", "aaaa", "qq aa"]
    return all-&gt;matchfuzzy(A)
enddef
command! -nargs=_ -complete=customlist,TestComplete Test echo &lt;q-args&gt;
```

`:Test q a&lt;tab&gt;` should successfully complete `qq aa`

fixes:  vim/vim#20102
closes: vim/vim#20189

https://github.com/vim/vim/commit/f0e874a129a702457a383017b576eef1553f95d8

Co-authored-by: Maxim Kim &lt;habamax@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>build(docs): lint more quasi-keysets #39654</title>
<updated>2026-05-07T16:00:26+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-05-07T16:00:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=b351024daf88d8ea3b934817ba7350fb29bbf37c'/>
<id>b351024daf88d8ea3b934817ba7350fb29bbf37c</id>
<content type='text'>
Problem:
Linter missed backtick and double-quote keynames in the quasi-keyset of
the `nvim_create_user_command` docstring.

Solution:
Update the linter to check backtick-surrounded and quote-surrounded key
names.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Linter missed backtick and double-quote keynames in the quasi-keyset of
the `nvim_create_user_command` docstring.

Solution:
Update the linter to check backtick-surrounded and quote-surrounded key
names.</pre>
</div>
</content>
</entry>
<entry>
<title>docs: expand nvim_create_user_command docs #39540</title>
<updated>2026-05-07T13:18:19+00:00</updated>
<author>
<name>Quentin</name>
<email>qrichaud2@gmail.com</email>
</author>
<published>2026-05-07T13:18:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=97a557bd1e3805f8b4f472d61dfb38a3edfc9313'/>
<id>97a557bd1e3805f8b4f472d61dfb38a3edfc9313</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(excmd): remove duplicate get_cmd_argt (#39643)</title>
<updated>2026-05-07T08:55:30+00:00</updated>
<author>
<name>glepnir</name>
<email>glephunter@gmail.com</email>
</author>
<published>2026-05-07T08:55:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=1fd82615b163adc5aca593a92d78d00eee2bc268'/>
<id>1fd82615b163adc5aca593a92d78d00eee2bc268</id>
<content type='text'>
Problem:
`excmd_get_argt` and `get_cmd_argt` do the same thing.

Solution:
Drop `get_cmd_argt` and update its callers to use `excmd_get_argt`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
`excmd_get_argt` and `get_cmd_argt` do the same thing.

Solution:
Drop `get_cmd_argt` and update its callers to use `excmd_get_argt`.</pre>
</div>
</content>
</entry>
</feed>
