mirror of
https://github.com/neovim/neovim.git
synced 2025-12-09 08:02:38 +00:00
refactor(sign): move legacy signs to extmarks
Problem: The legacy signlist data structures and associated functions are
redundant since the introduction of extmark signs.
Solution: Store signs defined through the legacy commands in a hashmap, placed
signs in the extmark tree. Replace signlist associated functions.
Usage of the legacy sign commands should yield no change in behavior with the
exception of:
- "orphaned signs" are now always removed when the line it is placed on is
deleted. This used to depend on the value of 'signcolumn'.
- It is no longer possible to place multiple signs with the same identifier
in a single group on multiple lines. This will now move the sign instead.
Moreover, both signs placed through the legacy sign commands and through
|nvim_buf_set_extmark()|:
- Will show up in both |sign-place| and |nvim_buf_get_extmarks()|.
- Are displayed by increasing sign identifier, left to right.
Extmark signs used to be ordered decreasingly as opposed to legacy signs.
This commit is contained in:
4
runtime/lua/vim/_meta/api.lua
generated
4
runtime/lua/vim/_meta/api.lua
generated
@@ -317,8 +317,8 @@ function vim.api.nvim_buf_get_commands(buffer, opts) end
|
||||
--- @return integer[]
|
||||
function vim.api.nvim_buf_get_extmark_by_id(buffer, ns_id, id, opts) end
|
||||
|
||||
--- Gets `extmarks` in "traversal order" from a `charwise` region defined by
|
||||
--- buffer positions (inclusive, 0-indexed `api-indexing`).
|
||||
--- Gets `extmarks` (including `signs`) in "traversal order" from a `charwise`
|
||||
--- region defined by buffer positions (inclusive, 0-indexed `api-indexing`).
|
||||
--- Region can be given as (row,col) tuples, or valid extmark ids (whose
|
||||
--- positions define the bounds). 0 and -1 are understood as (0,0) and (-1,-1)
|
||||
--- respectively, thus the following are equivalent:
|
||||
|
||||
Reference in New Issue
Block a user