docs: lsp, ui events, dev guidance, osc7

fix #34981
This commit is contained in:
Justin M. Keyes
2025-07-11 08:33:29 -04:00
parent dc67ba948e
commit 56a4ef3c21
32 changed files with 228 additions and 222 deletions

View File

@@ -1,17 +1,18 @@
local M = {}
--- Called by builtin serverlist(). Returns all running servers.
--- in stdpath("run"). Does not include named pipes or TCP servers.
--- Called by builtin serverlist(). Returns all running servers in stdpath("run").
---
--- - TODO: track TCP servers, somehow.
--- - TODO: support Windows named pipes.
---
--- @param listed string[] Already listed servers
--- @return string[] A list of currently running servers in stdpath("run")
--- @return string[] # List of servers found on the current machine in stdpath("run").
function M.serverlist(listed)
-- TODO: also get named pipes on Windows
local socket_paths = vim.fs.find(function(name, _)
return name:match('nvim.*')
end, { path = vim.fn.stdpath('run'), type = 'socket', limit = math.huge })
local running_sockets = {}
local found = {} ---@type string[]
for _, socket in ipairs(socket_paths) do
-- Don't list servers twice
if not vim.list_contains(listed, socket) then
@@ -20,14 +21,14 @@ function M.serverlist(listed)
-- Check that the server is responding
-- TODO: do we need a timeout or error handling here?
if vim.fn.rpcrequest(chan, 'nvim_get_chan_info', 0).id then
table.insert(running_sockets, socket)
table.insert(found, socket)
end
vim.fn.chanclose(chan)
end
end
end
return running_sockets
return found
end
return M

View File

@@ -2045,6 +2045,10 @@ function vim.api.nvim_put(lines, type, after, follow) end
--- Replaces terminal codes and `keycodes` ([<CR>], [<Esc>], ...) in a string with
--- the internal representation.
---
---
--- Note:
--- Lua can use |vim.keycode()| instead.
---
--- @see replace_termcodes
--- @see cpoptions
--- @param str string String to be converted.

View File

@@ -2239,7 +2239,8 @@ vim.bo.et = vim.bo.expandtab
--- Unset 'exrc' to stop further searching of 'exrc' files in parent
--- directories, similar to `editorconfig.root`.
---
--- To get its own location, Lua exrc files can use `debug.getinfo()`.
--- To get its own location, a Lua exrc file can use `debug.getinfo()`.
--- See `lua-script-location`.
---
--- Compare 'exrc' to `editorconfig`:
--- - 'exrc' can execute any code; editorconfig only specifies settings.
@@ -2251,7 +2252,7 @@ vim.bo.et = vim.bo.expandtab
--- 3. Create ".nvim.lua" in your project root directory with this line:
---
--- ```lua
--- vim.cmd[[set runtimepath+=.nvim]]
--- vim.cmd[[set runtimepath+=.nvim]]
--- ```
---
--- This option cannot be set from a `modeline` or in the `sandbox`, for

View File

@@ -1855,35 +1855,35 @@ function vim.fn.exp(expr) end
--- done like for the |cmdline-special| variables with their
--- associated modifiers. Here is a short overview:
---
--- % current file name
--- # alternate file name
--- #n alternate file name n
--- <cfile> file name under the cursor
--- <afile> autocmd file name
--- <abuf> autocmd buffer number (as a String!)
--- <amatch> autocmd matched name
--- % Current file name
--- # Alternate file name
--- #n Alternate file name n
--- <cfile> File name under the cursor
--- <afile> Autocmd file name
--- <abuf> Autocmd buffer number (as a String!)
--- <amatch> Autocmd matched name
--- <cexpr> C expression under the cursor
--- <sfile> deprecated, use <script> or <stack>
--- <slnum> sourced script line number or function
--- <sfile> Deprecated, use <script> or <stack>
--- <slnum> Sourced script line number or function
--- line number
--- <sflnum> script file line number, also when in
--- <sflnum> Script file line number, also when in
--- a function
--- <SID> "<SNR>123_" where "123" is the
--- current script ID |<SID>|
--- <script> sourced script file, or script file
--- <script> Sourced script file, or script file
--- where the current function was defined.
--- Use |debug.getinfo()| in Lua scripts.
--- <stack> call stack
--- <cword> word under the cursor
--- For Lua see |lua-script-location|.
--- <stack> Call stack
--- <cword> Word under the cursor
--- <cWORD> WORD under the cursor
--- <client> the {clientid} of the last received
--- <client> The {clientid} of the last received
--- message
--- Modifiers:
--- :p expand to full path
--- :h head (last path component removed)
--- :t tail (last path component only)
--- :r root (one extension removed)
--- :e extension only
--- :p Expand to full path
--- :h Head (last path component removed)
--- :t Tail (last path component only)
--- :r Root (one extension removed)
--- :e Extension only
---
--- Example: >vim
--- let &tags = expand("%:p:h") .. "/tags"

View File

@@ -471,6 +471,10 @@ end
--- Runs a system command or throws an error if {cmd} cannot be run.
---
--- The command runs directly (not in 'shell') so shell builtins such as "echo" in cmd.exe, cmdlets
--- in powershell, or "help" in bash, will not work unless you actually invoke a shell:
--- `vim.system({'bash', '-c', 'help'})`.
---
--- Examples:
---
--- ```lua

View File

@@ -40,17 +40,11 @@ function M.request(url, opts, on_response)
table.insert(args, url)
local function on_exit(res)
local err_msg = nil
local response = nil
if res.code ~= 0 then
err_msg = (res.stderr ~= '' and res.stderr)
or string.format('Request failed with exit code %d', res.code)
else
response = {
body = opts.outpath and true or res.stdout,
}
end
local s = 'Request failed with exit code %d'
local err_msg = res.code ~= 0
and ((res.stderr ~= '' and res.stderr) or string.format(s, res.code))
or nil
local response = res.code == 0 and { body = opts.outpath and true or res.stdout } or nil
if on_response then
on_response(err_msg, response)

View File

@@ -1104,7 +1104,7 @@ do
err_msg = is_valid(name, value, validator, msg, false)
end
elseif type(name) == 'table' then -- Form 2
vim.deprecate('vim.validate', 'vim.validate(name, value, validator, optional_or_msg)', '1.0')
vim.deprecate('vim.validate{<table>}', 'vim.validate(<params>)', '1.0')
err_msg = validate_spec(name)
else
error('invalid arguments')

View File

@@ -1163,9 +1163,8 @@ end
--- Opens a live editor to query the buffer you started from.
---
--- Can also be shown with `:EditQuery`. [:EditQuery]()
---
--- `:EditQuery <tab>` completes the treesitter parser names in the runtime path.
--- Can also be shown with the [:EditQuery]() command. `:EditQuery <tab>` completes available
--- parsers.
---
--- If you move the cursor to a capture name ("@foo"), text matching the capture is highlighted in
--- the source buffer. The query editor is a scratch buffer, use `:write` to save it. You can find