Related: #19685 (Since the original PR is no longer being updated due to various reasons, I am taking over the work in this PR.)
Fixes: #19680
Fixes: #19681
Fixes: #12568
Fixes: #19256
https://github.com/vim/vim/pull/19869
(11 files)
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 1 commit.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 1 commit.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 1 commit.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 1 commit.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 1 commit.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 2 commits.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 4 commits.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 2 commits.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 2 commits.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 2 commits.
—
View it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
| Item | this-pr | pr-19685 (#19685) |
|---|---|---|
| Virtual text placement types | Existing RIGHT / ABOVE / BELOW only (same as master) | AFTER, INLINE added |
| Placement flag scheme | Independent bits (same as master) | Multi-value encoding using bit4-6 (TP_FLAG_VTEXT_BITS = 0x070) |
TP_FLAG_ALIGN_BELOW value |
0x040 (same as master) |
Changed to 0x030 (not compatible) |
Inline vtext and start_incl |
N/A | Doc added: controls insertion position |
prop_list() return order |
Unchanged (by starting column and priority) | Changed to "by starting column" |
| Negative ID restriction (E1293/E1339) | Unchanged | Removed from documentation |
PROP_IS_* macros |
None | PROP_IS_VTEXT, PROP_IS_FLOATING, PROP_IS_INLINE, etc. |
When a multi-line substitute joins lines 1-3 (1,3 s/e.1\nLine..2\nL/e.1 L/), floating virtual text properties on deleted lines are handled differently:
prop_list(1) returns 4.prop_list(1) returns 3.b_textprop_text removed)prop_count header (uint16_t) added to memline format: [text][NUL][prop_count][textprop_T...][vtext...]unpacked_memline_T introduced (LOADED / DETACHED / CLOSED states)tp_text_offset / tp_text union added to textprop_TTP_FLAG_DELETED (0x200) added| Item | this-pr | pr-19685 |
|---|---|---|
| Union naming | Named u (u.tp_text, u.tp_text_offset) |
Anonymous union (direct tp_text, tp_text_offset) |
| Union discriminator | Explicit TP_FLAG_VTEXT_PTR (0x400) flag |
TP_FLAG_VTEXT_BITS mask != 0 means vtext |
tp_len for vtext |
STRLEN(vtext) (excluding NUL) |
vtext size (including NUL) |
| Item | this-pr | pr-19685 |
|---|---|---|
| Member count | 9 | 12 (next/prev/adjust_flags added) |
| Adjacent line management | None (existing adjust_text_props_for_delete adapted) |
next/prev linked list for batch processing |
prop_size/prop_count type |
int |
uint16_t |
| Item | this-pr | pr-19685 |
|---|---|---|
| Public function count | 10 | 16 |
um_pack |
static (used internally via um_store_changes) |
public |
um_store_changes |
Yes (auto-save on um_goto_line/um_close) |
None (caller must explicitly um_pack + ml_replace_len) |
um_open_at_detached |
None | Yes |
um_extract_props |
None | Yes |
um_sort_props |
None | Yes |
| Item | this-pr | pr-19685 |
|---|---|---|
| Internal types | adjustres_T only |
criteria_T, prop_remove_info_T, vtext_T, prop_mod_T added |
vtext_T (ref_count) |
None | Defined but unused (future use or leftover) |
| memline.c changes | Minimal (prop_count header adaptation) | Rewritten using um_* API (e.g. add_text_props_for_append) |
| undo.c | No changes | has_prop_w_flags removed, ML_PROPS_INCLUDED/ML_COPY_LINE constants |
| Test infrastructure | Vim script tests only | Python test helper (textprop.py, textprop_support.vim) added |
| Change size | +1,683 / -368 (16 files) | +4,300 / -1,433 (38 files) |
unpacked_memline_T introduction. um_store_changes auto-saves to reduce caller burden.um_pack, designed for future extensibility.—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@h-east pushed 7 commits.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()