commit 2b9a033a8c8ad9dce2e1a8f6480a0182f81af93b
parent a88c7962a82f1427aa90d1c0a08514423516f9f2
Author: Justin M. Keyes <justinkz@gmail.com>
Date: Sun, 23 Nov 2025 17:07:06 -0800
Merge #36670 from justinmk/doc2
Diffstat:
11 files changed, 77 insertions(+), 14 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
@@ -21,8 +21,8 @@ env:
INSTALL_PREFIX: ${{ github.workspace }}/nvim-install
jobs:
+ # Test the minimum supported cmake.
old-cmake:
- name: Minimum cmake
runs-on: ubuntu-latest
timeout-minutes: 15
env:
@@ -54,8 +54,8 @@ jobs:
- name: Install
run: make install
+ # Offline build (USE_EXISTING_SRC_DIR=ON with no network access)
use-existing-src:
- name: Offline build (USE_EXISTING_SRC_DIR=ON with no network access)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
diff --git a/.github/workflows/build_dummy.yml b/.github/workflows/build_dummy.yml
@@ -19,15 +19,15 @@ concurrency:
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
+ # Test the minimum supported cmake.
old-cmake:
- name: Test oldest supported cmake
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- run: echo "success"
+ # Offline build (USE_EXISTING_SRC_DIR=ON with no network access)
use-existing-src:
- name: Test USE_EXISTING_SRC_DIR=ON builds with no network access
runs-on: ubuntu-latest
steps:
- run: echo "success"
diff --git a/BUILD.md b/BUILD.md
@@ -459,6 +459,13 @@ Similarly to develop on Neovim: `nix run github:nix-community/neovim-nightly-ove
To use a specific version of Neovim, you can pass `--override-input neovim-src .` to use your current directory,
or a specific SHA1 like `--override-input neovim-src github:neovim/neovim/89dc8f8f4e754e70cbe1624f030fb61bded41bc2`.
+### Haiku
+
+Some deps can be pulled from haiku repos, the rest need "bundled" deps:
+
+ cmake -DUSE_BUNDLED_LIBUV=OFF -DUSE_BUNDLED_UNIBILIUM=OFF -DUSE_BUNDLED_LUAJIT=OFF -B .deps ./cmake.deps
+ make -C .deps
+
### FreeBSD
```
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
@@ -55,6 +55,7 @@ Developer guidelines
Pull requests (PRs)
---------------------
+- Fork the repository first.
- To avoid duplicate work, create a draft pull request.
- Your PR must include [test coverage][run-tests].
- Avoid cosmetic changes to unrelated files in the same commit.
diff --git a/runtime/doc/plugins.txt b/runtime/doc/plugins.txt
@@ -255,6 +255,8 @@ open({opts}) *undotree.open()*
While in the window, moving the cursor changes the undo.
+ Closes the window if it is already open
+
Load the plugin with this command: >
packadd nvim.undotree
<
@@ -275,5 +277,9 @@ open({opts}) *undotree.open()*
the source buffer as its only argument and should return a
string.
+ Return: ~
+ (`boolean?`) Returns true if the window was already open, nil
+ otherwise
+
vim:tw=78:ts=8:sw=4:sts=4:et:ft=help:norl:
diff --git a/runtime/doc/vimfn.txt b/runtime/doc/vimfn.txt
@@ -9134,9 +9134,9 @@ setloclist({nr}, {list} [, {action} [, {what}]]) *setloclist()*
Parameters: ~
• {nr} (`integer`)
- • {list} (`any`)
+ • {list} (`vim.quickfix.entry[]`)
• {action} (`string?`)
- • {what} (`table?`)
+ • {what} (`vim.fn.setqflist.what?`)
Return: ~
(`any`)
diff --git a/runtime/lua/vim/_meta/builtin_types.lua b/runtime/lua/vim/_meta/builtin_types.lua
@@ -160,7 +160,7 @@
--- a function or a funcref or a lambda. Refer
--- to |quickfix-window-function| for an explanation
--- of how to write the function and an example.
---- @field quickfixtextfunc? function
+--- @field quickfixtextfunc? string|function
---
--- quickfix list title text. See |quickfix-title|
--- @field title? string
diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua
@@ -8320,9 +8320,9 @@ function vim.fn.setline(lnum, text) end
--- for the list of supported keys in {what}.
---
--- @param nr integer
---- @param list any
+--- @param list vim.quickfix.entry[]
--- @param action? string
---- @param what? table
+--- @param what? vim.fn.setqflist.what
--- @return any
function vim.fn.setloclist(nr, list, action, what) end
diff --git a/runtime/pack/dist/opt/nvim.undotree/lua/undotree.lua b/runtime/pack/dist/opt/nvim.undotree/lua/undotree.lua
@@ -298,6 +298,8 @@ end
---
--- While in the window, moving the cursor changes the undo.
---
+--- Closes the window if it is already open
+---
--- Load the plugin with this command:
--- ```
--- packadd nvim.undotree
@@ -306,6 +308,7 @@ end
--- Can also be shown with `:Undotree`. [:Undotree]()
---
--- @param opts vim.undotree.opts?
+--- @return boolean? Returns true if the window was already open, nil otherwise
function M.open(opts)
-- The following lines of code was copied from
-- `vim.treesitter.dev.inspect_tree` and then modified to fit
diff --git a/scripts/collect_typos.lua b/scripts/collect_typos.lua
@@ -49,7 +49,46 @@ local function run_die(cmd, err_msg, stdin)
return assert(_run(cmd, true, err_msg, stdin))
end
-do
+--- MIME-decode if python3 is available, else returns the input unchanged.
+local function mime_decode(encoded)
+ local has_python = vim.system({ 'python3', '--version' }, { text = true }):wait()
+ if has_python.code ~= 0 then
+ return encoded
+ end
+
+ local pycode = string.format(
+ vim.text.indent(
+ 0,
+ [[
+ import sys
+ from email.header import decode_header
+ inp = %q
+ parts = []
+ for txt, cs in decode_header(inp):
+ if isinstance(txt, bytes):
+ try:
+ parts.append(txt.decode(cs or "utf-8", errors="replace"))
+ except Exception:
+ parts.append(txt.decode("utf-8", errors="replace"))
+ else:
+ parts.append(txt)
+ sys.stdout.write("".join(parts))
+ ]]
+ ),
+ encoded
+ )
+
+ local result = vim.system({ 'python3', '-c', pycode }, { text = true }):wait()
+
+ if result.code ~= 0 or not result.stdout then
+ return encoded
+ end
+
+ -- Trim trailing newline Python prints only if program prints it
+ return vim.trim(result.stdout)
+end
+
+local function main()
local pr_list = vim.json.decode(
run_die(
{ 'gh', 'pr', 'list', '--label', 'typo', '--json', 'number' },
@@ -75,13 +114,13 @@ do
if run({ 'git', 'apply', '--index', '-' }, patch_file) then
table.insert(close_pr_lines, ('Close #%d'):format(pr_number))
for author in patch_file:gmatch('\nFrom: (.- <.->)\n') do
- local co_author_line = ('Co-authored-by: %s'):format(author)
+ local co_author_line = ('Co-authored-by: %s'):format(mime_decode(author))
if not vim.list_contains(co_author_lines, co_author_line) then
table.insert(co_author_lines, co_author_line)
end
end
for author in patch_file:gmatch('\nCo%-authored%-by: (.- <.->)\n') do
- local co_author_line = ('Co-authored-by: %s'):format(author)
+ local co_author_line = ('Co-authored-by: %s'):format(mime_decode(author))
if not vim.list_contains(co_author_lines, co_author_line) then
table.insert(co_author_lines, co_author_line)
end
@@ -91,9 +130,11 @@ do
end
end
- local msg = ('docs: small fixes\n\n%s\n\n%s\n'):format(
+ local msg = ('docs: misc\n\n%s\n\n%s\n'):format(
table.concat(close_pr_lines, '\n'),
table.concat(co_author_lines, '\n')
)
print(run_die({ 'git', 'commit', '--file', '-' }, 'Failed to create commit', msg))
end
+
+main()
diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua
@@ -10091,7 +10091,12 @@ M.funcs = {
]=],
name = 'setloclist',
- params = { { 'nr', 'integer' }, { 'list', 'any' }, { 'action', 'string' }, { 'what', 'table' } },
+ params = {
+ { 'nr', 'integer' },
+ { 'list', 'vim.quickfix.entry[]' },
+ { 'action', 'string' },
+ { 'what', 'vim.fn.setqflist.what' },
+ },
signature = 'setloclist({nr}, {list} [, {action} [, {what}]])',
},
setmatches = {