From c4afb9788c4f139eb2e3b7aa4d6a6a20b67ba156 Mon Sep 17 00:00:00 2001 From: Luuk van Baal Date: Sat, 11 Nov 2023 00:52:50 +0100 Subject: 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. --- src/nvim/options.lua | 6 ------ 1 file changed, 6 deletions(-) (limited to 'src/nvim/options.lua') diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 9ca1396753..c5dfa91f27 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -7590,12 +7590,6 @@ return { number (maximum 9), e.g. "yes:3" "number" display signs in the 'number' column. If the number column is not present, then behaves like "auto". - - Note regarding "orphaned signs": with signcolumn numbers higher than - 1, deleting lines will also remove the associated signs automatically, - in contrast to the default Vim behavior of keeping and grouping them. - This is done in order for the signcolumn appearance not appear weird - during line deletion. ]=], expand_cb = 'expand_set_signcolumn', full_name = 'signcolumn', -- cgit