Commit Graph

5 Commits

Author SHA1 Message Date
Jan Edmund Lazo
0eb2f2be60 'clang/Logic error': zero-init MarkTreeIter vars 2020-03-01 03:57:58 -05:00
Hirokazu Hata
599a12e316 clang/scan-build: restore required code
ref: https://github.com/neovim/neovim/pull/11900#discussion_r381860165
2020-02-23 10:14:05 +09:00
Hirokazu Hata
521b79c0f8 clang/scan-build: fix dead stores #11900 2020-02-18 20:54:19 -08:00
Björn Linse
ca1a00edd6 extmarks/bufhl: reimplement using new marktree data structure
Add new "splice" interface for tracking buffer changes at the byte
level. This will later be reused for byte-resolution buffer updates.
(Implementation has been started, but using undocumented "_on_bytes"
option now as interface hasn't been finalized).

Use this interface to improve many edge cases of extmark adjustment.
Changed tests indicate previously incorrect behavior. Adding tests for
more edge cases will be follow-up work (overlaps on_bytes tests)

Don't consider creation/deletion of marks an undoable event by itself.
This behavior was never documented, and imposes  complexity for little gain.

Add nvim__buf_add_decoration temporary API for direct access to the new
implementation. This should be refactored into a proper API for
decorations, probably involving a huge dict.

fixes #11598
2020-01-16 12:36:10 +01:00
Björn Linse
55677ddc46 Add new marktree data structure for storing marks
This is inspired by Atom's "marker index" data structure to efficiently
adjust marks to text insertions deletions, but uses a wide B-tree
(derived from kbtree) to keep the nesting level down.
2020-01-14 12:57:31 +01:00