Home Explore Blog CI



neovim

4th chunk of `runtime/doc/news-0.11.txt`
d36edd2d483e4b6bb318e632129af8f60df12837cd4a317d0000000100000ff9
 navigate through the |quickfix| list
    • |[l|, |]l|, |[L|, |]L|, |[CTRL-L|, |]CTRL-L| navigate through the |location-list|
    • |[t|, |]t|, |[T|, |]T|, |[CTRL-T|, |]CTRL-T| navigate through the |tag-matchlist|
    • |[a|, |]a|, |[A|, |]A| navigate through the |argument-list|
    • |[b|, |]b|, |[B|, |]B| navigate through the |buffer-list|
    • |[<Space>|, |]<Space>| add an empty line above and below the cursor
  • |[[| and |]]| in Normal mode jump between shell prompts for shells which emit
    OSC 133 sequences ("shell integration" or "semantic prompts").

• Options:
  • 'diffopt' default includes "linematch:40".
  • 'number', 'relativenumber', 'signcolumn', and 'foldcolumn' are disabled in
    |terminal| buffers. |terminal-config| shows how to change these defaults.
  • Lua |ftplugin| sets 'omnifunc' to "v:lua.vim.lua_omnifunc".
  • Lua |ftplugin| sets 'foldexpr' to "v:lua.vim.treesitter.foldexpr()".

• Snippet:
  • `<Tab>` in Insert and Select mode maps to `vim.snippet.jump({ direction = 1 })`
    when a snippet is active and jumpable forwards.
  • `<S-Tab>` in Insert and Select mode maps to `vim.snippet.jump({ direction = -1 })`
    when a snippet is active and jumpable backwards.

DIAGNOSTICS

• |vim.diagnostic.config()| accepts a "jump" table to specify defaults for
  |vim.diagnostic.jump()|.
• A "virtual_lines" diagnostic handler was added to render diagnostics using
  virtual lines below the respective code.
• The "virtual_text" diagnostic handler accepts a `current_line` option to
  only show virtual text at the cursor's line.

EDITOR

• Improved |paste| handling for redo (dot-repeat) and macros (|recording|):
  • Redoing a large paste is significantly faster and ignores 'autoindent'.
  • Replaying a macro with |@| also replays pasted text.
• On Windows, filename arguments on the command-line prefixed with "~\" or
  "~/" are now expanded to the user's profile directory, not a relative path
  to a literal "~" directory.
• |hl-ComplMatchIns| shows matched text of the currently inserted completion.
• |hl-PmenuMatch| and |hl-PmenuMatchSel| show matched text in completion popup.
• |gO| now works in `help`, `checkhealth`, and `markdown` buffers.
• Jump between sections in `help` and `checkhealth` buffers with `[[` and `]]`.

EVENTS

• |CompleteDone| now sets the `reason` key in `v:event` which specifies the reason
  for completion being done.
• |vim.on_key()| callbacks can consume the key by returning an empty string.

LSP

• Improved rendering of LSP hover docs. |K-lsp-default|
• |vim.lsp.completion.enable()| gained the `convert` callback which enables
  customizing the transformation of an LSP CompletionItem to |complete-items|.
• |vim.lsp.diagnostic.from()| can be used to convert a list of
  |vim.Diagnostic| objects into their LSP diagnostic representation.
• `:checkhealth vim.lsp` displays the server version (if available).
• Completion side effects (including snippet expansion, execution of commands
  and application of additional text edits) is now built-in.
• |vim.lsp.util.locations_to_items()| and |vim.lsp.util.symbols_to_items()| now
  sets `end_col` and `end_lnum` fields.
• |vim.lsp.buf.format()| now supports passing a list of ranges
  via the `range` parameter (this requires support for the
  `textDocument/rangesFormatting` request).
• |vim.lsp.buf.code_action()| actions show client name when there are multiple
  clients.
• |vim.lsp.buf.signature_help()| can now cycle through different signatures
  using `<C-s>` and also support multiple clients.
• The client now supports `'utf-8'` and `'utf-32'` position encodings.
• |vim.lsp.buf.hover()| now highlights hover ranges using the
  |hl-LspReferenceTarget| highlight group.
• Functions in |vim.lsp.Client| can now be called as methods.
• Implemented LSP folding: |vim.lsp.foldexpr()|
  https://microsoft.github.io/language-server-protocol/specification/#textDocument_foldingRange
• |vim.lsp.config()| has been added to define default configurations for
  servers. In addition,

Title: Nvim 0.11: Diagnostics, Editor, Events and LSP Features
Summary
This section describes new features and improvements to diagnostics, the editor, events, and LSP in Nvim 0.11. Diagnostics improvements include `vim.diagnostic.config()`, 'virtual_lines', and 'virtual_text' handlers. Editor enhancements include improved paste handling, filename expansion on Windows, and new highlight groups. New CompleteDone event keys and `vim.on_key()` functionality were added. LSP improvements include rendering hover docs, `vim.lsp.completion.enable()`, `:checkhealth`, completion side effects, `vim.lsp.util` updates, `vim.lsp.buf.format()` range support, code action client name display, signature help cycling, UTF encoding support, hover highlighting, client function calls, LSP folding, and `vim.lsp.config()` for default server configurations.