mirror of
https://github.com/neovim/neovim.git
synced 2026-05-05 21:45:05 +00:00
Merge pull request #21154 from clason/vimdoc-injections
feat(help): highlighted codeblocks
This commit is contained in:
@@ -123,7 +123,7 @@ do
|
||||
--- (such as the |TUI|) pastes text into the editor.
|
||||
---
|
||||
--- Example: To remove ANSI color codes when pasting:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.paste = (function(overridden)
|
||||
--- return function(lines, phase)
|
||||
--- for i,line in ipairs(lines) do
|
||||
@@ -280,7 +280,7 @@ end
|
||||
--- command.
|
||||
---
|
||||
--- Example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.cmd('echo 42')
|
||||
--- vim.cmd([[
|
||||
--- augroup My_group
|
||||
@@ -746,7 +746,7 @@ end
|
||||
|
||||
---Prints given arguments in human-readable format.
|
||||
---Example:
|
||||
---<pre>
|
||||
---<pre>lua
|
||||
--- -- Print highlight group Normal and store it's contents in a variable.
|
||||
--- local hl_normal = vim.pretty_print(vim.api.nvim_get_hl_by_name("Normal", true))
|
||||
---</pre>
|
||||
|
||||
@@ -579,12 +579,12 @@ end
|
||||
--- followed by namespace configuration, and finally global configuration.
|
||||
---
|
||||
--- For example, if a user enables virtual text globally with
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.diagnostic.config({ virtual_text = true })
|
||||
--- </pre>
|
||||
---
|
||||
--- and a diagnostic producer sets diagnostics with
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.diagnostic.set(ns, 0, diagnostics, { virtual_text = false })
|
||||
--- </pre>
|
||||
---
|
||||
@@ -621,13 +621,13 @@ end
|
||||
--- * format: (function) A function that takes a diagnostic as input and
|
||||
--- returns a string. The return value is the text used to display
|
||||
--- the diagnostic. Example:
|
||||
--- <pre>
|
||||
--- function(diagnostic)
|
||||
--- if diagnostic.severity == vim.diagnostic.severity.ERROR then
|
||||
--- return string.format("E: %s", diagnostic.message)
|
||||
--- <pre>lua
|
||||
--- function(diagnostic)
|
||||
--- if diagnostic.severity == vim.diagnostic.severity.ERROR then
|
||||
--- return string.format("E: %s", diagnostic.message)
|
||||
--- end
|
||||
--- return diagnostic.message
|
||||
--- end
|
||||
--- return diagnostic.message
|
||||
--- end
|
||||
--- </pre>
|
||||
--- - signs: (default true) Use signs for diagnostics. Options:
|
||||
--- * severity: Only show signs for diagnostics matching the given severity
|
||||
@@ -1577,11 +1577,11 @@ end
|
||||
---
|
||||
--- This can be parsed into a diagnostic |diagnostic-structure|
|
||||
--- with:
|
||||
--- <pre>
|
||||
--- local s = "WARNING filename:27:3: Variable 'foo' does not exist"
|
||||
--- local pattern = "^(%w+) %w+:(%d+):(%d+): (.+)$"
|
||||
--- local groups = { "severity", "lnum", "col", "message" }
|
||||
--- vim.diagnostic.match(s, pattern, groups, { WARNING = vim.diagnostic.WARN })
|
||||
--- <pre>lua
|
||||
--- local s = "WARNING filename:27:3: Variable 'foo' does not exist"
|
||||
--- local pattern = "^(%w+) %w+:(%d+):(%d+): (.+)$"
|
||||
--- local groups = { "severity", "lnum", "col", "message" }
|
||||
--- vim.diagnostic.match(s, pattern, groups, { WARNING = vim.diagnostic.WARN })
|
||||
--- </pre>
|
||||
---
|
||||
---@param str string String to parse diagnostics from.
|
||||
|
||||
@@ -2308,7 +2308,7 @@ end
|
||||
--- See $VIMRUNTIME/lua/vim/filetype.lua for more examples.
|
||||
---
|
||||
--- Example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.filetype.add({
|
||||
--- extension = {
|
||||
--- foo = 'fooscript',
|
||||
@@ -2344,7 +2344,7 @@ end
|
||||
--- </pre>
|
||||
---
|
||||
--- To add a fallback match on contents, use
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.filetype.add {
|
||||
--- pattern = {
|
||||
--- ['.*'] = {
|
||||
@@ -2456,7 +2456,7 @@ end
|
||||
--- Each of the three options is specified using a key to the single argument of this function.
|
||||
--- Example:
|
||||
---
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- -- Using a buffer number
|
||||
--- vim.filetype.match({ buf = 42 })
|
||||
---
|
||||
|
||||
@@ -5,7 +5,7 @@ local iswin = vim.loop.os_uname().sysname == 'Windows_NT'
|
||||
--- Iterate over all the parents of the given file or directory.
|
||||
---
|
||||
--- Example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- local root_dir
|
||||
--- for dir in vim.fs.parents(vim.api.nvim_buf_get_name(0)) do
|
||||
--- if vim.fn.isdirectory(dir .. "/.git") == 1 then
|
||||
@@ -119,8 +119,7 @@ end
|
||||
--- - limit (number, default 1): Stop the search after
|
||||
--- finding this many matches. Use `math.huge` to
|
||||
--- place no limit on the number of matches.
|
||||
---
|
||||
---@return (table) The normalized paths |vim.fs.normalize()| of all matching files or directories
|
||||
---@return (table) Normalized paths |vim.fs.normalize()| of all matching files or directories
|
||||
function M.find(names, opts)
|
||||
opts = opts or {}
|
||||
vim.validate({
|
||||
@@ -235,15 +234,15 @@ end
|
||||
--- variables are also expanded.
|
||||
---
|
||||
--- Examples:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.fs.normalize('C:\\Users\\jdoe')
|
||||
--- => 'C:/Users/jdoe'
|
||||
--- --> 'C:/Users/jdoe'
|
||||
---
|
||||
--- vim.fs.normalize('~/src/neovim')
|
||||
--- => '/home/jdoe/src/neovim'
|
||||
--- --> '/home/jdoe/src/neovim'
|
||||
---
|
||||
--- vim.fs.normalize('$XDG_CONFIG_HOME/nvim/init.vim')
|
||||
--- => '/Users/jdoe/.config/nvim/init.vim'
|
||||
--- --> '/Users/jdoe/.config/nvim/init.vim'
|
||||
--- </pre>
|
||||
---
|
||||
---@param path (string) Path to normalize
|
||||
|
||||
@@ -2,7 +2,7 @@ local keymap = {}
|
||||
|
||||
--- Add a new |mapping|.
|
||||
--- Examples:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- -- Can add mapping to Lua functions
|
||||
--- vim.keymap.set('n', 'lhs', function() print("real lua function") end)
|
||||
---
|
||||
@@ -21,13 +21,13 @@ local keymap = {}
|
||||
--- </pre>
|
||||
---
|
||||
--- Note that in a mapping like:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.keymap.set('n', 'asdf', require('jkl').my_fun)
|
||||
--- </pre>
|
||||
---
|
||||
--- the ``require('jkl')`` gets evaluated during this call in order to access the function.
|
||||
--- If you want to avoid this cost at startup you can wrap it in a function, for example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.keymap.set('n', 'asdf', function() return require('jkl').my_fun() end)
|
||||
--- </pre>
|
||||
---
|
||||
@@ -93,7 +93,7 @@ end
|
||||
|
||||
--- Remove an existing mapping.
|
||||
--- Examples:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.keymap.del('n', 'lhs')
|
||||
---
|
||||
--- vim.keymap.del({'n', 'i', 'v'}, '<leader>w', { buffer = 5 })
|
||||
|
||||
@@ -813,8 +813,7 @@ end
|
||||
--- Attaches the current buffer to the client.
|
||||
---
|
||||
--- Example:
|
||||
---
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.lsp.start({
|
||||
--- name = 'my-server-name',
|
||||
--- cmd = {'name-of-language-server-executable'},
|
||||
@@ -1754,8 +1753,7 @@ end
|
||||
---
|
||||
--- You can also use the `stop()` function on a |vim.lsp.client| object.
|
||||
--- To stop all clients:
|
||||
---
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.lsp.stop_client(vim.lsp.get_active_clients())
|
||||
--- </pre>
|
||||
---
|
||||
@@ -2239,7 +2237,7 @@ end
|
||||
---@param fn function Function to run on each client attached to buffer
|
||||
--- {bufnr}. The function takes the client, client ID, and
|
||||
--- buffer number as arguments. Example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.lsp.for_each_buffer_client(0, function(client, client_id, bufnr)
|
||||
--- print(vim.inspect(client))
|
||||
--- end)
|
||||
|
||||
@@ -162,11 +162,11 @@ end
|
||||
--- Predicate used to filter clients. Receives a client as argument and must return a
|
||||
--- boolean. Clients matching the predicate are included. Example:
|
||||
---
|
||||
--- <pre>
|
||||
--- -- Never request typescript-language-server for formatting
|
||||
--- vim.lsp.buf.format {
|
||||
--- filter = function(client) return client.name ~= "tsserver" end
|
||||
--- }
|
||||
--- <pre>lua
|
||||
--- -- Never request typescript-language-server for formatting
|
||||
--- vim.lsp.buf.format {
|
||||
--- filter = function(client) return client.name ~= "tsserver" end
|
||||
--- }
|
||||
--- </pre>
|
||||
---
|
||||
--- - async boolean|nil
|
||||
@@ -555,11 +555,10 @@ end
|
||||
--- Send request to the server to resolve document highlights for the current
|
||||
--- text document position. This request can be triggered by a key mapping or
|
||||
--- by events such as `CursorHold`, e.g.:
|
||||
---
|
||||
--- <pre>
|
||||
--- autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
|
||||
--- autocmd CursorHoldI <buffer> lua vim.lsp.buf.document_highlight()
|
||||
--- autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
|
||||
--- <pre>vim
|
||||
--- autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
|
||||
--- autocmd CursorHoldI <buffer> lua vim.lsp.buf.document_highlight()
|
||||
--- autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
|
||||
--- </pre>
|
||||
---
|
||||
--- Note: Usage of |vim.lsp.buf.document_highlight()| requires the following highlight groups
|
||||
|
||||
@@ -241,7 +241,8 @@ end
|
||||
---
|
||||
--- It is recommended to trigger this using an autocmd or via keymap.
|
||||
---
|
||||
--- <pre>
|
||||
--- Example:
|
||||
--- <pre>vim
|
||||
--- autocmd BufEnter,CursorHold,InsertLeave <buffer> lua vim.lsp.codelens.refresh()
|
||||
--- </pre>
|
||||
---
|
||||
|
||||
@@ -150,7 +150,7 @@ end
|
||||
---
|
||||
--- See |vim.diagnostic.config()| for configuration options. Handler-specific
|
||||
--- configuration can be set using |vim.lsp.with()|:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
||||
--- vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||
--- -- Enable underline, use default values
|
||||
|
||||
@@ -313,15 +313,15 @@ M['textDocument/completion'] = function(_, result, _, _)
|
||||
end
|
||||
|
||||
--- |lsp-handler| for the method "textDocument/hover"
|
||||
--- <pre>
|
||||
--- vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
|
||||
--- vim.lsp.handlers.hover, {
|
||||
--- -- Use a sharp border with `FloatBorder` highlights
|
||||
--- border = "single",
|
||||
--- -- add the title in hover float window
|
||||
--- title = "hover"
|
||||
--- }
|
||||
--- )
|
||||
--- <pre>lua
|
||||
--- vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
|
||||
--- vim.lsp.handlers.hover, {
|
||||
--- -- Use a sharp border with `FloatBorder` highlights
|
||||
--- border = "single",
|
||||
--- -- add the title in hover float window
|
||||
--- title = "hover"
|
||||
--- }
|
||||
--- )
|
||||
--- </pre>
|
||||
---@param config table Configuration table.
|
||||
--- - border: (default=nil)
|
||||
@@ -399,13 +399,13 @@ M['textDocument/implementation'] = location_handler
|
||||
|
||||
--- |lsp-handler| for the method "textDocument/signatureHelp".
|
||||
--- The active parameter is highlighted with |hl-LspSignatureActiveParameter|.
|
||||
--- <pre>
|
||||
--- vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(
|
||||
--- vim.lsp.handlers.signature_help, {
|
||||
--- -- Use a sharp border with `FloatBorder` highlights
|
||||
--- border = "single"
|
||||
--- }
|
||||
--- )
|
||||
--- <pre>lua
|
||||
--- vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(
|
||||
--- vim.lsp.handlers.signature_help, {
|
||||
--- -- Use a sharp border with `FloatBorder` highlights
|
||||
--- border = "single"
|
||||
--- }
|
||||
--- )
|
||||
--- </pre>
|
||||
---@param config table Configuration table.
|
||||
--- - border: (default=nil)
|
||||
|
||||
@@ -102,11 +102,11 @@ end
|
||||
--- Splits a string at each instance of a separator.
|
||||
---
|
||||
--- Examples:
|
||||
--- <pre>
|
||||
--- split(":aa::b:", ":") => {'','aa','','b',''}
|
||||
--- split("axaby", "ab?") => {'','x','y'}
|
||||
--- split("x*yz*o", "*", {plain=true}) => {'x','yz','o'}
|
||||
--- split("|x|y|z|", "|", {trimempty=true}) => {'x', 'y', 'z'}
|
||||
--- <pre>lua
|
||||
--- split(":aa::b:", ":") --> {'','aa','','b',''}
|
||||
--- split("axaby", "ab?") --> {'','x','y'}
|
||||
--- split("x*yz*o", "*", {plain=true}) --> {'x','yz','o'}
|
||||
--- split("|x|y|z|", "|", {trimempty=true}) --> {'x', 'y', 'z'}
|
||||
--- </pre>
|
||||
---
|
||||
---@see |vim.gsplit()|
|
||||
@@ -383,7 +383,7 @@ end
|
||||
--- Return `nil` if the key does not exist.
|
||||
---
|
||||
--- Examples:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.tbl_get({ key = { nested_key = true }}, 'key', 'nested_key') == true
|
||||
--- vim.tbl_get({ key = {}}, 'key', 'nested_key') == nil
|
||||
--- </pre>
|
||||
@@ -495,9 +495,9 @@ end
|
||||
|
||||
--- Counts the number of non-nil values in table `t`.
|
||||
---
|
||||
--- <pre>
|
||||
--- vim.tbl_count({ a=1, b=2 }) => 2
|
||||
--- vim.tbl_count({ 1, 2 }) => 2
|
||||
--- <pre>lua
|
||||
--- vim.tbl_count({ a=1, b=2 }) --> 2
|
||||
--- vim.tbl_count({ 1, 2 }) --> 2
|
||||
--- </pre>
|
||||
---
|
||||
---@see https://github.com/Tieske/Penlight/blob/master/lua/pl/tablex.lua
|
||||
@@ -571,7 +571,7 @@ end
|
||||
--- Validates a parameter specification (types and values).
|
||||
---
|
||||
--- Usage example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- function user.new(name, age, hobbies)
|
||||
--- vim.validate{
|
||||
--- name={name, 'string'},
|
||||
@@ -583,24 +583,24 @@ end
|
||||
--- </pre>
|
||||
---
|
||||
--- Examples with explicit argument values (can be run directly):
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.validate{arg1={{'foo'}, 'table'}, arg2={'foo', 'string'}}
|
||||
--- => NOP (success)
|
||||
--- --> NOP (success)
|
||||
---
|
||||
--- vim.validate{arg1={1, 'table'}}
|
||||
--- => error('arg1: expected table, got number')
|
||||
--- --> error('arg1: expected table, got number')
|
||||
---
|
||||
--- vim.validate{arg1={3, function(a) return (a % 2) == 0 end, 'even number'}}
|
||||
--- => error('arg1: expected even number, got 3')
|
||||
--- --> error('arg1: expected even number, got 3')
|
||||
--- </pre>
|
||||
---
|
||||
--- If multiple types are valid they can be given as a list.
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.validate{arg1={{'foo'}, {'table', 'string'}}, arg2={'foo', {'table', 'string'}}}
|
||||
--- => NOP (success)
|
||||
--- --> NOP (success)
|
||||
---
|
||||
--- vim.validate{arg1={1, {'string', table'}}}
|
||||
--- => error('arg1: expected string|table, got number')
|
||||
--- --> error('arg1: expected string|table, got number')
|
||||
---
|
||||
--- </pre>
|
||||
---
|
||||
@@ -735,7 +735,7 @@ end
|
||||
--- If {create} is `nil`, this will create a defaulttable whose constructor function is
|
||||
--- this function, effectively allowing to create nested tables on the fly:
|
||||
---
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- local a = vim.defaulttable()
|
||||
--- a.b.c = 1
|
||||
--- </pre>
|
||||
|
||||
@@ -313,7 +313,7 @@ end
|
||||
--- In this case, add ``vim.bo.syntax = 'on'`` after the call to `start`.
|
||||
---
|
||||
--- Example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.api.nvim_create_autocmd( 'FileType', { pattern = 'tex',
|
||||
--- callback = function(args)
|
||||
--- vim.treesitter.start(args.buf, 'latex')
|
||||
|
||||
@@ -549,7 +549,7 @@ end
|
||||
--- The iterator returns three values: a numeric id identifying the capture,
|
||||
--- the captured node, and metadata from any directives processing the match.
|
||||
--- The following example shows how to get captures by name:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- for id, node, metadata in query:iter_captures(tree:root(), bufnr, first, last) do
|
||||
--- local name = query.captures[id] -- name of the capture in the query
|
||||
--- -- typically useful info about the node:
|
||||
@@ -603,7 +603,7 @@ end
|
||||
--- If the query has more than one pattern, the capture table might be sparse
|
||||
--- and e.g. `pairs()` method should be used over `ipairs`.
|
||||
--- Here is an example iterating over all captures in every match:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- for pattern, match, metadata in cquery:iter_matches(tree:root(), bufnr, first, last) do
|
||||
--- for id, node in pairs(match) do
|
||||
--- local name = query.captures[id]
|
||||
|
||||
@@ -21,7 +21,7 @@ local M = {}
|
||||
---
|
||||
---
|
||||
--- Example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.ui.select({ 'tabs', 'spaces' }, {
|
||||
--- prompt = 'Select tabs or spaces:',
|
||||
--- format_item = function(item)
|
||||
@@ -78,7 +78,7 @@ end
|
||||
--- `nil` if the user aborted the dialog.
|
||||
---
|
||||
--- Example:
|
||||
--- <pre>
|
||||
--- <pre>lua
|
||||
--- vim.ui.input({ prompt = 'Enter value for shiftwidth: ' }, function(input)
|
||||
--- vim.o.shiftwidth = tonumber(input)
|
||||
--- end)
|
||||
|
||||
Reference in New Issue
Block a user